pyQT編寫界面調用攝像頭

一、首先要知道使用命令調用攝像頭,並將其寫成一個槽函數,這樣方便之後增長新操做ide

    def PrepCamera(self):
        self.camera = cv2.VideoCapture(0)

二、下面編寫一個簡單界面,我將要調用攝像頭的Qlabel放在下圖選中的位置,當點擊開始按鈕時,能調用打開攝像頭的操做,固然不是上面那個,Qlabel要實現顯示攝像頭還須要不少操做函數

三、這裏設置函數spa

 def StartCamera(self):
        self.Timer.start(1)
        self.timelb = time.clock()

這個函數的做用是刷新Qlabel,每隔1毫秒執行一次self類,爲何呢,由於要執行這個操做:code

self.Timer.timeout.connect(self.TimerOutFun)

每隔一毫秒會執行一次TimerOutFun函數,那這個函數的功能是什麼:blog

    def TimerOutFun(self):
        success, img = self.camera.read()
        if success:
            self.Image = img
            self.DispImg()

就是爲了獲取到攝像頭的實時圖片,獲得以後會執行self.DispImg()這個函數,這個函數的做用是改變圖片數據類型,並將圖片用過QLabel展現出來:圖片

    def DispImg(self):
        img = cv2.cvtColor(self.Image, cv2.COLOR_BGR2RGB)
        qimg = qimage2ndarray.array2qimage(img)
        self.DispLb.setPixmap(QPixmap(qimg))
        self.DispLb.show()

 

這樣咱們就能夠在界面調用攝像頭了:class

相關文章
相關標籤/搜索