• 1000 Оптимально я хотел бы найти решение, которое не требует cv2, поскольку оно довольно медленное.
Я попытался создать собственный виджет, который обновляется со скоростью 30 кадров в секунду и извлекает изображение, обрабатывает его и затем отображает. Как никогда не работает!
ВНИМАНИЕ: при запуске этого кода мой пи застревает и его нужно перезагрузить!
class DisplayImage(Image):
def __init__(self, **kwargs):
super(DisplayImage, self).__init__(**kwargs)
self.cam = PiCamera()
self.cam.resolution = (1280, 720)
self.cam.framerate = 30
self.cam.awb_mode = "auto"
self.raw = PiRGBArray(self.cam, size=(1280, 720))
Clock.schedule_interval(self.update, 1.0 / 30)
def update(self, dt):
self.cam.capture(self.raw, format='bgr', resize=(1400, 900))
frame = self.raw.array
buf = cv2.resize(frame, (1400, 900), interpolation=cv2.INTER_LINEAR).tostring()
image_texture = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='rgb')
image_texture.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
self.texture = image_texture
Любая помощь будет принята с благодарностью!
С уважением, Бенни!