首页 > 解决方案 > 将 cv2 摄像头集成到 kv 中作为 Screen

问题描述

所以我希望用户点击一个按钮,将他们移动到带有 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 网络摄像头的集成,但这些解决方案不适用于屏幕

标签: pythonpython-3.xkivycv2

解决方案


推荐阅读