关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
我有一个图像,其中有两组坐标,我在它们之间画了一条线。
#Get image
im_res = requests.get(image_url)
img = Image.open(BytesIO(im_res.content))
img = np.asarray(img)
#Draw first line
lineThickness = 3
cv.line(img, (ax, ay), (bx, by), (0,255,0), lineThickness)
#Draw second line
lineThickness = 3
cv.line(img, (cx, cy), (dx, dy), (0,255,0), lineThickness)
cv.imshow("Image", img)
cv.waitKey(0)
cv.destroyAllWindows()
坐标是 A、B、C 和 D。我知道 C 到 D 之间的距离。但是,A 到 B 之间的距离是未知的。在 OpenCv 中计算这个的最佳方法是什么?
是否有 OpenCv 特定的功能或方法来执行此操作?尤其是我们要走的距离是以像素为单位的?如果这个问题很愚蠢,我很抱歉,我真的不想因为对这个主题缺乏理解而最终得到错误的值。
我看到某些对 cv2.norm() 和 cv2.magnitude() 的引用作为解决此问题的方法。但是,我完全不明白如何根据我的情况进行选择,请记住在这种情况下,距离在图像/照片内。
最佳答案
计算从 C 到 D 的欧几里得,并找到与已知测量值的比率。ratio = known / Euclidean
然后找到 A 和 B 之间的欧几里得,并使用早先找到的比率将欧几里得转换为实际距离。distance = euclidean * ratio
euclidean "sqrt((x2-x1)**2+(y2-y1)**2)"
关于python - 基于已知测量的 OpenCv 中两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57313708/