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

这样我们就可以在界面调用摄像头了:

原文地址:https://www.cnblogs.com/roscangjie/p/11504608.html