其计算方法为面积/凸壳面积之比:
#calculating area from contour
area = cv2.contourArea(unicocnt)
#calculating hull and hull area
hull = cv2.convexHull(unicocnt)
hull_area = cv2.contourArea(hull)
#solidity
solidity = float(area)/hull_area
计算圆形图像的所有值都接近1,所以我假设当我计算轮廓的面积时,我不考虑内部是否为白色像素(轮廓为黑色)时,计算圆内的面积
图像示例:https://docs.google.com/file/d/0ByS6Z5WRz-h2b0JITFB4aHR0OWc/edit?usp=sharing
代码:
^{pr2}$更新
我是这样做的:
ColoredArea = 0
for i in range(0,len(imgbnbin)):
a = imgbnbin[i]
for j in range (0, len(a)):
if (cv2.pointPolygonTest(hull, unicocnt) >= 0):
if (getPixel(x,y) == black):
ColoredArea = ColoredArea +1;
出现此错误:
if (cv2.pointPolygonTest(hull, unicocnt) >= 0):
TypeError: Required argument 'measureDist' (pos 3) not found
尝试以下算法(在伪代码中):
相关问题 更多 >
编程相关推荐