python - 基于已知测量的 OpenCv 中两点之间的距离

标签 python opencv distance

关闭。这个问题不符合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 中计算这个的最佳方法是什么?

C-D distance is know. A-B is unknown.

是否有 OpenCv 特定的功能或方法来执行此操作?尤其是我们要走的距离是以像素为单位的?如果这个问题很愚蠢,我很抱歉,我真的不想因为对这个主题缺乏理解而最终得到错误的值。

我看到某些对 cv2.norm() 和 cv2.magnitude() 的引用作为解决此问题的方法。但是,我完全不明白如何根据我的情况进行选择,请记住在这种情况下,距离在图像/照片内。

最佳答案

计算从 C 到 D 的欧几里得,并找到与已知测量值的比率。ratio = known / Euclidean然后找到 A 和 B 之间的欧几里得,并使用早先找到的比率将欧几里得转换为实际距离。distance = euclidean * ratioeuclidean "sqrt((x2-x1)**2+(y2-y1)**2)"

关于python - 基于已知测量的 OpenCv 中两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57313708/

相关文章:

xcode - cocoa 应用程序中的 OpenCV Blob 跟踪

android - 如何在 Android 智能手机中使用加速度计传感器查找位移距离?

python - 我如何检查字典中的循环/后边? {...}

Python decimal 模块不一致

opencv - OpenCV 中矩阵的 Cholesky 分解

java - 如果排序字段为 "",lucene 如何使用比较器处理排序字段

r - 如何计算R中沿线的两点之间的地理距离?

python - 类型错误 : 'Popen' object is not callable

java - 使用 Java 和 Python 的 uuencoded 文件之间的区别

python - 图像帧的强度值在转换为视频后发生变化