Изменение положения веб-камеры Kivy cv2 после нажатия кнопки переключения - PullRequest
0 голосов
/ 04 марта 2019

У меня есть кнопка переключения, которая позволяет запускать и останавливать веб-камеру с помощью cv2.

Все работает отлично, за исключением того факта, что положение изображения смещается вправо каждый раз, когда я нажимаю кнопку переключения.

Вначале камера cv2 находится в правильном положении (в центре), но затем, когда я останавливаюсь и запускаю камеру назад с помощью переключателя, изображение перемещается с правой стороны.

Каждый раз, когда я запускаю камеру, изображение движется шаг за шагом с правой стороны.

class PlayToggleButton(ToggleButton):
    def on_state(self, widget, value):
        if value == 'down':
            self.text = 'Stop'
            self.source = 'atlas://data/images/defaulttheme/checkbox_on'
            App.get_running_app().root.ids.camera.build()
        else:
            self.text = 'Play'
            self.source = 'atlas://data/images/defaulttheme/checkbox_off'
            App.get_running_app().root.ids.camera.img1.source = 'black.jpg'
            App.get_running_app().root.ids.camera.img1.reload()
            App.get_running_app().root.ids.camera.capture.release()


class CameraImage(BoxLayout):
    cam = ObjectProperty()

    def build(self):
        self.img1=Image(source = 'black.jpg')
        layout = self.add_widget(self.img1)
        #opencv2 stuffs
        self.capture = cv2.VideoCapture(0)
        ret, frame = self.capture.read()

        Clock.schedule_interval(self.webcam_stream, 1.0/33.0)
        return layout

Мой файл кв:

<MeetingDB>:
orientation:'vertical'
meeting_list: meeting_view
attendance_list: attendance_view
cam: camera

CameraImage:
    id: camera
PlayToggleButton:
    text: 'Play'
    size_hint_y: None
    height: '48dp'

Можете ли вы мне помочь?пожалуйста?

...