Qt + OpenCV + AI 开发图像识别工具
本次练习要求大家使用 Python Qt + OpenCV + AI(调用云服务) , 开发一个 车牌识别软件
安装
执行如下命令即可安装 opencv python 库
摄像头视频播放程序
我们可以使用Opencv的摄像头读取功能,开发 摄像头视频播放程序
参考代码如下
# 参考 https://docs.opencv.org/3.4/dd/d43/tutorial_py_video_display.html
import sys
from PySide2.QtWidgets import QApplication
from PySide2.QtUiTools import QUiLoader
from PySide2 import QtCore,QtGui
import cv2
class My:
def __init__(self):
# 加载UI文件
self.ui = QUiLoader().load('cvCam.ui')
self.ui.start.clicked.connect(self.start)
self.ui.stop.clicked.connect(self.stop)
# 定义定时器,用于控制显示视频的帧率
self.timer_camera = QtCore.QTimer()
# 定时到了,回调 self.show_camera
self.timer_camera.timeout.connect(self.show_camera)
def start(self):
self.cap = cv2.VideoCapture(0)
ret, frame = self.cap.read()
if not ret:
print('1号摄像头不能接收数据,退出')
sys.exit(1)
# 若定时器未启动
if self.timer_camera.isActive() == False:
self.timer_camera.start(100)
def stop(self):
self.timer_camera.stop() # 关闭定时器
self.cap.release() # 释放视频流
self.ui.label_raw_camera.clear() # 清空视频显示区域
def show_camera(self):
ret, frame = self.cap.read() # 从视频流中读取
# 把读到的帧的大小重新设置为 480x360
frame = cv2.resize(frame, (480, 360))
# 视频色彩转换回RGB,这样才是现实的颜色
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# 变成QImage形式
qImage = QtGui.QImage(frame.data, frame.shape[1], frame.shape[0],
QtGui.QImage.Format_RGB888)
# 往显示视频的Label里 显示QImage
self.ui.label_raw_camera.setPixmap(QtGui.QPixmap.fromImage(qImage))
app = QApplication([])
my = My()
my.ui.show()
app.exec_()
示例代码里面要加载一个界面ui文件,可以点击这里下载该文件