寻找从相机到已知尺寸的物体的距离

时间:2011-07-15 23:06:01

标签: opencv webcam object-recognition

我正在尝试使用opencv编写程序来计算从网络摄像头到1英寸白色球体的距离。我觉得这应该很容易,但无论出于何种原因,我都是空白。谢谢你提前帮忙。

2 个答案:

答案 0 :(得分:23)

您可以使用三角形相似度来校准摄像机角度并找到距离 你知道你的球的大小:D单位(例如厘米)。将其放置在相机前面的已知距离Z,比如1米= 100厘米处,并以像素为单位测量其表观宽度。将此宽度称为d 然后,相机f的焦距(相机与相机略有不同)为f=d*Z/D

当你用这台相机再次看到这个球时,它的表观宽度是d'像素,那么通过三角形的相似性,你知道f/d'=Z'/D因此:Z'=D*f/d'其中{{1球是当前距离相机的距离。

答案 1 :(得分:0)

在我看来,如果你想测量距离或其他东西(在现实世界中),你需要一个相机模型=校准模型。 针孔相机模型简单,线性且效果良好(但不能校正失真,(无论是径向还是切向)。

如果你不使用它,那么你将能够计算视差深度图,(例如,如果你使用立体视觉),但它是相对的,并没有给你一个绝对的测量,只有什么是落后于另一个对象的前方......

因此,我认为答案是:你需要以某种方式校准它,也许你可以要求用户接近球体到相机,直到所有的图像平面完全充满球,并且先前已知的球测量,你将能够计算距离......

于连