繁体   English   中英

使用 Python 从图像计算汽车宽度

[英]Calculate car width from images using Python

我试图从图像中估计汽车的尺寸(在这种情况下为宽度)。 我有 3 个不同的图像(具有不同的角度)如下所示。 我已经使用基本的东西来确定图像的精明边缘,结果也显示在下面的图像中。 这是我对每辆车的基本代码:

file = 'image.jpg'
img = cv2.imread(file, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
bilateral = cv2.bilateralFilter(gray, 9, 75, 75)
canny = cv2.Canny(bilateral, 50, 255)
cv2.imshow('Canny Image', canny)
cv2.waitKey(0)

不同角度的原图

精明的图像结果

现在,如果我使用cv2.goodFeaturesToTrack()cv2.cornerHarris()检测角落,下图显示我得到了非常奇怪的结果,以蓝点显示。 在此处输入图片说明

我研究过,如果我们想从 2D 图像计算物体的尺寸,我们至少需要 2 张图像,就像我们的眼睛一样。 现在,在给定的场景中,我怎样才能找到汽车的宽度(即从背光左角到背光右角的真实世界距离)? 我有相机到汽车的距离,每个相机位置之间也有距离。 另外,请让我知道此类(或相关)工作是否已经在 python 或任何其他语言中作为开源存在? 谢谢。

您正在使用传统的 CV 算法,该算法无法解决您的问题,因为您的角落在平面背景中是准确的。
我建议您使用 2D 对象检测算法,从那里您将获得图像空间中对象的高度和宽度,即像素长度。
对于在世界空间中获得的宽度,使用相机校准变换等。

这个答案可能会帮助你。 https://stackoverflow.com/questions/13419605/how-to-map-xy-pixel-to-world-cordinates#:~:text=1%20Answer&text=If%20you%20have%20x%2Cy,then%20by %20your%20z_world%20coordinate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM