QT安装OpenCv步骤流程及相关问题(基于Windows下的QT Creator编程)

一、软件准备

1、Qt软件
2、CMake
3、OpenCV

1、安装QT:5.12.4版本(我用的版本)
(1)安装在D盘(任意选择一个盘)
(2)将QT环境变量添加到系统环境变量PATH中
注意的是需要将以下两个QT环境变量添加到系统PATH中:
D:\QTCreator_Windows\5.12.4\mingw73_64\bin
D:\QTCreator_Windows\Tools\mingw730_64\bin
2、安装CMake
官网:
https://cmake.org/files/
版本不作要求:
v3.12/(我用的版本)—-cmake-3.12…4-win64-64.zip
(1)安装在D盘(任意选择一个盘,最好是与QT在一个盘里)
(2)将CMake环境变量添加到系统环境变量PATH中
D:\Opencv_Window\cmake-3.12.4-win64-x64\bin

3、安装opencv
官网:

Releases


版本:
OpenCV-3.4.9(我用的版本)—选择Windows–自动开始下载.exe(opencv-3.4.9-vc14_vc15.exe)
(1)将opencv-3.4.9-vc14_vc15.exe放在D盘
(2)双击运行解压opencv-3.4.9-vc14_vc15.exe
会出现两个文件:
build文件:该文件为编译后Windows环境下编译好的可执行文件
sources文件:该文件为未编译过的源代码,要想在QT中运行opencv需要重新编译该文件里的代码(所以这时候就需要用前面下载好的CMake来重新编译opencv源码)
(3)cmake配置opencv
a、打开D:\Opencv_Window\cmake-3.12.4-win64-x64\bin\cmake-gui.exe
b、将opencv中的sources文件添加进来
where is the souce code:D:/Opencv_Window/opencv/sources
where is build the binaries:D:/Opencv_Window/opencv/rebuild_for_qt(注:rebuild_for_qt文件是我们自己建立的文件,用于存放编译后的代码)
c、点击configure开始配置
在弹出的界面中:
》Specify the generator for the project中选择:MinGw makefiles
》再选择:Specify native compilers
》点击next
在弹出的界面中
》C:选择QT路径下的GCC
即:D:/QTCreator_Windows/Tools/mingw730_64/bin/gcc.exe
》C++:选择QT路径下的G++
即:D:/QTCreator_Windows/Tools/mingw730_64/bin/g++.exe
》点击Finish开始配置

在点击Finish配置时出现:
    由于找不到libwinpthread-1.dll,无法继续执行代码,重新安装可能会解决此问题
说明:QT的环境变量未添加到系统环境PATH中(我当时添加的时候是用了中文字符的冒号所以报错

》配置好出现Configuring done
》再次修改配置
ENABLE_CXX11(勾选)
WITH_OPENGL(勾选)
WITH_QT(勾选)
WITH_IPP(不勾选)
其他选择默认即可
》再次点击Configure
》又再一次点击Configure
然后选中Name下的CMAKE_CONFIGURATION_TYPES,将后面Value下的Debug给删除掉,只留下Release即可
》继续点击Configure

这时候会报错提示FFMPEG下载失败,无法连接到服务器,打开CMakeDownloadLog.txt查看详细信息----这会导致编译后的OpenCV无法用VideoCapture打开视频(报错内容:CMake Warning at cmake/OpenCVDownload.cmake:202 (message): FFMPEG: Download failed: 7;"Couldn't connect to server"For details please refer to the download log file: D:/Opencv_Window/opencv/rebuild_for_qt/CMakeDownloadLog.txt
Call Stack (most recent call first): 3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)cmake/OpenCVFindLibsVideo.cmake:227 (download_win_ffmpeg) CMakeLists.txt:683 (include))
查看CMakeDownloadLog.txt需要以下3个文件:
opencv_ffmpeg.dll文件
opencv_ffmpeg_64.dll文件
ffmpeg_version.cmake文件

(1)查看CMake编译后生成的 D:\Opencv_Window\opencv\rebuild_for_qt\CMakeDownloadLog.txt文本,文本内容如下(解决方法就是我在文本内容注释的地方):

#use_cache "D:/Opencv_Window/opencv/sources/.cache"
#do_copy "opencv_ffmpeg.dll" "168635a192fc2d2ae7d7d40150f0b349" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/opencv_ffmpeg.dll" "D:/Opencv_Window/opencv/rebuild_for_qt/3rdparty/ffmpeg"

#missing "D:/Opencv_Window/opencv/rebuild_for_qt/3rdparty/ffmpeg/opencv_ffmpeg.dll"
#check_md5 "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/168635a192fc2d2ae7d7d40150f0b349-opencv_ffmpeg.dll"

#mismatch_md5 "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/168635a192fc2d2ae7d7d40150f0b349-opencv_ffmpeg.dll" "d41d8cd98f00b204e9800998ecf8427e"
#delete "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/168635a192fc2d2ae7d7d40150f0b349-opencv_ffmpeg.dll"
#cmake_download "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/168635a192fc2d2ae7d7d40150f0b349-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/opencv_ffmpeg.dll"
#try 1
timeout on name lookup is not supported
  Trying 0.0.0.0...

TCP_NODELAY set
connect to 0.0.0.0 port 443 failed: Address not available
Failed to connect to raw.githubusercontent.com port 443: Address not available
Closing connection 0
#

#do_copy "opencv_ffmpeg_64.dll" "cbc25f8f2954475b127c7558558c18e6" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/opencv_ffmpeg_64.dll" "D:/Opencv_Window/opencv/rebuild_for_qt/3rdparty/ffmpeg"

#missing "D:/Opencv_Window/opencv/rebuild_for_qt/3rdparty/ffmpeg/opencv_ffmpeg_64.dll"
#check_md5 "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/cbc25f8f2954475b127c7558558c18e6-opencv_ffmpeg_64.dll"
#mismatch_md5 "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/cbc25f8f2954475b127c7558558c18e6-opencv_ffmpeg_64.dll" "d41d8cd98f00b204e9800998ecf8427e"

#delete "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/cbc25f8f2954475b127c7558558c18e6-opencv_ffmpeg_64.dll"
#cmake_download "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/cbc25f8f2954475b127c7558558c18e6-opencv_ffmpeg_64.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/opencv_ffmpeg_64.dll"
#try 1
timeout on name lookup is not supported
  Trying 0.0.0.0...

TCP_NODELAY set
connect to 0.0.0.0 port 443 failed: Address not available
Failed to connect to raw.githubusercontent.com port 443: Address not available
Closing connection 0
#

#do_copy "ffmpeg_version.cmake" "3b90f67f4b429e77d3da36698cef700c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/ffmpeg_version.cmake" "D:/Opencv_Window/opencv/rebuild_for_qt/3rdparty/ffmpeg"

#missing "D:/Opencv_Window/opencv/rebuild_for_qt/3rdparty/ffmpeg/ffmpeg_version.cmake"
#check_md5 "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake"
#mismatch_md5 "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake" "d41d8cd98f00b204e9800998ecf8427e"

#delete "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake"
#cmake_download "D:/Opencv_Window/opencv/sources/.cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/ffmpeg_version.cmake"
#try 1
timeout on name lookup is not supported
  Trying 0.0.0.0...

TCP_NODELAY set
connect to 0.0.0.0 port 443 failed: Address not available
Failed to connect to raw.githubusercontent.com port 443: Address not available
Closing connection 0
#

(2)下载以下3个文件
opencv_ffmpeg.dll文件
下载链接:https://raw.githubusercontent.com
opencv_ffmpeg_64.dll文件
下载链接:https://raw.githubusercontent.com
ffmpeg_version.cmake文件
下载链接:https://raw.githubusercontent.com
(3)下载好上面3个文件之后,将3个文件以MD5命名方式(前面已经讲过)存入到”D:/Opencv_Window/opencv/sources/.cache/ffmpeg/”路径下即可
(4)在CMake中点击Configure即可,成功之后点击generate,解决该问题
4、编译安装opencv
(1)打开windows的CMD终端
使用命令切换到安装的opencv路径下刚刚编译好的的rebuild_for_qt文件夹
即:

>>D:
>>cd Opencv_Window\opencv\rebuild_for_qt
注:window下的盘符切换与Linux有区别,先输入"D:"切换到D盘,然后再使用cd命令具体切换到哪个目录

(2)输入命令编译opencv(编译需要10分钟左右)
即:
mingw32-make //输入之后等待编译完成
(3)编译完成之后,输入命令下载opencv库
即:
mingw32-make install //成功之后重新将编译好的opencv环境添加到系统PATH中
(4)添加新的opencv环境到PATH中
即:

将:
D:\Opencv_Window\opencv\rebuild_for_qt\bin
D:\Opencv_Window\opencv\rebuild_for_qt\install\x64\mingw\bin
添加到系统PATH中

1、使用QTCreator创建QT工程
2、在QT工程文件.pro中添加以下代码:

INCLUDEPATH +=D:\Opencv_Window\opencv\rebuild_for_qt\install\include
              D:\Opencv_Window\opencv\rebuild_for_qt\install\include\opencv
              D:\Opencv_Window\opencv\rebuild_for_qt\install\include\opencv2

LIBS  +=-L D:\Opencv_Window\opencv\rebuild_for_qt\install\x64\mingw\lib\libopencv_*.dll.a

3、运行opencv代码,即成功运行

#include
#include
#include
using namespace cv;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Mat image = imread("the photo road!!!");
    namedWindow("Display window",WINDOW_AUTOSIZE);
    imshow("Display window",image);
    waitKey(0);
    Dialog w;
    w.show();
    return a.exec();
}

Original: https://blog.csdn.net/Mr_zhang1911116/article/details/126891870
Author: Cheems_Pak Choi
Title: QT安装OpenCv步骤流程及相关问题(基于Windows下的QT Creator编程)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/638191/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球