配置环境:windows10
QT:5.12.0
准备的材料:
cmake-3.13.1-win64-x64.msi --》Cmake工具
opencv_contrib-3.4.4.zip —》别人做好的模块包,有什么人脸模块啊,啥的。如果不需要额外模块也可以不用下载
opencv-3.4.4-vc14_vc15.exe —》生成opencv源码
qt-opensource-windows-x86-5.12.0.exe --》qt creator 安装包
qt creator 下载链接:http://download.qt.io/archive/qt/5.12/5.12.0/?C=M;O=A
其他工具链接:https://pan.baidu.com/s/1fDUFLADDoWT9PubgLKl-GQ
提取码:tp21
(qt creator 安装步骤,先略过,这里默认已经安装了QT)
下面,上图,看步骤!!!
cmake的安装一定要选择 添加到环境变量(可以选择全部用户,也可以选择当前用户)
(我的老爷机安装完cmake后并没有检测到cmake工具,如果也有这种情况的小伙伴,安装完后要重启一下电脑,不然QT就检测不到Cmake工具当前环境。手动添加的话,后面编译成功概率不高)
在工具的选项下,看到这个自动生成的Cmake工具路径,恭喜你,成功了50%
这里先说一下我的编译的环境:版本是4.8.0的。QT 5.12.0
直接打开opencv-3.4.4-vc14_vc15.exe ,
安装路径,自由选择 (比如:解压到c盘、D盘…)
我这里是源码路径 D:\opencv\sources
如果安装好后,会生成一个opencv包,打开里面会有一个 source的包
打开QT软件,点击编辑,然后将 source包里面的CMakeLists.txt 拖过去QT的项目框上。
如果有CMakeLists.txt.user这个文件,我建议把 “CMakeLists.txt.user” 先将这个文件删掉 ,再拖动编译
1.拖动完CMakeLists.txt ,会自动跳转配置工程:
然后按照下图步骤( 进入【项目】,编译构造配置选择Release。)
然后等几分钟,这段时间 Qt 正在读取 CMakeLists.txt 文件,当在概要信息看到 Configuring done 和 Generating done 就读取完了。
如果构建时一直卡在FFMPEG: Download: opencv_ffmpeg.dll
,解决方法:重新开机,可能是cmake环境没更新好
1、进入【项目】,找到 WITH_MSMF关键字,把ON上的√去掉
2、设置安装路径
进入【项目】,找到 CMAKE_INSTALL_PREFIX,设置一个路径,这个路径是编译完成后输出的路径。(我这里是 C:\opencv\out )
out是我新建的一个文件夹
3、如果有需要添加额外模块的,可以修改变量:
OPENCV_EXTRA_MODULES_PATH
例如:
模块的话自己有需要就添加,模块就在 opencv_contrib-3.4.4 这个文件里面,modules这个文件夹下有很多模块的
4、选择安装
在构建步骤里的“详情”下,勾选 install
4、其他变量保持默认,点击应用配置,然后等待新的配置生成
**
**
点击编辑,然后按一下运行的按钮就开始编译,最后漫长的等待…等待进度条加载完毕…
opencv源码编译完成后,会生成opencv库,生成的位置就是上面,我们设置 CMAKE_INSTALL_PREFIX 变量的值 (我这里是 C:\opencv\out )
如果之前 CMAKE_INSTALL_PREFIX 的路径下并没有生产库,可以在项目的构建下查看CMAKE_INSTALL_PREFIX 有没有保存。只要根据CMAKE_INSTALL_PREFIX 的值查找编译输出的文件就可以了
在D盘创建opencv\opencv64,把编译好的输出文件复制到这
1、创建一个Qt工程 mopencv,
在工程文件中添加头文件路径和添加编译用到的库的路径
//opencv用到的头文件路径
INCLUDEPATH +=D:\opencv\opencv64\include
INCLUDEPATH +=D:\opencv\opencv64\include\opencv
INCLUDEPATH +=D:\opencv\opencv64\include\opencv2
//opencv库的路径
LIBS += D:\opencv\opencv64\x64\mingw\lib\libopencv*
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//通过opencv采集图像显示
cv::Mat vImage; //==>QImage
cv::VideoCapture video(0);
while(1)
{
video >> vImage;
if(vImage.data == NULL)
{
}
//灰度图
cv::Mat outImage;
cvtColor(vImage, outImage, CV_RGB2GRAY);
imshow("video",outImage);
imshow("image", vImage);
cv::waitKey(1);
}
}
如果不需要每个函数添加 cv::
则
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include
#include
#include
#include
#include
using namespace cv;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//通过opencv采集图像显示
Mat vImage; //==>QImage
VideoCapture video(0);
while(1)
{
video >> vImage;
if(vImage.data == NULL)
{
}
//灰度图
Mat outImage;
cvtColor(vImage, outImage, CV_RGB2GRAY);
imshow("video",outImage);
imshow("image", vImage);
cv::waitKey(1);
}
}
MainWindow::~MainWindow()
{
delete ui;
}
1、如果运行时出现这个,说明没有添加系统环境变量
2、新增运行运库
D:\opencv\opencv64\x64\mingw\bin 路径添加到系统环境变量,记得加分号,然后保存。从新运行