Интегрируйте камеру cv2 в kv в качестве экрана - PullRequest
0 голосов
/ 17 октября 2019

Поэтому я хочу, чтобы пользователь нажал кнопку, которая переместит их в окно с QR-сканером, в котором я нашел уже написанный код для использования cv2. Проблема в том, что он просто создает кадр cv2 вместо экрана kv, а кнопки, которая должна быть на этом экране, там нет, он просто показывает предыдущий экран с кадром cv2 в другом окне

Часть с экраном веб-камеры cv2:

class QrScan(Screen):
    def runcam(self):
        while True:
            _, frame = cap.read()
            decodedObjects = pyzbar.decode(frame)
            for obj in decodedObjects:
                cv2.putText(frame, str(obj.data), (50, 50), font, 2,
                            (255, 0, 0), 3)
            cv2.imshow("Frame", frame)
            key = cv2.waitKey(1)

    def back(self):
        sm.current = "main"

.kv для него:

<QrScan>:
    name: "Qr"
    on_pre_enter: root.runcam()
    FloatLayout:
        Button:
            pos_hint:{"x":0.3,"y":0.1}
            size_hint: 0.4, 0.1
            font_size: (root.width**2 + root.height**2) / 17**4
            text: "Back"
            on_release:
                root.manager.transition.direction = "right"
                root.back()

Я видел интеграцию, когда все приложение представляет собой просто веб-камеру cv2, но эти решения нене работает для экранов

...