Проблемы с веб-камерой OpenCV - PullRequest
0 голосов
/ 20 января 2019

Каждый раз, когда я пытаюсь открыть встроенную камеру ноутбука, используя OpenCV, я сталкиваюсь с ошибкой.

Например:

import kivy
kivy.require('1.9.1')

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.camera import Camera

class MainApp(App):
    def build(self):
        return Camera(play=True,resolution = [0,0])

if __name__== "__main__":
    MainApp().run()

выдает ошибку:

 Traceback (most recent call last):
   File "C:/Users/dell/Desktop/KIVY TEST/camera.py", line 13, in <module>
     MainApp().run()
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\kivy\app.py", line 800, in run
     root = self.build()
   File "C:/Users/dell/Desktop/KIVY TEST/camera.py", line 10, in build
     return Camera(play=True,resolution = [0,0])
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\kivy\uix\camera.py", line 91, in __init__
     on_index()
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\kivy\uix\camera.py", line 103, in _on_index
     resolution=self.resolution, stopped=True)
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\kivy\core\camera\camera_opencv.py", line 67, in __init__
     super(CameraOpenCV, self).__init__(**kwargs)
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\kivy\core\camera\__init__.py", line 70, in __init__
     self.init_camera()
   File "C:\Program Files (x86)\Python36-32\lib\site-packages\kivy\core\camera\camera_opencv.py", line 121, in init_camera
     if self.fps <= 0:
 AttributeError: 'CameraOpenCV' object has no attribute 'fps'

Другой пример:

import cv2


def show_webcam(mirror=False):
    cam = cv2.VideoCapture(0)
    while True:
        ret_val, img = cam.read()
        if mirror:
            img = cv2.flip(img, 1)
        cv2.imshow('my webcam', img)
        if cv2.waitKey(1) == 27:
            break  # esc to quit
    cv2.destroyAllWindows()


def main():
    show_webcam(mirror=True)


if __name__ == '__main__':
    main()

, который выдает ошибку:

[ WARN:0] terminating async callback
Traceback (most recent call last):
  File "C:/Users/dell/Desktop/KIVY TEST/camera.py", line 26, in <module>
    main()
  File "C:/Users/dell/Desktop/KIVY TEST/camera.py", line 22, in main
    show_webcam(mirror=True)
  File "C:/Users/dell/Desktop/KIVY TEST/camera.py", line 15, in show_webcam
    cv2.imshow('my webcam', img)
cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:350: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

Я почти уверен, что это может быть проблема с моим конкретным ноутбуком, так как код, который я использую, работает для других онлайн.

Если у вас есть идея, как мне это отсортировать, это было бы невероятно полезно!

Спасибо !!

1 Ответ

0 голосов
/ 18 апреля 2019

Вы используете OpenCV 4. Совместимость с OpenCV 4 включена в основную ветку github , но еще не доступна через pypi. Попробуйте установить kivy из github:

pip install https://github.com/kivy/kivy/archive/master.zip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...