qq_31376709 2021-08-03 17:29 采纳率: 100%
浏览 145
已结题

opencv计数项目实现及步骤

img
您好,这个图片计数可以实现吗?有什么难点,大致什么思路,可以说一下嘛?

  • 写回答

2条回答 默认 最新

  • 王大师王文峰 企业官方账号 2021-08-03 17:59
    关注

    opencv计数项目实现代码

    #include<iostream>
    #include<opencv.hpp>
    using namespace std;
    using namespace cv;
     
    int main()
    {
        //加载图像
        Mat src = imread("4.jpg");
        if (src.empty())
        {
            cout << "no image!" << endl;
            return -1;
        }
        imshow("src", src);
        //二值化
        Mat gray, binary;
        cvtColor(src, gray, COLOR_BGR2GRAY);
        imshow("gray", gray);
        threshold(gray, binary, 0, 255, THRESH_TRIANGLE);
        imshow("binary", binary);
        //图像形态学操作
        Mat kern1 = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1,-1));
        morphologyEx(binary, binary, MORPH_DILATE, kern1,Point(-1,-1),3);
        imshow("dilate", binary);
        //距离变换
        Mat dist;
        bitwise_not(binary, binary);//将白色背景变黑
        imshow("not", binary);
        distanceTransform(binary, dist, DIST_L2, 3);
        normalize(dist, dist, 0.0, 1.0, NORM_MINMAX);
        dist.convertTo(dist, CV_8UC1);
        imshow("dist", dist);
        //阈值分割
        Mat img;
        //threshold(dist, img, 0, 255, THRESH_BINARY | THRESH_OTSU);
        adaptiveThreshold(dist, img, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 85, 0.0);
        imshow("img", img);
        //腐蚀操作
        morphologyEx(img, img, MORPH_DILATE, kern1, Point(-1,-1),1);
        imshow("dilate-img", img);
        //寻找连通域
        vector<vector<Point>>contours;
        findContours(img, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
        Mat mask = Mat::zeros(src.size(), CV_8UC3);
        for (size_t i = 0; i < contours.size(); i++)
        {
            drawContours(mask, contours, static_cast<int>(i), Scalar(0, 0, 255), -1, 8);
        }
        cout << "个数:" << contours.size() << endl;
        imshow("result", mask);
     
        waitKey(0);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月11日
  • 已采纳回答 8月3日
  • 创建了问题 8月3日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题