QT6 mingw编译opencv源码

视频讲解网址如下:

https://www.bilibili.com/video/BV1unwCeKEec/?spm_id_from=333.1369.top_right_bar_window_history.content.click&vd_source=74893c0f5cfd405d466d475b0c82d1fd

第一步添加QT和cmake软件文件到环境变量

C:\Software\QT\6.5.3\mingw_64\bin
C:\Software\QT\6.5.3\mingw_64\lib\cmake\Qt6
C:\Software\QT\Tools\mingw1120_64\bin


C:\Software\cmake\cmake-3.30.0-rc4-windows-x86_64\bin

下载opencv源码以及opencv_contrib源码,我都下载的4.6.0版本

下载OpenCV,网址:https://opencv.org/releases/

下载opencv_contrib库:https://github.com/opencv

下载opencv库和contrib库并解压,注意解压后文件夹有二次嵌套一定将内部的文件夹作为我们的源文件,创建一个文件夹命名为opencv 将opencv-4.6.0和opencv_contrib-4.6.0复制进来分别重命名为opencv_source和opencv_contrib 并在该文件夹下面创建空文件夹rebuildforQT

将opencv_source作为源文件夹,将rebuildforQT作为目标文件夹 勾选grouped和advanced

找到QT安装目录下的C和C++编译器作为编译器

C编译器:C:/Software/QT/Tools/mingw1120_64/bin/gcc.exe
C++编译器
C:/Software/QT/Tools/mingw1120_64/bin/g++.exe

中途出现无法下载的库可以根据CMAKEdownloadlog的提示自己创建文件夹自己下载

如图显示这个opencv_videoio_ffmpeg_64.dll无法在该网页下载到3rdparty/ffmpeg文件夹下,因此我们可以复制该网页并手动在3rdparty下创建ffmpeg文件夹并手动下载。

第一轮configure后会有许多报错

我们需要进一步操作

不勾选
Enable_precompiled_headers
With QT
With IPP

勾选
With OpenMP
With OpenGL
Build opencv_world

Opencv_extra_module_path里面需要添加

Opencv_contrib下的module

C:\mydata\videovologger\opencv\opencv_contrib\modules


反复点击configure直至没有报错

之后安装编译后的库,在rebuildforQT文件夹下打开cmd窗口运行如下命令

找到rebuildforQT文件夹打开cmd窗口

mingw32-make -j 8

mingw32-make install

之后将产生的install文件添加到环境变量

C:\mydata\videovologger\opencv\rebuildforQT\install\x64\mingw\bin

创建一个QT项目验证编译是否成功,并在.pro文件添加如下代码

INCLUDEPATH +=C:/mydata/videovologger/opencv/rebuildforQT/install/include \
 C:/mydata/videovologger/opencv/rebuildforQT/install/include/opencv2

LIBS += C:/mydata/videovologger/opencv/rebuildforQT/install/x64/mingw/lib/libopencv_*.a

最后复制如下代码并运行,运行成功则编译成功

#include "widget.h"
#include "ui_widget.h"
#include<QApplication>
#include "core.hpp"
#include "face.hpp"
#include "opencv.hpp"
#include <vector>
using namespace cv;
using namespace std;
using namespace cv::face;
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    Mat img = imread("C:/code/work/QT/styletranspicvid/testimg/1.jpg",1);
    namedWindow("image");
    imshow("image",img);
    waitKey(0);
}

### 使用 QtMinGW 编译 OpenCV 为了成功使用 QtMinGW 编译 OpenCV,需遵循一系列特定的操作流程来确保编译过程顺利进行。 #### 准备工作 首先,下载并安装所需的工具链。这包括最新版本的 MinGW、CMake 及 Qt 开发环境。对于 OpenCV 源码,则可以从官方 GitHub 仓库获取指定版本[^4]。 #### 配置 CMake 启动 CMake GUI 或命令行界面,设置源代码目录为目标 OpenCV 解压后的根目录,并选择一个合适的构建输出位置用于存放生成文件。接着定义必要的参数选项,比如 `WITH_QT` 设置为 ON 来启用对 Qt 库的支持;同时指明所使用的编译器应为 MinGW 工具链的一部分[^1]。 ```cmake set(CMAKE_BUILD_TYPE Release) set(WITH_QT ON CACHE BOOL "") ``` #### 执行编译 完成上述配置之后,在终端窗口执行 `mingw32-make` 命令开始实际的编译操作。此过程中可能会消耗较长时间视计算机性能而定。如果一切正常的话,最终会在先前选定的目标文件夹内找到已编译成功的静态或动态链接库以及对应的头文件集合。 #### 安装与集成至 Qt Creator 将新生成的 OpenCV 文件复制到易于访问的位置以便后续引用。更新系统的 PATH 环境变量以包含这些二进制文件所在的子目录路径,从而允许应用程序加载它们时无需显式提供完整路径名。最后一步是在 Qt Creator 中创建新的工程并向其中加入外部依赖项——即刚刚建立起来的本地版 OpenCV 资源包。通过菜单栏中的 “Add Library...” 功能实现这一点,按照提示逐步输入相应的 .lib/.dll 地址即可[^2]。 #### 测试验证 现在可以尝试编写简单的测试案例来确认整个开发平台能否正确调用 OpenCV API 接口函数了。下面给出一段 Python 伪代码作为例子: ```cpp #include <QCoreApplication> #include <opencv2/opencv.hpp> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); cv::Mat image; image = cv::imread("example.jpg", cv::IMREAD_COLOR); // Read the file if(image.empty()) // Check for invalid input { std::cout << "Could not open or find the image" << std::endl ; return -1; } cv::imshow("Display window", image); // Show our image inside it. cv::waitKey(0); // Wait indefinitely until keypress... } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lilbye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值