wxpython ClientDC on loop - PullRequest
       1

wxpython ClientDC on loop

0 голосов
/ 08 января 2019

У меня есть требование отображать выбранные видеокадры с помощью wx.ClientDC при каждом нажатии кнопки. Код, который я написал, обнаруживает нажатие кнопки и зацикливается, считывая кадры, но не отображает его. Я читаю фреймы, используя OpenCV. Я не могу определить, где я иду не так.

class VideoFrame(gui.wxVideoFrame):

    def __init__(self, parent):
        self.parent = parent
        gui.wxVideoFrame.__init__(self, parent)


        self.webcam = WebcamFeed() #opencv Webcam class to feed frames.
        if not self.webcam.has_webcam():
            print ('Webcam has not been detected.')
            self.Close()

        self.STATE_RUNNING = 1
        self.STATE_CLOSING = 2
        self.state = self.STATE_RUNNING

        self.SetSize(wx.Size(1280, 720)) 

        self.dc = wx.ClientDC(self.panel)

        self.verify.Bind(wx.EVT_BUTTON, self.onVerify) #the button
        self.Bind(wx.EVT_CLOSE, self.onClose)

    def onClose(self, event):
        if not self.state == self.STATE_CLOSING:
            self.state = self.STATE_CLOSING
            self.Destroy()

    def onVerify(self, event):
        #self.verify.Enable(True)
        #i = 0
        while i<= 100:
            frame = self.webcam.get_image()#reads image successfully
            image = wx.Bitmap.FromBuffer(640, 480, frame) 
            self.dc.Clear()
            self.dc.DrawBitmap(image, 0, 0)
            #i += 1
            #print(i)

    def onEraseBackground(self, event):
        return  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...