opencv python 双目识别
时间: 2023-07-24 22:05:21 浏览: 114
基于OpenCV的双目定位系统
5星 · 资源好评率100%
OpenCV是一个开源计算机视觉库,可以用于图像处理、计算机视觉和机器学习等领域。双目识别是指利用两个摄像头同时拍摄同一场景,通过对两张图像的比较,来获取更多的深度信息和立体感。
下面是一个基于Python和OpenCV的双目识别示例代码:
```python
import cv2
# 打开左右两个摄像头
cap_left = cv2.VideoCapture(0)
cap_right = cv2.VideoCapture(1)
# 设置摄像头参数
cap_left.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap_left.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
cap_right.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap_right.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# 创建双目立体摄像机对象
stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)
while True:
# 读取左右两个摄像头的图像
ret_left, frame_left = cap_left.read()
ret_right, frame_right = cap_right.read()
# 转换为灰度图像
gray_left = cv2.cvtColor(frame_left, cv2.COLOR_BGR2GRAY)
gray_right = cv2.cvtColor(frame_right, cv2.COLOR_BGR2GRAY)
# 计算视差图
disparity = stereo.compute(gray_left, gray_right)
# 显示视差图
cv2.imshow('disparity', disparity)
# 按下q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap_left.release()
cap_right.release()
cv2.destroyAllWindows()
```
注意,这里的`numDisparities`和`blockSize`参数需要根据实际情况进行调整,以获取更好的双目视差图效果。
阅读全文