我寫了一個腳本來顯示從我的網絡攝影機的深度圖: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