Ich habe eine Kivy App und ich versuche ein Video von meiner Webcam Kamera zu nehmen, um es in meine Anwendung auf meinem Computer zu bringen. Ich habe diesen Code online, die lautete: -Kivy Fehler Kamera Webcam gibt Fehler VideoCapture: Auflösung nicht gefunden
from kivy.app import App
from kivy.lang import Builder
kv = '''
BoxLayout:
orientation: 'vertical'
Camera:
id: camera
resolution: (640, 480)
play: False
ToggleButton:
text: 'Play'
on_press: camera.play = not camera.play
size_hint_y: None
height: '48dp'
'''
class TestCamera(App):
def build(self):
return Builder.load_string(kv)
TestCamera().run()
Ich erhalte eine Fehlermeldung, dass die Videocapture besagt: Auflösung nicht in Kivy/core/Kamera/camera_videocaputure gefunden. Ich habe viele verschiedene Möglichkeiten gefunden, aber ich konnte die Abfrage nicht lösen. Es wäre toll, wenn mir jemand helfen könnte. Vielen Dank !
Der Fehler ist Traceback:
Traceback (most recent call last):
File "C:\Users\User\Desktop\personal work\BinaryHeap.py", line 23, in <module>
TestCamera().run()
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\app.py", line 802, in run
root = self.build()
File "C:\Users\User\Desktop\personal work\BinaryHeap.py", line 21, in build
return Builder.load_string(kv)
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\lang.py", line 1921, in load_string
self._apply_rule(widget, parser.root, parser.root)
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\lang.py", line 2130, in _apply_rule
e), cause=tb)
BuilderException: Parser: File "<inline>", line 6:
...
4: Camera:
5: id: camera
>> 6: resolution: (640, 480)
7: play: False
8: ToggleButton:
...
Exception: VideoCapture: Resolution not supported
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\lang.py", line 2123, in _apply_rule
setattr(widget_set, key, value)
File "kivy\weakproxy.pyx", line 22, in kivy.weakproxy.WeakProxy.__setattr__ (kivy\weakproxy.c:1235)
File "kivy\properties.pyx", line 408, in kivy.properties.Property.__set__ (kivy\properties.c:5114)
File "kivy\properties.pyx", line 733, in kivy.properties.ListProperty.set (kivy\properties.c:11127)
File "kivy\properties.pyx", line 446, in kivy.properties.Property.set (kivy\properties.c:5876)
File "kivy\properties.pyx", line 501, in kivy.properties.Property.dispatch (kivy\properties.c:6557)
File "kivy\_event.pyx", line 1224, in kivy._event.EventObservers.dispatch (kivy\_event.c:13497)
File "kivy\_event.pyx", line 1130, in kivy._event.EventObservers._dispatch (kivy\_event.c:12696)
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\uix\camera.py", line 103, in _on_index
resolution=self.resolution, stopped=True)
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\core\camera\camera_videocapture.py", line 26, in __init__
super(CameraVideoCapture, self).__init__(**kwargs)
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\core\camera\__init__.py", line 70, in __init__
self.init_camera()
File "C:\Users\User\Desktop\personal work\Anaconda3\envs\py27\lib\site-packages\kivy\core\camera\camera_videocapture.py", line 36, in init_camera
raise Exception('VideoCapture: Resolution not supported')
[-1, -1] auch nicht nur funktioniert bietet mir mit einem leeren Bildschirm. Wenn jemand es versucht, bitte teme, wenn es für sie funktioniert? Gibt es eine andere Möglichkeit, die Kamera zum Laufen zu bringen?
from kivy.app import App
from kivy.uix.image import Image
from kivy.clock import Clock
from kivy.graphics.texture import Texture
import cv2
from kivy.uix.camera import Camera
class KivyCamera(Image):
def __init__(self, capture, fps, **kwargs):
super(KivyCamera, self).__init__(**kwargs)
self.capture = capture
Clock.schedule_interval(self.update, 1.0/fps)
def update(self, dt):
ret, frame = self.capture.read()
if ret:
# convert it to texture
buf1 = cv2.flip(frame, 0)
buf = buf1.tostring()
image_texture = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')
image_texture.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
# display image from the texture
self.texture = image_texture
class CamApp(App):
def build(self):
self.capture = cv2.VideoCapture(0)
self.my_camera = KivyCamera(capture=self.capture, fps=30)
return self.my_camera
def on_stop(self):
#without this, app will not exit even if the window is closed
self.capture.release()
CamApp().run()
Der obige Code funktioniert für mich, aber ich weiß nicht, wie man es in eine Kivy-Datei ändert. Also ich würde jede Hilfe schätzen. Vielen Dank. Ich machte ein Foto und meine Kameraauflösung war 1920 x 1080. Ich dachte nur, dass es helfen könnte.
Danke für die Bearbeitung! – arnav
Können Sie den vollständigen Fehler/Traceback hinzufügen? – syntonym
Was passiert, wenn Sie die Auflösungszeile löschen? – syntonym