opencv在QT中的配置和使用教程

本文使用的软件包:

QT、cmake、opencv库

由于主要参考的是以下两个博客,这里就根据他们的内容关键点截图加上一些自己遇到的问题来写,具体细节可参考下面两个链接。

 

1.  https://blog.csdn.net/luolaihua2018/article/details/111409213

2.  https://blog.csdn.net/ltc0106/article/details/100189313

一、软件安装

(1)QT

下载地址:http://download.qt.io/archive/qt/5.13/5.13.0/

QT安装具体细节见博客2,注意以下几步

 

 

 

 

 

 同时注意系统变量的添加,博客二中有详细说明。

 

(2)cmake

下载地址: https://cmake.org/download/

 

 

选最新版本即可 

(3)opencv

下载地址:  https://opencv.org/releases/

 

 

 根据自己的系统选择

 

二、使用cmake编译opencv

(1)根据自己的opencv版本号选择解压

 (2)等待源代码解压完成

 

 

 (3)解压完成后,启动刚刚安装好的Cmake程序,自己填写OpenCV刚刚解压的源码目录,以及自己新建一个文件夹用于存放编译完成的opencv,填写到下一行的编译目标目录,然后点击下方的configure按钮进行第一次配置。

 

 (4)选择MinGw Makefiles,然后选择第二项,完成后点击下一步

 

 (5)指定c编译器和c++编译器的路径,请找到你的QT目录\Tools\mingw730_64\bin下的gcc.exe和g++.exe程序,依次对应填写。

 

 (6)等待第一次configure完成。(configure到最后可能会下载opencv_videoio_ffmpeg相关库文件,如果没有梯子的话可能会比较久)

 

 

 (7)configure完成后,需要配置一些参数。

在第三行的Search中,搜索WITH_QT,打勾。

搜索WITH_OPENGL,打勾。

 

搜索ENABLE_PRECOMPILED_HEADERS,取消打勾。

 

 

 

搜索QT5_DIR,将“你的QT路径\5.13.0\mingw73_64\lib\cmake\Qt5”填进去。 例如我的是:D:\WorkApp\QT\5.13.0\mingw73_64\lib\cmake\Qt5,完成以上操作后点击Configure进行第二次Configure。

 

 (8)第二次Configure完成后,点击Generate生成opencv编译文件到目标目录。

 

 

 (7)(8)步中可能会遇到不同的情况,此时可根据具体情况google or百度,直到Configure done.

(9)Generating done之后,打开win10的Windows PowerShell命令行(按住Shift键,然后在桌面或文件资源管理器窗口空白处点击右键,在弹出的右键菜单中选择“在此处打开PowerShell窗口”即可打开Windows PowerShell)如图:,输入命令cd 进入到你的opencv的目标目录,然后开始编译(这次编译比较耗时间,具体耗时长短由你的CPU性能而定)。QT中的MinGw组件务必选取正确,如果选择了其他的这一步可能会出现无法编译。

编译命令:

mingw32-make.exe -j(线程数量)   

线程数量根据自己电脑cpu性能酌情填写。4核CPU就填4,8核心就填8,以此类推,例如我是8核心的就填“mingw32-make.exe -j8”即可,如果直接mingw32-make.exe命令编译的话会很慢,在用四线程或者更高线程时会快很多,但是可能会出现各种错误,出现错误时可修改线程数继续编译,如果仍不成功需自行google or 百度解决方案,参考博客1和2中给出了一些常见问题的解决方法。这也是整个配置过程中最复杂的一步。

 

 

 (10)漫长的等待后,终于完成了,完成之后输入命令“mingw32-make.exe install”完成最后的编译,完成后,opencv库的编译已经成功。

 

 

mingw32-make.exe install

(11)将opencv编译好的库文件路径加入系统变量path中。

 

 (12)最后再添加一个新的环境变量名字 OPENCV_SDK_DIR 变量值就是你编译好的opencv目录的install文件夹的路径,示例如下图

 

 

 (四)在QT中进行测试

每次在QT中新建文件时要注意文件路径必须是英文,打开.pro文件,加入

INCLUDEPATH += D:\opencv\opencv\opencv-build\install\include\opencv2 \
        D:\opencv\opencv\opencv-build\install\include
LIBS += D:\opencv\opencv\opencv-build\install\x64\mingw\lib\libopencv*.a

根据自己的include和lib文件路径进行选择!*.a表示所有不同后缀的文件

 

 QT中一些常见的头文件:

#include <opencv2/highgui/highgui_c.h>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;

测试程序(打开一张图片):

int main()
{
    cv::Mat img;
    img = cv::imread("C:\\Users\\study\\Pictures\\1.png");//参数1:图片路径。参数2:显示原图

    namedWindow("窗口1",CV_WINDOW_NORMAL);
    /*注释
    参数1:窗口的名字
    参数2:窗口类型,CV_WINDOW_AUTOSIZE 时表明窗口大小等于图片大小。不可以被拖动改变大小。
    CV_WINDOW_NORMAL 时,表明窗口可以被随意拖动改变大小。   */
    
    imshow("窗口1", img);//在“窗口1”这个窗口输出图片。
    waitKey(5000);//等待5秒,程序自动退出。改为0,不自动退出。
    return 0;

}

成功显示即大功告成!

 

posted @ 2021-11-05 23:18  Ojalá  阅读(3768)  评论(0编辑  收藏  举报