Python 使用opencv(带掩码)从特定连接组件获取统计信息

Python 使用opencv(带掩码)从特定连接组件获取统计信息,python,opencv,image-processing,connected-components,Python,Opencv,Image Processing,Connected Components,我是opencv(python)新手,不知道如何处理我的新任务 我有几个图像(二值化)和它们的遮罩。我想提取原始图像中所有被遮罩的连接组件,并查看它们的形状(边界框)。我主要对它们的长高比感兴趣。我还想得到这些数据的平均值(或者更好:中位数?),因为我想对它们进行分析 我使用了cv2.connectedComponentsWithStats(),但似乎无法从中获得所需的信息。遗憾的是,这些文档对我也没有帮助 那么:有没有一种方法可以在一个阵列中获得所有需要的CCs,并列出它们的位置和形状?那将非

我是opencv(python)新手,不知道如何处理我的新任务

我有几个图像(二值化)和它们的遮罩。我想提取原始图像中所有被遮罩的连接组件,并查看它们的形状(边界框)。我主要对它们的长高比感兴趣。我还想得到这些数据的平均值(或者更好:中位数?),因为我想对它们进行分析

我使用了cv2.connectedComponentsWithStats(),但似乎无法从中获得所需的信息。遗憾的是,这些文档对我也没有帮助

那么:有没有一种方法可以在一个阵列中获得所有需要的CCs,并列出它们的位置和形状?那将非常有帮助


(还有,我有很多这样的图像,希望得到所有图像的良好平均值。有没有一种方法可以对整个文件夹中的图像进行此操作?

看起来您实际上想要的是轮廓,而不是连接的组件(轮廓只是一个点列表,勾勒出每个组件的轮廓,如多边形)。查看
findContours()
!我不清楚你在找什么数据。您希望返回什么作为连接组件的形状?你是在寻找一个像素列表,一个遮罩,不管它是正方形还是三角形?位置由质心和边界框给出,也可以查看标记的图像。就平均值而言,二元组件(没有孔)的平均值是1。@bicker我想要边界框,是的。也许我不清楚:我想知道长度与高度的比率,并想知道所有选定组件的平均值。因此,我想要类似的东西:“组件A是75(行)乘以450(列)。”的返回变量包括
cv.CC_STAT_LEFT
cv.CC_STAT_TOP
cv.CC_STAT_WIDTH
cv.CC_STAT_HEIGHT
。这就是你要找的吗?