我只是想使用开放式简历在同一张图片上找到两点之间的长度。有人可以帮我解决这个问题吗?
到目前为止,我所做的是:使用此代码示例获取图像的轮廓。
for cnt in contours:
epsilon = 0.01* cv2.arcLength(cnt,True)
approx = cv2.approxPolyDP(cnt,epsilon,True)
img = cv2.drawContours(img, [approx], 0, (0,255,0), 3)
我真正需要的测量-使用红色的红色直线绘制的肩膀尺寸的长度。有什么方法可以检测到这两点并找到肩膀的长度。
预期:查找RED线的长度
答案 0 :(得分:-1)
在2D图像A和B中分别给出2个点,分别具有像素坐标(xA,yA)和(xB,yB)(x代表列号,y代表行号)。
它们之间的距离是通过以下方式获得的:
这是关于aboutPolyDP的文档: https://docs.opencv.org/4.1.0/d3/dc0/group__imgproc__shape.html#ga0012a5fdaea70b8a9970165d98722b4c
在文档中,您可能会注意到此函数的输出是一个点数组(按连接顺序排列)。
如果您仍未找到轮廓的哪些点是肩膀,则可以寻找最高点并使用阈值(头顶),然后再跳2个点。您可以轻松找出一种更可靠的方法。