#coding=utf-8 import cv2 import numpy as np import usb.core import usb.backend.libusb1 import requests import time from matplotlib import pyplot as plt cap = cv2.VideoCapture(1) backend = usb.backend.libusb1.get_backend(find_library=lambda x: "/usr/lib/libusb-1.0.so") # dev = usb.core.find(idVendor=0x18e3, idProduct=0x5031, backend=backend) dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x50,0xff]) dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0xf6]) dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x25,0x00]) dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x5f,0xfe]) dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x03]) dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x02]) dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x12]) dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x04]) dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x76,0xc3]) dev.ctrl_transfer(0x21,0x01,0x0a00,0x0600,[4,0x00]) firstFrame = None window_size = 0 while(1): ret, frame = cap.read() frame = cv2.resize(frame, (1280, 480), interpolation=cv2.CV_8SC1) #cv2.cvtColor(frame, frame, cv2.COLOR_BGR2GRAY); frame_left_old = frame[0:480,0:640] frame_left = cv2.cvtColor(frame_left_old, cv2.COLOR_BGR2GRAY); frame_right_old = frame[0:480,640:1280] frame_right = cv2.cvtColor(frame_right_old, cv2.COLOR_BGR2GRAY); #stereo = cv2.StereoBM_create(numDisparities=32, blockSize=15) stereo = cv2.StereoSGBM_create(minDisparity = 16, numDisparities = 64, blockSize = 16, P1 = 8*3*window_size**2, P2 = 32*3*window_size**2, disp12MaxDiff = 1, uniquenessRatio = 10, speckleWindowSize = 100, speckleRange = 32 ) disparity = stereo.compute(frame_left,frame_right) disp = cv2.normalize(disparity, disparity, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U) cv2.imshow("h",disp) #plt.imshow(disparity,'gray') #plt.show() if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
最新文件在 : https://github.com/endpang/driverless
disparity.py 图片调参
disparity_video.py 视频取图调参
这两个文件是调节摄像头的。其实应该用严格标定,懒得麻烦的,可以用这个工具简单表定下。
left_or_right.py 测试
其中minDisparity是控制匹配搜索的第一个参数,代表了匹配搜苏从哪里开始,numberOfDisparities表示最大搜索视差数uniquenessRatio表示匹配功能函数
毫无疑问,这个是要支持的!