ret,标签,统计数据,质心=cv2.connectedComponentsWithStats(img,连接性,ltype)
connectivity:4或8,确定相连像素,包围4或8个像素,默认为8;
labels:图像标记;
stats:[[x1,y1,width1,height1,area1],[xi,yi,widthi,heighti,areai]],存储外接矩形和连通区域的面积信息;
centroids:[cen_x,cen_y],质心点坐标,浮点型
参考博客:
1.OpenCV+Python图像连接域https://www.jianshu.com/p/a9cc11af270c
2.使用OpenCV中的新函数connectedComponentsWithStats https://www.cnblogs.com/jsxyhelu/p/7439655.html
补充:关于labels标签,按照连接区域的顺序存储标签
标签标记图像(来自参考博客2)可以通过包围矩形的信息来定位缺陷,可以是通过其质心位置、面积来筛选特征。
使用统计信息来定位连接区域import cv2
将numpy 导入为np
img=cv2.imread("connected_component.png", -1)
grey_img=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, th=cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
# 搜索图像中的连通区域
ret、标签、统计数据、质心=cv2.connectedComponentsWithStats(th)
对于我,枚举中的统计(统计):
#绘制连通区域
cv2.矩形(img, (统计[0], 统计[1]), (统计[0] + 统计[2], 统计[1] + 统计[3]), (25, 25, 255), 3)
#根据连通区域的索引进行标签
cv2.putText(img, str(i+1), (stat[0], stat[1] + 25), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (255, 25, 25), 2)
cv2.imshow("脱粒", th)
cv2.imshow("connectedComponent", img)
cv2.waitKey(0)
cv2.destroyAllWindows() 如果需要选择连通区域中面积最大的元素,可以使用如下方法:
# 需要考虑背景,最大的连通区域是整个图像
【高效图像处理:深度探索OpenCV的强大功能】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
OpenCV真是一个好用的开源库啊!
有18位网友表示赞同!
想学习计算机视觉,OpenCV是必不可少的工具。
有12位网友表示赞同!
最近在研究图像处理,感觉OpenCV很强大。
有13位网友表示赞同!
之前用过OpenCV做了一些简单的项目,效果还挺不错的。
有17位网友表示赞同!
看到不少人都在用OpenCV开发APP,太棒了!
有5位网友表示赞同!
学习OpenCV需要先掌握一些编程基础吧?
有19位网友表示赞同!
OpenCV的文档写的还是比较清楚易懂的。
有16位网友表示赞同!
有好多开源项目都依赖于OpenCV,可见它的影响力还是很大的。
有16位网友表示赞同!
我想用OpenCV实现人脸识别功能,不知道难度怎么样?
有5位网友表示赞同!
可以用OpenCV去分析图像特征吗?
有6位网友表示赞同!
我听说OpenCV可以用于3D重建啊!太酷了!
有17位网友表示赞同!
感觉学习OpenCV需要投入一定的时间和精力。
有17位网友表示赞同!
还是喜欢用的开源东西,OpenCV也相当优秀。
有13位网友表示赞同!
想用OpenCV做一个机器人视觉系统,不知道该从哪里开始?
有14位网友表示赞同!
有没有什么好推荐的OpenCV教程?
有15位网友表示赞同!
感觉OpenCV 的应用场景很多,非常有发展空间。
有15位网友表示赞同!
学习OpenCV可以让自己更深入了解计算机视觉领域吧!
有11位网友表示赞同!
最近想尝试一下用OpenCV做图像增强处理。
有14位网友表示赞同!
觉得开源库开发都很有意思,比如OpenCV就是很好的例子。
有8位网友表示赞同!
好奇OpenCV的未来发展方向是什么?
有15位网友表示赞同!