采用QT下MingW编译opencv4.8.1

前言

Windows上安装QT,如果采用的mingW进行程序编译的,那么调用Windows下安装版本的opencv就无法调用。因为Windows下直接安装的opencv使用Visual

Studio进行编译的。所以,这时候要继续调用的话,就需要对opencv源码采用mingW进行编译生成。

一、opencv4.8.1源码的下载

可以到csdn上下载

二、cmake-gui生成mingw工程 {#二cmake-gui生成mingw工程 .unnumbered}

建立的build_mingw文件夹,并打开:

选定Generate:

整体的设定如下:

但是出现了如下的错误:

发生错误的原因是:

注意:

那么,我们先找到这个exe的路径。

通过扫描找到了这个路径:

然后,将这个路径放入到系统Path当中。

然后通过cmd窗口,查看一些关键的命令是否可以使用,如下图:

应该可以使用了,然后继续进行CMake.

关闭cmake-gui,重新打开,重新点击"Configure",出现如下的界面:

说明Configure已经完成了。

然后继续点击"Generate":

可能或许要点击2次

然后,可以看到Generate也完毕了,如下图:

三、mingw32-make编译生成 {#三mingw32-make编译生成 .unnumbered}

然后,采用命令行的方式进行编译,如下图:

(输入命令:mingw32-make -j8)

生成中断,出现了错误,如下图:

询问了大模型,说是video模块中涉及奥比中光的模块无法编译通过。

需要重新configure,将如下的几个勾去掉:

打勾去掉后,重新configure和Generate

这样重新进行生成之后,如下图:

感觉虽然生成了100%但是还是有错误。

把python相关的3个勾也去掉,如下图:

再重新Configure和Generate。

然后再重新:

Mingw32-make clean

Mingw32-make -j8

这样操作以后就可以完全的成功生成了,如下图:

四、install

然后就是运行:mingw32-make install

如下图:

这样就install完毕了。

安装完毕后的目录结构是这样的:

五、测试用例

CMakeLists.txt的内容:

cmake_minimum_required(VERSION 3.19)

project(console_opencv412_cmake_test LANGUAGES CXX)

设置您用 MinGW 编译的 OpenCV 的安装路径

set(OpenCV_DIR "D:/opencv-4.8.1/build_mingw/install")

或者如果 install 目录下有 lib 或 share/OpenCV

目录,可以更具体地指向它们

set(OpenCV_DIR "D:/opencv-4.8.1/build_mingw/install/lib")

或者 set(OpenCV_DIR

"D:/opencv-4.8.1/build_mingw/install/share/OpenCV")

find_package(OpenCV REQUIRED)

find_package(Qt6 6.5 REQUIRED COMPONENTS Core)

qt_standard_project_setup()

qt_add_executable(console_opencv412_cmake_test

main.cpp

)

添加 OpenCV 头文件路径

target_include_directories(console_opencv412_cmake_test

PRIVATE

${OpenCV_INCLUDE_DIRS}

)

链接 OpenCV 库 - 使用 find_package 提供的变量

target_link_libraries(console_opencv412_cmake_test

PRIVATE

Qt::Core

${OpenCV_LIBS} # 使用 OpenCV 包提供的库列表

)

对于 MinGW 编译的 OpenCV,通常不需要区分 Debug/Release 版本

因为 MinGW 通常不会在库名后添加 'd' 后缀

添加 OpenCV 的 DLL 路径到 PATH,方便调试和运行

include(GNUInstallDirs)

install(TARGETS console_opencv412_cmake_test

BUNDLE DESTINATION .

RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}

LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}

)

cpp 复制代码
//Main.cpp:

#include \<QDebug\>

#include \<opencv2/opencv.hpp\>

int main(int argc, char \*argv\[\])

{

//QCoreApplication app(argc, argv);

qDebug() \<\< "OpenCV version:" \<\< CV_VERSION;

// 加载图片

cv::Mat image =
cv::imread("D:/zc_2025/qt_src/console_opencv412_cmake_test/watermelon.png");
// 替换为您的图片路径

// 检查图片是否成功加载

if(image.empty()) {

qDebug() \<\< "无法加载图片,请检查路径是否正确";

return -1;

}

qDebug() \<\< "图片信息:";

qDebug() \<\< "尺寸:" \<\< image.cols \<\< "x" \<\< image.rows;

qDebug() \<\< "通道数:" \<\< image.channels();

qDebug() \<\< "类型:" \<\< image.type();

// 您还可以使用OpenCV显示图像窗口

cv::imshow("Loaded Image", image);

cv::waitKey(0); // 等待按键

// 这里可以添加更多的OpenCV功能

return 0;

}
相关推荐
Chester_19995 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲6 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员7 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导7 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan7 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
小灰灰搞电子7 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
QT界面美化性能优化7 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
m0_695251497 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
大衛說8 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
可乐鸡翅yeah_10 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线