目录
拉到文末领资源
导读
本文介绍了使用OpenCV实现摄像头测距的实用案例,希望能对各位读者有所帮助。
摄像头测距就是计算照片中的目标物体到相机的距离。可以使用相似三角形(triangle similarity)方法实现,或者使用更复杂但更准确的相机模型的内参来实现这个功能。
使用相似三角形计算物体到相机的距离
假设物体的宽度为 W,将其放到离相机距离为 D 的位置,然后对物体进行拍照。在照片上量出物体的像素宽度 P,于是可以得出计算相机焦距 F 的公式:
比如我在相机前 24 英寸距离(D=24 inches)的位置横着放了一张 8.5 x 11 英寸(W=11 inches)的纸,拍照后通过图像处理得出照片上纸的像素宽度 P=248 pixels。所以焦距 F 等于:
此时移动相机离物体更近或者更远,我们可以应用相似三角形得到计算物体到相机的距离的公式:
原理大概就是这样,接下来使用 OpenCV 来实现。
获取目标轮廓
# import the necessary packages
from imutils import paths
import numpy as np
import imutils
import cv2
def find_marker(image):