【碎片知识(8) · 计算机视觉基础】对图片中Blob的检测和计数

本文探讨了如何使用OpenCV进行Blob检测和计数,通过一个米粒图像实例,介绍了SimpleBlobDetector、getStructuringElement、findContours等关键函数的用法。还讲解了Rect类、vector的使用及其注意事项,为理解计算机视觉中的Blob检测提供了基础。
摘要由CSDN通过智能技术生成

本文将通过对一幅米粒图像的处理,讨论在OpenCV中相关函数对Blob的检测和计数问题。

OpenCV实例中的代码说明

1)        关于SimpleBlobDetector的说明:

   其目的是对Blob进行侦测,Blob就是在图片中连在一起的一团像素集合,该集合中的像素必须拥有共同的特性(比如灰度值等)。

   OpenCV提供了非常便捷的方法去侦测Blob,并可以基于特定的特征(如颜色、尺寸、形状等)对这些Blob进行筛选,以避免早期的Blob侦测算法中的过度提取。

   具体原理内容在:https://www.learnopencv.com/blob-detection-using-opencv-python-c/

2)        getStructuringElement()函数:

   该函数的第1个参数表示内核的形状

矩形(MORPH_RECT);交叉形(MORPH_CORSS);椭圆形(MORPH_ELLIPSE);

   第2和第3个参数分别是内核的尺寸以及锚点的位置,锚点的位置有默认的(-1, -1),即中心点。

   一般在调用腐蚀(erode)以及膨胀(dilate)函数之前,先定义一个Mat类型的变量来获得getStructuringElement函数的返回值。

3)        findContours()函数:

   函数原型findContours(InputOutputArray image,OutputArrayOfArrays contours, OutputArray hierarchy, int mode,  int method, Point offset=Point());

Ø  image单通道图像矩阵,可以是灰度图,但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测算子处理过的二值图像。

Ø  contours,定义为“vector<vector&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值