通过opencv (python) 获得mynteye小觅双目图像
注:本文仅针对小觅摄像头标准入门版
利用opencv调用摄像头
这个比较简单,随处可见,这里直接上代码。
# -*- coding:utf-8 -*-
'''
@Author: Tomas Wu
@Date: 2019-07-09 18:00:34
@Desc:
'''
import cv2
import numpy as np
cap=cv2.VideoCapture(0)
while cap.isOpened():
ret,img = cap.read()
if ret:
cv2.imshow('image',img)
k=cv2.waitKey(1)
if k == ord('q'):
break
然而得到的结果却会将双目结果重叠显示,如同下图。
重新处理从摄像头读取的数据
显然,OpenCV读取后的数据被自动转换为RGB三通道图片了,因此需要手动处理才能得到想要的图片。
通过查看小觅的SDK源码,可以发现,觅输出的数据格式为
data[left,right,left,rith...]
因此可以通过将VideoCapture的CAP_PROP_CONVERT_RGB参数设置为False来获得未经处理的数据。把这些数据分开为left和right即可获得双目图像了。而实际上这就是按照双通道图片形式存储的,因此可以将数据reshape为(480,752,2)后,每一通道即为一目图像。
好了,话不多说上代码。
# -*- coding:utf-8 -*-
'''
@Author: Tomas Wu
@Date: 2019-07-09 18:00:34
@Desc:
'''
import cv2
import numpy as np
if __name__=='__main__':
cap=cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_CONVERT_RGB,False)
while True:
ret,data=cap.read()
if ret:
img=data.reshape(480,752,2)
l,r=img[:,:,0],img[:,:,1]
cv2.imshow('l',l)
cv2.imshow('r',r)
k=cv2.waitKey(10)
if k==27:
break
结果如下图咯: