您现在的位置是:网站首页> 编程资料编程资料
OpenCV根据面积筛选连通域学习示例_python_
2023-05-26
315人已围观
简介 OpenCV根据面积筛选连通域学习示例_python_
学习目标:
对二值图进行分析,设定最大最小面积区间
保留该面积区间内的区域
示例代码
//src为二值图,minArea、maxArea为面积阈值,dest为结果图像 void connectionAreaSelect(Mat src, int minArea, int maxArea, Mat &dest) { Mat labels, stats, centroids, img_color; //连通域计算 int nccomps = connectedComponentsWithStats( src, //二值图像 labels, stats, centroids ); //去除过小区域,初始化颜色表 vector colors(nccomps); colors[0] = Vec3b(0, 0, 0); // background pixels remain black. for (int i = 1; i < nccomps; i++) { colors[i] = Vec3b(rand() % 256, rand() % 256, rand() % 256); //面积阈值筛选 int holeArea = stats.at(i, CC_STAT_AREA); if ((holeArea < minArea) || (holeArea > maxArea)) { colors[i] = Vec3b(0, 0, 0); } } //按照label值,对不同的连通域进行着色 img_color = Mat::zeros(src.size(), CV_8UC3); for (int y = 0; y < img_color.rows; y++) { for (int x = 0; x < img_color.cols; x++) { int label = labels.at(y, x); CV_Assert(0 <= label && label <= nccomps); img_color.at(y, x) = colors[label]; } } //统计降噪后的连通区域 Mat grayImg; cvtColor(img_color, grayImg, COLOR_BGR2GRAY); threshold(grayImg, grayImg, 1, 255, THRESH_BINARY); dest = grayImg.clone(); labels.release(); stats.release(); centroids.release(); img_color.release(); grayImg.release(); } 以上就是OpenCV根据面积筛选连通域学习示例的详细内容,更多关于OpenCV根据面积筛选连通域的资料请关注其它相关文章!
您可能感兴趣的文章:
相关内容
- Python实现批量识别图片文字并存为Excel_python_
- OpenCV连通域数量统计学习示例_python_
- C语言中的结构体在Python中实现转换_python_
- Python中ROS和OpenCV结合处理图像问题_python_
- Python自动化操作Excel方法详解(xlrd,xlwt)_python_
- python调用系统中应用程序的函数示例_python_
- 利用Python内置库实现创建命令行应用程序_python_
- pycharm终端解释器与Python解释器配置_python_
- 在VSCode中搭建Python开发环境并进行调试_python_
- python简介及下载安装_python_
