【发布时间】:2021-02-17 13:49:10
【问题描述】:
我有一张图像被分成了三个部分like this,我打算从每个部分中找出表面积以进行进一步计算。
我尝试使用cv2.findCountours 和cv.2drawContours 找到它的边界,但是当我使用cv2.contourArea 计算表面积时,输出值总是显示0,0。
例如这个part我正在使用
cr_midfoot = cv2.imread('cr_midfoot.png')
m_edged = cv2.Canny(cr_midfoot, 30, 200)
m_edged.copy()
contours_m, hierarchy_m = cv2.findContours(m_edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
cont_midfoot = cv2.drawContours(cr_midfoot, contours_m, -1, (0, 255, 0), 3)
midfoot_area = cv2.contourArea(contours_m[0])
cv2.imshow('contour midfoot', cont_midfoot)
print(midfoot_area)
但是我找不到我需要的信息,有什么办法吗?我正在使用 OpenCV 和 Numpy。
【问题讨论】:
-
为什么不只计算白色像素?
-
对不起,我是 python 新手,我如何计算白色像素?
-
你可以很容易地通过搜索找到答案,例如opencv 计数白色像素
-
在黑色背景上绘制白色填充轮廓。然后要么获取轮廓区域,要么使用 np.count_nonzero()。见numpy.org/doc/stable/reference/generated/…
标签: python python-3.x numpy opencv image-processing