import cv2
import numpy
cap = cv2.VideoCapture("test1.avi")
while 1:
ret, frame = cap.read()
cv2.imshow("cap", frame)
if cv2.waitKey(100) & 0xff == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
мой код объясняет в вышеупомянутом и его работе отлично в windows.but, когда в человечности 16.04 он дает ошибку. объясните решение
Unable to stop the stream: Inappropriate ioctl for device
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/travis/miniconda/conda-bld/conda_1485299288502/work/opencv-3.2.0/modules/highgui/src/window.cpp, line 304
Traceback (most recent call last):
File "opncv_ex4.py", line 7, in <module>
cv2.imshow("cap", frame)
cv2.error: /home/travis/miniconda/conda-bld/conda_1485299288502/work/opencv-3.2.0/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshow
Ubuntu 16.04 и opencv 3.2 python 2.7
Код ожидает слишком долго для остановки с if cv2.waitKey(100) & 0xff == ord('q'):
так измените от 100 до 10 следующим образом: if cv2.waitKey(10) & 0xff == ord('q'):
После изменения этой строки кода Ваш сценарий Python будет работать отлично в терминале.
Это списки ссылок к веб-странице с очень кратким образцом .avi видео, которые идеально подходят для тестирования Вашего кода. Если Вы запускаете скрипт от терминала, .avi видео должно быть расположено в текущем каталоге.
Если шаги 1 и 2 не работали, поскольку обычная Анаконда является преступником. Анаконда является в основном программой Windows/Mac, которая полностью дублирована пакетами в репозиториях Ubuntu по умолчанию за исключением того, что у Анаконды есть проблема при нахождении любых модулей Python, которые не были установлены Анакондой, если специальная конфигурация не реализована для сообщения Анаконде, где недостающие модули Python расположены. Или можно сдаться и установить OpenCV из репозиториев Ubuntu по умолчанию и прекратить смешивать с Анакондой.
sudo apt install python-opencv