PYQT实现使用opencv获取摄像头并在上面框选
怎么使用PYQT和opencv
pyqt可以直接pip安装,opencv也是,但要注意这两个都不能使用太新的版本,不然两个不能兼容,后续打包上会存在问题
通过opencv获取摄像头流
首先创建一个opencv对象,我们要不断的去读取这个opencv的对象,就要不断去获取read
然后通过pyqt的超时Timer的timeout去不断调用这个获取read的方法,然后显示在pyqt的label上
def __init__(self):
self.cap = cv2.VideoCapture(ConfigManage.video)
self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
这边要指定一下分辨率,方便我们后续截图,ConfigManage.video默认是0,如果电脑上只有一个摄像头就为0,直接写入0就行,我这边的写法是从一个配置文件里获取摄像头的参数。
持续获取视频流
def captureNextFrame(self):
self.ret, self.read = self.cap.read()
if (self.ret == True):
self.video_error_state = True
self.currentFrame = cv2.cvtColor(self.read,