2016-08-26 6 views
0

Я пытаюсь использовать свою веб-камеру Trust Spotlight Webcam PRO с Python и OpenCV, и у меня есть проблема с удержанием веб-камеры после завершения программы.Веб-камера по-прежнему хранится даже после завершения программы Python

Простой сценарий:

import cv2 

vc = cv2.VideoCapture(1) 
while True: 
    _, frame = vc.read() 
    cv2.imshow('Web cam', frame) 

    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

vc.release() 
cv2.destroyAllWindows() 

Все хорошо работает, когда я подключить веб-камеру к моему ноутбуку и я бег сценария - я вижу изображение с камерой. Когда я остановлю цикл захвата, нажав клавишу «q», я бы предположил, что команда vc.release() освобождает камеру от использования. Но после этого первого запуска я не могу запустить скрипт еще раз, потому что на этот раз я получаю сообщение об ошибке:

OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 261 
Traceback (most recent call last): 
    File ".../sample.py", line 8, in <module> 
    cv2.imshow('Web cam', frame) 
cv2.error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow 

Я уверен, что какой-то процесс все еще держит веб-камеру. Я также не могу подключиться к этой веб-камере в это время из любой другой программы (я попробовал Skype). И я также получаю ту же ошибку, когда подключаю веб-камеру к ноутбуку, подключаюсь к веб-камере через Skype и запускаю сценарий выше.

Как я могу освободить свою веб-камеру для использования в будущем?

ответ

0

Кажется, что на самом деле, возможно, был какой-то (для меня скрытый) процесс, который все еще держал камеру. Когда я закрываю свой ноутбук и верну его, все работает нормально.