基于已知测量的 OpenCv 中两点之间的距离
Distance between two points in OpenCv based on known measurement
我有一张图片,其中有两组坐标,我在它们之间画了一条线。
#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() 的引用作为此问题的解决方案。但是,我不太明白如何根据我的情况进行选择,请记住在这种情况下距离在 image/photo.
以内
计算 C 到 D 的欧几里得,并求出其与已知测量值的比值。
ratio = known / Euclidean
然后求A&B之间的欧几里得距离,并用早先找到的比值将欧几里得距离转换为实际距离。
distance = euclidean * ratio
euclidean "sqrt((x2-x1)**2+(y2-y1)**2)"
我有一张图片,其中有两组坐标,我在它们之间画了一条线。
#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() 的引用作为此问题的解决方案。但是,我不太明白如何根据我的情况进行选择,请记住在这种情况下距离在 image/photo.
以内计算 C 到 D 的欧几里得,并求出其与已知测量值的比值。
ratio = known / Euclidean
然后求A&B之间的欧几里得距离,并用早先找到的比值将欧几里得距离转换为实际距离。
distance = euclidean * ratio
euclidean "sqrt((x2-x1)**2+(y2-y1)**2)"