环境:
windows 10
opencv 3.4.10
qt 5
环境配置
从opencv官网上下载对应的opencv库https://opencv.org/
由于官网上面的是未经编译的,所以下载好之后需要我们自己编译,安装cmake的GUI版本:
https://cmake.org/download/,以及使用VS或mingw编译(本文使用VS2015)。
然后在opencv根目录下新建一个build文件夹,用于存放编译后的文件。
打开cmake的GUI版本,设置source code路径为opencv根目录,编译好的二进制文件存储的路径为xxx/opencv/build/,点击Configue,启动配置过程。
弹窗中选择Vidual Studio 14 2015.
选中BUILD_opencv_world,这样后续打包会很方便。
之后再次单击Configue,再点击Generate按钮。
完成后单击Open Project按钮
选中ALL_BUILD与INSTALL。
则编译成功,build/install下的文件即为编译后的有用的文件。
小demo
先新建一个qt widget项目。
再在项目头文件(.pro)中添加如下内容:
INCLUDEPATH +=E:/opencv-3.4.10/build/install/include
Release:
{
LIBS += -LE:/opencv-3.4.10/build/install/x86/vc14/lib -lopencv_world3410
}
Debug:
{
LIBS += -LE:/opencv-3.4.10/build/install/x86/vc14/lib -lopencv_world3410d
}
上面的三处路径设置为自己的。
然后直接在主函数中,添加如下代码:
#include <opencv2/opencv.hpp>
using namespace cv;
Mat src = imread("./test.png");
imshow("show",src);
waitKey(0);
需要去掉shadow构建,否则图片路径需要改动。
test.png
构建项目-运行,就会发现展示了一幅图像。
桌面小程序开发
预计功能
(1)打开电脑摄像头,进行实时目标检测。
(2)打开本地图片,加滤镜算法,并且实现证件照换底,处理完毕的图片可重新下载到本地。
(3)打开本地视频,可实现倍速播放。
(4)在程序中打开写好的其他的项目。
实现方案
(1)opencv打开电脑摄像头
VideoCapture cap;
cap.open(0);
(2)打开本地图片
QString filename_src = QFileDialog::getOpenFileName();
string src_file_path= filename_src.toStdString();
//cout << src_file_path << endl;
src = imread(src_file_path);
(3)镜像翻转
if(flip1)
{
flip(src, src, 1);
}
else;
if(flip0)
{
flip(src, src, 0);
}
else;
(4)实时目标检测(有点复杂,就不贴全出来了)
detection.Detecting(src);
项目完整发行版: