pyQT編寫界面調用攝像頭


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()

 

這樣我們就可以在界面調用攝像頭了:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM