下面的硬币图形是一个带有不同面具的灰度图像(以不同的颜色显示)。有没有一种方法可以用python计算灰度图像中每个硬币的掩模面积(以像素为单位)。在
硬币面具的标签
{"classes": [{"title": "coin1", "shape": "polygon", "color": "#BE5C3C", "geometry_config": {}}, {"title": "coin2", "shape": "polygon", "color": "#961D82", "geometry_config": {}}, {"title": "coin3", "shape": "polygon", "color": "#C1BB5C", "geometry_config": {}}, {"title": "coin4", "shape": "polygon", "color": "#D0021B", "geometry_config": {}}, {"title": "coin5", "shape": "polygon", "color": "#417505", "geometry_config": {}}], "tags": []}
钱币面具注解
^{pr2}$
每个标记区域的真像素数是每个标记区域的面积的估计值。在
下面是一个使用OpenCV的方法。我们用Otsu的阈值来获得一个二值图像,这个图像的前景对象是白色的,背景是黑色的。从这里我们使用
cv2.countNonZero()
,它返回掩码上的白色像素数找到白色像素的数量
我们还可以计算像素与总图像面积的百分比比率
^{pr2}$如果你想得到单个硬币像素区域,那么你可以迭代每个轮廓。总面积应该相同
相关问题 更多 >
编程相关推荐