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