单目测距python
时间: 2024-09-28 16:12:50 浏览: 32
YOLOv9+单目测距(python)
单目测距通常是指通过计算机视觉技术,利用相机和某种算法来估计场景中某个物体到摄像头的距离。在Python中,可以使用OpenCV库和其他图像处理工具来实现这一功能。以下是一个简单的示例:
```python
import cv2
import numpy as np
# 加载摄像头
cap = cv2.VideoCapture(0) # 一般默认使用电脑内置摄像头
while True:
# 读取一帧
ret, frame = cap.read()
if not ret:
break
# 将图像转换为灰度,以便更容易处理
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 使用模板匹配查找特定特征点
# 这里假设我们有一个预处理好的模板图片
template = cv2.imread('template.png', 0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(gray, template, cv2.TM_CCOEFF_NORMED)
loc = np.where(res >= 0.8) # 设置阈值,找到相似区域
for pt in zip(*loc[::-1]):
# 计算每个匹配点相对于模板中心的距离
x, y = pt
dist_from_center = np.linalg.norm([x - w / 2, y - h / 2])
print(f"Distance at point ({x}, {y}): {dist_from_center} pixels")
# 显示原始图像和匹配结果(这里省略)
# cv2.rectangle(frame, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
cv2.destroyAllWindows()
cap.release()
阅读全文