Ich habe ein Kivy-Widget, das ich als Platzhalter für eine Live-Vorschau von einer Webcam fungieren möchte. Ich habe bereits den Webcam-Stream-Teil herausgefunden, aber ich kann den Stream nicht ganz erreichen, um das leere Image-Widget zu füllen (vorausgesetzt, ich sollte sogar ein Bild-Widget verwenden und nicht etwas anderes).Kivy Widget mit Numpy Image Array Daten aktualisieren
Für das Protokoll, ich bin der Kamera-Widget nicht verwenden, da es mit dem Raspberry Pi Kamera funktioniert nicht gut, die kein USB-Webcam ist. Hier
ist der Code für meine Kamera Widget-Klasse:
class CV2Camera(BoxLayout):
def __init__(self, **kwargs):
super(CV2Camera, self).__init__(**kwargs)
self.vs = WebcamVideoStream(src=0).start()
def _finish_init(self, dt):
Clock.schedule_interval(self.update, .05)
def update(self, dt):
self.image = self.vs.read()
self.image = imutils.resize(self.image, width=1080)
self.image = np.fliplr(self.image)
self.video_texture = Texture.create(size=(self.image.shape[1], self.image.shape[0]), colorfmt='bgr')
self.video_texture.blit_buffer(self.image.tostring(), colorfmt='bgr', bufferfmt='ubyte')
self.video_panel = self.ids['camera_preview']
with self.video_panel.canvas as canvas:
Rectangle(texture=self.video_texture, pos=self.video_panel.pos, size=self.video_panel.size)
Und hier ist mein Layout Erklärung:
<CV2Camera>
canvas.before:
PushMatrix
canvas.after:
PopMatrix
<PhotoBooth>:
Screen:
name: 'screen1'
GridLayout:
cols: 2
orientation: 'horizontal'
FloatLayout:
size_hint: 4, 1
CV2Camera:
id: camera
orientation: 'horizontal'
Image:
id: camera_preview
GridLayout:
cols: 1
Button:
text: "<-Previous Frame"
Button:
text: "Next Frame->"
Button:
text: "Take Picture!"
on_press: root.capture()
Dieser Code läuft gut, aber alles, was ich bekommen ist ein grauer Platz, wo meine Bild/Kamera Vorschau sollte angezeigt werden. Ich bin neu in Kivys Architektur, aber die Beispiele aus dem Internet, die mich hierher gebracht haben (wie this SO thread und this Github project) scheinen darauf hinzudeuten, dass dies funktionieren sollte. Vielen Dank.
haben Sie versucht, mit https://kivy.org/docs/api-kivy.uix.camera.html – PalimPalim
Dank Palim, wie in der oben angegeben, ist die eingebaute in Kivy Kamera-Widget nicht wählen die Raspberry Pi-Kamera "out-of-the-box", und ich habe zu lange gekämpft, um zu versuchen, es sonst ohne Erfolg zum Laufen zu bringen. – John
Entschuldigung, habe nicht sorgfältig genug gelesen. – PalimPalim