寻找从相机到已知大小的物体的距离

Dav*_*age 14 webcam opencv object-recognition

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

Adi*_*vit 23

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

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

  • 获得相机的焦距不是问题吗?智能手机的相机校准不会以米为单位给出焦距,而是以xy轴上的像素为单位.它们已经乘以比例因子. (2认同)