如何使用opencv函数计算图像的孔数(二进制)



我想计算欧拉数,所以我需要连接组件的数量和图像中孔的数量。我找到了如何找到连接组件的数量。使用此代码;

vector<vector<Point>>contours;
vector<Vec4i>hierarchy; 
findContours(mat,contours,hierarchy,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE ); 
objects_num=contours.size(); 

但我不确定计算连接组件的正确代码。你知道这段代码是正确的吗?

其次**但

我不知道如何计算孔数?opencv 文档说,所有轮廓都组织成两级层次结构,你知道如何获得孔的数量吗?

我正在尝试从该图像中提取特征。例如,我需要欧拉数,填充区域属性。出于这个原因;我正在尝试计算黑色素瘤图片中的孔数和连接组件的数量。你知道有什么函数来查找这些属性吗?

PS:我正在使用 opencv for Android 在 Android 平台上工作。

因此,我可以建议你开始研究OpenCV如何处理blob(以及描述blob的轮廓)。

如果您对面积、质心等 blob 属性感兴趣,您可以使用图像时刻(也可以查看此处)。

尝试查看这些处理"查找漏洞"的教程,在这里和这里。

最新更新