1、首先要知道使用命令調用攝像頭,並將其寫成一個槽函數,這樣方便以后增加新操作
def PrepCamera(self): self.camera = cv2.VideoCapture(0)
2、下面編寫一個簡單界面,我將要調用攝像頭的Qlabel放在下圖選中的位置,當點擊開始按鈕時,能調用打開攝像頭的操作,當然不是上面那個,Qlabel要實現顯示攝像頭還需要很多操作
3、這里設置函數
def StartCamera(self): self.Timer.start(1) self.timelb = time.clock()
這個函數的作用是刷新Qlabel,每隔1毫秒執行一次self類,為什么呢,因為要執行這個操作:
self.Timer.timeout.connect(self.TimerOutFun)
每隔一毫秒會執行一次TimerOutFun函數,那這個函數的功能是什么:
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()
這樣我們就可以在界面調用攝像頭了: