QT Opencv 图像处理 视频处理 人脸识别

前言

近期学习了OpenCV的一些函数 然后配合着函数跟QT的一些UI写一个图像跟视频处理跟摄像头处理的一些功能 但是这个主要的一个框架是学习一个视频的 当时主要讲的是一个OpenCV的视频处理的 UI是仿照一位作者的 然后因为记录确实有点远 找不到了 先声明一下

一、作品展示

图片处理

QT Opencv 图像处理 视频处理 人脸识别_第1张图片
QT Opencv 图像处理 视频处理 人脸识别_第2张图片

视频处理

QT Opencv 图像处理 视频处理 人脸识别_第3张图片
QT Opencv 图像处理 视频处理 人脸识别_第4张图片

摄像头处理

QT Opencv 图像处理 视频处理 人脸识别_第5张图片
QT Opencv 图像处理 视频处理 人脸识别_第6张图片

二、运行的逻辑

先是线程不断循环通过UI传入的图片 视频 进行读取保存 通过我们的PV_Filter将一帧的图片进行一个处理 处理结束之后返回的一帧交还给UI进行显示

QT Opencv 图像处理 视频处理 人脸识别_第7张图片
然后要引入OpenCV的库 这个…网上有方法 以前引入的 好像是你只要会图片处理的一些算法 应该也是可以做到不用OpenCV的库也可以处理…不太清楚

三、PV_Filter

QT Opencv 图像处理 视频处理 人脸识别_第8张图片

首先是PVFilter
PVFilter其实就是将QList的所有添加的模式做一个处理
QT Opencv 图像处理 视频处理 人脸识别_第9张图片
Add就是简单的一个PushBack
QT Opencv 图像处理 视频处理 人脸识别_第10张图片

四、PVActionPro 具体函数的处理

人脸识别

QT Opencv 图像处理 视频处理 人脸识别_第11张图片

X镜像 Y镜像

QT Opencv 图像处理 视频处理 人脸识别_第12张图片

旋转

QT Opencv 图像处理 视频处理 人脸识别_第13张图片

灰度图

QT Opencv 图像处理 视频处理 人脸识别_第14张图片

膨胀

QT Opencv 图像处理 视频处理 人脸识别_第15张图片

腐蚀

QT Opencv 图像处理 视频处理 人脸识别_第16张图片

均值滤波

QT Opencv 图像处理 视频处理 人脸识别_第17张图片
因为设置成0的时候Bug过 所以就设置了一个限制

边缘检测

QT Opencv 图像处理 视频处理 人脸识别_第18张图片
copy一份是因为好像内部输入跟输出的Mat不能相等

亮度与对比度

QT Opencv 图像处理 视频处理 人脸识别_第19张图片
value是对比度 value1是亮度 (大概 不然就反过来-。-)

增加RGB值的通道

QT Opencv 图像处理 视频处理 人脸识别_第20张图片

二值化

QT Opencv 图像处理 视频处理 人脸识别_第21张图片

五、OpenCV_PV_Thread线程

1.一些声明

QT Opencv 图像处理 视频处理 人脸识别_第22张图片
QT Opencv 图像处理 视频处理 人脸识别_第23张图片

1.首先是图片的处理

打开图片
QT Opencv 图像处理 视频处理 人脸识别_第24张图片
run内部的关于图片的处理
QT Opencv 图像处理 视频处理 人脸识别_第25张图片

2.然后是视频的一些处理

打开视频 获取FPS是为了在run中Sleep
SwitchPlayIcon是为了切换播放的图标显示
QT Opencv 图像处理 视频处理 人脸识别_第26张图片
视频录制
因为视频录制需要VideoWriter先调用open
open需要获取的几个值
路径 fourcc Fps 长宽 以及是否是彩图或灰度图
QT Opencv 图像处理 视频处理 人脸识别_第27张图片
停止录制
QT Opencv 图像处理 视频处理 人脸识别_第28张图片
run内部循环的一些视频处理
这边的逻辑是 如果暂停那就停止读取下一帧Mat
如果是Read不到下一帧 那可能是视频播放完毕 处于录制状态要停止录制
如果处于保存一帧图片的情况就用imwrite处理就好
如果是处于录制状态 则需要知道他的开始位置跟结束位置(ui有一个开始跟停止的Slider)
如果存在开始就调到开始 跟计算结束的位置停止录制就好
QT Opencv 图像处理 视频处理 人脸识别_第29张图片

3.摄像头的处理

一样是调用Open函数 填数字代表的是你计算机内部的设备(没记错的话)
QT Opencv 图像处理 视频处理 人脸识别_第30张图片
因为摄影保存的方式个视频保存的方式一样 只是没有一个StartPos 跟 EndPos
所以这边就不贴了 跟上面差不多哦

run里面的一些摄像头处理
QT Opencv 图像处理 视频处理 人脸识别_第31张图片

你可能感兴趣的:(QT,qt,opencv)