我写了一个脚本来显示从我的网络摄影机的深度图:opencv的摄像头脚本无休止地打开摄像头和关闭
cam_a = int(sys.argv[1])
cam_b = int(sys.argv[2])
while True:
imgl = cv2.VideoCapture(cam_a).read()[1]
imgL = cv2.cvtColor(imgl, cv2.COLOR_BGR2GRAY)
imgr = cv2.VideoCapture(cam_b).read()[1]
imgR = cv2.cvtColor(imgr, cv2.COLOR_BGR2GRAY)
stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,ndisparities=16, SADWindowSize=15)
disparity = stereo.compute(imgL,imgR)
cv2.imshow('Disparity', disparity)
虽然它不给我一个错误,它闪光我的两个摄像头断断续续地,无止境地。我担心这可能会打破我的网络摄像头,我怎么能阻止它?
编辑
于是,我改变了它,使它只显示一个相机作为普通视频:
while True:
imgl = cv2.VideoCapture(cam_a).read()[1]
imgL = cv2.cvtColor(imgl, cv2.COLOR_BGR2GRAY)
#imgr = cv2.VideoCapture(cam_b).read()[1]
#imgR = cv2.cvtColor(imgr, cv2.COLOR_BGR2GRAY)
#stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,ndisparities=16, SADWindowSize=15)
#disparity = stereo.compute(imgL,imgR)
cv2.imshow('Disparity', imgL)
cv2.waitKey(10)
它仍然只是闪烁的相机和关闭。我不知道这里要改变什么。
这没有奏效。它现在显示图像,但是我的两个网络摄像头(Logitech)仍然打开,然后关闭,然后打开,然后关闭等。 – Rich
如果仅使用单个摄像头并仅更改一个摄像头的代码,会发生什么情况? –
嘿,我添加了新的部分。 – Rich