python+opencv调用双目同步摄像头模组
2019年1月13日
淘宝买的一个双目摄像头模组:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18936745588.19.2e9816cbUSSb5h&id=567970627038
使用时请选择双目分辨率2560*720,1280*480,640*240,否则只会有一个镜头工作。
当我设置为1280*480显示出两个摄像头的图片,但双图是连在一起的。
如果想分别获取两个摄像头的图片需要进行分割/切片:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import cv2 import time AUTO = True # 自动拍照,或手动按s键拍照 INTERVAL = 2 # 自动拍照间隔 cv2.namedWindow("left") cv2.namedWindow("right") cv2.moveWindow("left", 0, 0) cv2.moveWindow("right", 700, 0) camera = cv2.VideoCapture(1) #设置分辨率 camera.set(cv2.CAP_PROP_FRAME_WIDTH,1280) camera.set(cv2.CAP_PROP_FRAME_HEIGHT,480) counter = 0 utc = time.time() folder = "./screenshot/" # 拍照文件目录 def shot(pos, frame): global counter path = folder + pos + "_" + str(counter) + ".jpg" cv2.imwrite(path, frame) print("snapshot saved into: " + path) while True: ret, frame = camera.read() #裁剪坐标为[y0:y1, x0:x1] left_frame = frame[0:480, 0:640] right_frame = frame[0:480, 640:1280] cv2.imshow("left", left_frame) cv2.imshow("right", right_frame) now = time.time() if AUTO and now - utc >= INTERVAL: shot("left", left_frame) shot("right", right_frame) counter += 1 utc = now key = cv2.waitKey(1) if key == ord("q"): break elif key == ord("s"): shot("left", left_frame) shot("right", right_frame) counter += 1 camera.release() cv2.destroyWindow("left") cv2.destroyWindow("right") |