我正在尝试使用 opencv 编写一个程序来计算从网络摄像头到一英寸白色球体的距离。我觉得这应该很容易,但无论出于何种原因,我都是一片空白。感谢您提前提供帮助。
最佳答案
您可以使用三角形相似度来校准相机角度并找到距离。
您知道球的尺寸:D
单位(例如 cm)。将它放在相机前面已知距离 Z
处,比如 1 米 = 100cm,并测量其表观宽度(以像素为单位)。将此宽度称为 d
。
相机的焦距 f
(不同相机略有不同)则为 f=d*Z/D
。
当你用这个相机再次看到这个球,它的表观宽度是d'
个像素,然后通过三角形相似度,你知道f/d'=Z'/D
因此:Z'=D*f/d'
其中 Z'
是球与相机的当前距离。
关于opencv - 查找从相机到已知大小物体的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714069/