[英]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 对象检测算法,从那里您将获得图像空间中对象的高度和宽度,即像素长度。
对于在世界空间中获得的宽度,使用相机校准变换等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.