写在前面的话:本人按照网上的教程进行opencv编译 总是出现各种各样的错误。
总结一下几点:1:qt是开源的,导致不同的版本,具有不同的编译器,相对应的opencv。由于能力原因,我用CMake3.15.5版本 编译opencv4.0.0. opencv3.4.7等版本,在排除其他的错误,还是无法成功编译。于是选择低版本的opencv 即opencv2410.
我的电脑 win10 64位 +Cmake3.15.5 +qt5.6.3(下载包含编译器的(qt5.0版都包含了编译器g++,gcc))+opencv2410(源码)
转入正题:
一、Qt下载地址,官网 需要注册,而且相当慢,可能会下载失败。国内有镜像文件。这里我分享一下镜像地址:
1.中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
2.清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
3.北京理工大学:http://mirror.bit.edu.cn/qtproject/
4.中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
安装qt的部分 网上很多 ,安装好就行。
这里需要注意 几个环境变量需要添加:
我的电脑-》属性-》高级系统设置-》环境变量-》系统变量-找到path
必须要添加的。
二、CMake的下载;选择自动添加环境变量。如果安装的时候忘了,那么你要自己手动添加环境变量了我的:D:\Program Files\CMake\bin。
希望对大家有所帮助。
三、opencv的下载
opencv的下载,网上很多 我就不细说了。注意版本匹配。高版本的编译器要编译低版本的opencv才能保证成功。经验之谈。
四、把下载的opencv2410 的source文件复制到一个自己创建的文件夹A中,并且再A文件夹中创建build空文件夹,备用 。
注意:中间qt5.6.3-opencv2410-mingw49-32文件夹是我后面才创建的文件夹(整理生成的bin 和lib 以及source中的include(所有的include))这里先忽略。
然后、用管理员的身份打开Cmake。
再 第一行,选择opencv2410源文件的路径;第二行是 输出文件的路径 就是刚才创建的build空文件夹。
然后、
然后、
这个MinGW Makefile 不能错,认真选择。
编译器的路径 安装自己安装的qt的安装路径中选择路径。例如D:\Qt\Qt5.6.3\Tools\mingw492_32\bin 下面的gcc.exe和g++.exe文件
然后点击 finish。
然后就是Cmake配置:
WITH_OPENGL选中,WITH_QT选中,WITH_IPP取消(如果有的话)
然后再Configure一次,等结束
观察红色部分
刚才配置完成之后,还会剩下一些红色的项需要自己修改值
Qt5Concurrent_DIR D:/Qt/Qt5.6.3/5.6.3/mingw49_32/lib/cmake/Qt5Concurrent
Qt5Core_DIR D:/Qt/Qt5.6.3/5.6.3/mingw49_32/lib/cmake/Qt5Core
Qt5Gui_DIR D:/Qt/Qt5.6.3/5.6.3/mingw49_32/lib/cmake/Qt5Gui
Qt5OpenGL_DIR D:/Qt/Qt5.6.3/5.6.3/mingw49_32/lib/cmake/Qt5OpenGL
Qt5Test_DIR D:/Qt/Qt5.6.3/5.6.3/mingw49_32/lib/cmake/Qt5Test
Qt5Widgets_DIR D:/Qt/Qt5.6.3/5.6.3/mingw49_32/lib/cmake/Qt5Widgets
设置好之后再点configure。如果还有红色 继续修改,然后再Configure一次。一直到看不到红色为止。
Cmake生成:
然后点击Generate
等着,如果出现DownLoad opencv_ffmpeg.dll 和DownLoad opencv_ffmpeg_64.dll 失败的信息,显红色。这个就要另说。就是找到报错的地址的原因,有下载的IP地址,手动下载,然后放到该放的位置 就行了。
结束后 完整的看一看信息 ,如果没有这个错误 就OK。
关闭对话框。
开始编译opencv。
再刚才创建的build的文件夹下 有很多文件。就再这个位置,shift+鼠标右键,选择在此处打开Powershell窗口。进入管理员cmd命令行窗口。
执行mingw32-make命令,要执行大概半小时才会完成:
注意:如果版本不合,中途会出现各种原因的错误。
然后然后再执行mingw32-make install
开始配置环境变量:
添加生成的bin路径到path环境变量
将新产生的bin文件路径 添加的环境变量中。
注;有的winows系统需要重启才能生效环境变量
然后创建一个qt工程。下图中的 Application-》Qt Widgets Application->Choose
改一下工程的名字及保证路径 (改不改都行 随意)。其他都是默认 下一步。直到完成
然后
然后打开.pro文件 在最下面添加 配置路径:
INCLUDEPATH += D:\qtopencv2410\qt5.6.3-opencv2410-mingw49-32\include
D:\qtopencv2410\qt5.6.3-opencv2410-mingw49-32\include\opencv
D:\qtopencv2410\qt5.6.3-opencv2410-mingw49-32\include\opencv2
LIBS += D:\qtopencv2410\qt5.6.3-opencv2410-mingw49-32\lib\libopencv_*.a
在main.cpp中 添加打开图片的代码 及头文件
#include “mainwindow.h”
#include
#include<opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
cv:: Mat image;
//
image = cv::imread(“D:\QtProject\opencvdemo\2.jpg”);
if (image.empty())
{
std::cout << "Can’t loading images. " << std::endl;
return -1;
}
std::cout << "This image is " << image.rows << " x " << image.cols << std::endl;
cv::namedWindow("显示");
cv::imshow("显示",image);
cv::waitKey(0);
return a.exec();
}
忙了一天 试了五个版本的编译 终于成果了。我是入门级别。不足之处 ,望批评指正
如果你的qt版本跟我的一样。那我 就可以下载我编译好的直接用。
https://download.csdn.net/download/vertira/11966431