当前位置: 首页 > web >正文

在 Windows 系统下使用 Qt 配置 OpenCV 和 MySql

在 Windows 系统下,我们可以利用 Qt 来配置 OpenCV 和 MySql,以实现强大的图像处理和数据管理功能。以下将详细说明配置方法:

配置 OpenCV

方法一:使用预编译的 OpenCV 库

  1. 下载 OpenCV :根据所使用的编译器下载对应的 OpenCV 版本。若使用 MSVC 编译器,可到 OpenCV 官网下载 msvc 编译的版本,下载地址为https://opencv.org/releases/。若使用 MinGW 编译器,可在GitHub - huihut/OpenCV-MinGW-Build: 👀 MinGW 32bit and 64bit version of OpenCV compiled on Windows. Including OpenCV 3.3.1, 3.4.1, 3.4.1-x64, 3.4.5, 3.4.6, 3.4.7, 3.4.8-x64, 3.4.9, 4.0.0-alpha-x64, 4.0.0-rc-x64, 4.0.1-x64, 4.1.0, 4.1.0-x64, 4.1.1-x64, 4.5.0-with-contrib, 4.5.2-x64下载预编译的 MinGW 版本。

  2. 配置环境变量 :将 OpenCV 的 bin 文件夹路径添加到系统的环境变量 Path 中。例如,对于 MSVC 版本,路径为C:\OpenCV_s\opencv_vc\opencv\build\bin;如果是 MinGW 版本,路径为C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\x64\mingw\bin

  3. 在 Qt 项目中配置 :在项目的.pro 文件中添加以下代码,指定 OpenCV 的头文件和库文件路径:

* 对于 MSVC 版本:

```
INCLUDEPATH += C:\OpenCV_s\opencv_vc\opencv\build\include
LIBS += -LC:\OpenCV_s\opencv_vc\opencv\build\x64\vc15\lib -lopencv_world460
```

* 对于 MinGW 版本:

```
INCLUDEPATH += C:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\x64\mingw\include
LIBS += -LC:\OpenCV_s\OpenCV-MinGW-Build-OpenCV-3.4.8-x64\x64\mingw\lib -lopencv_world348
```

4. 测试 :创建一个简单的 OpenCV 程序来测试配置是否成功。例如:

#include <QCoreApplication>
#include "opencv2/opencv.hpp"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);using namespace cv;Mat image = imread("C:/test/1.jpeg");// 改成自己图片的路径,注意使用的是'/'imshow("Output", image);waitKey(0);return a.exec();
}

运行程序,若能正确显示图片,则说明 OpenCV 配置成功。

方法二:使用 CMake 编译 OpenCV 源码

  1. 安装 CMake :从Download CMake下载并安装适合 Windows 系统的 CMake 版本,在安装过程中可默认选择将 CMake 添加到系统环境变量 Path 中。

  2. 下载 OpenCV 源码和 Contrib 外接模块 :从 OpenCV 官网下载 OpenCV 源码,如 OpenCV 4.6.0 版本,下载地址为https://github.com/opencv/opencv/archive/4.6.0.zip;同时,从 GitHub 上下载 opencv_contrib 仓库,以获取更多的外接模块,下载地址为https://github.com/opencv/opencv_contrib/archive/4.6.0.zip。

  3. 配置编译选项 :打开 CMake GUI,设置源码目录为 OpenCV 源码的根目录,设置构建输出目录,然后点击 “Configure” 按钮。在弹出的对话框中选择 Qt 所使用的编译器,如 MinGW 的 gcc 和 g++。根据需要选中或取消勾选一些编译选项,如 WITH_QT、WITH_OPENGL 等,同时指定 Contrib 模块的路径。配置完成后,点击 “Generate” 按钮生成 Makefile 文件。

  4. 编译和安装 :在构建输出目录下打开命令行,输入mingw32-make命令开始编译,编译完成后输入mingw32-install命令进行安装。

  5. 在 Qt 项目中使用 :与方法一中的在项目.pro 文件中配置 OpenCV 的头文件和库文件路径类似,但此时的路径应指向自己编译安装后的 OpenCV 的相应目录。

配置 MySql

  1. 安装 MySql 数据库 :从 MySql 官网下载适合 Windows 系统的 MySql 安装包,下载地址为https://dev.mysql.com/downloads/mysql/,按照安装向导进行安装。在安装过程中,建议选择完整安装,并记录下安装路径、用户名和密码等信息。

  2. 下载 MySql Connector/C++ :从 MySql 官网下载 MySql Connector/C++,选择与系统架构和编译器匹配的版本,下载地址为https://dev.mysql.com/downloads/connector/cpp/。

  3. 配置环境变量 :将 MySql Connector/C++ 的 bin 文件夹路径添加到系统的环境变量 Path 中。

  4. 配置 Qt :在 Qt 的安装目录下找到qtbase\src\plugins\sqldrivers\mysql文件夹,将其复制到一个临时目录,如D:\qt-mysql-plugin。在该临时目录下找到qsqlmysql.pro文件,修改其中的INCLUDEPATHLIBS变量,分别指向 MySql Connector/C++ 的 include 和 lib 文件夹路径,例如:

    INCLUDEPATH += D:\mysql-connector-c++-8.0.33-winx64\include
    LIBS += D:\mysql-connector-c++-8.0.33-winx64\lib\libmysql.lib

    然后在命令行中进入该临时目录,运行以下命令来编译和安装 MySql 驱动程序:

    qmake qsqlmysql.pro
    mingw32-make
    mingw32-make install

         编译成功后,会生成`qsqlmysql.dll`文件,并将其复制到 Qt 的插件目录`plugins/sqldrivers`下。 

        5. 在 Qt 项目中使用 :在项目中包含必要的头文件,并使用 QSqlDatabase 类来连接和操作 MySql 数据库。例如:

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("localhost");db.setDatabaseName("testdb");db.setUserName("root");db.setPassword("password");if (db.open()) {qDebug() << "Connected to MySQL database successfully!";QSqlQuery query;query.exec("SELECT * FROM testtable");while (query.next()) {int id = query.value(0).toInt();QString name = query.value(1).toString();qDebug() << "ID:" << id << "Name:" << name;}db.close();} else {qDebug() << "Failed to connect to MySQL database:" << db.lastError().text();}return a.exec();
}

在项目.pro 文件中添加以下代码以包含 Qt 的 SQL 模块:

QT += sql

通过以上步骤,我们就可以在 Windows 系统下使用 Qt 成功配置 OpenCV 和 MySql,从而在项目开发中充分利用它们的强大功能。

http://www.xdnf.cn/news/9054.html

相关文章:

  • 游戏引擎学习第310天:利用网格划分完成排序加速优化
  • 小土堆pytorch--优化器
  • Spring AI系列之Spring AI 集成 ChromaDB 向量数据库
  • 【C++进阶篇】初识哈希
  • FFmpeg 4.3 H265 二十二.4,使用计算机摄像头,通过VCL软件, 模拟 监控摄像头 的 RTSP 流
  • @MySQL升级8.0.42(Ubuntu 22.04)-SOP
  • Flink核心概念小结
  • Spring AI 系列之一个很棒的 Spring AI 功能——Advisors
  • WeakAuras Lua Script [ICC BOSS 11 - Sindragosa]
  • 博图软件块的概述-块的结构详解
  • VR 展厅开启一场穿越时空的邂逅​
  • Java常用API
  • React从基础入门到高级实战:React 核心技术 - React 状态管理:Context 与 Redux
  • uniapp-商城-71-shop(4-商品列表,详情页中添加商品到购物车的处理)
  • 机器人工具中心点标定
  • 【Linux】网络--传输层--TCP协议基础
  • 深入浅出对抗学习:概念、攻击、防御与代码实践
  • Ansible常用模块
  • c++算法题
  • 【QT】对话框dialog类封装
  • Unity UGUI 中 InputField 组件处理拖拽超出文本框边界时自动滚动内容的核心协程
  • java虚拟机2
  • 高速通信时代的信号编码利器-PAM4技术解析
  • HTML 文件路径完全指南:相对路径、绝对路径解析与引用技巧
  • git基础语法回顾
  • 重构损失(Reconstruction Loss) L mse​ 和 余弦相似性损失(Cosine Similarity Loss) L cos​
  • AI天气预报进入“大模型时代“:如何用Transformer重构地球大气模拟?
  • 基于cornerstone3D的dicom影像浏览器 第二十三章 mpr预设窗值与vr preset
  • 鸿蒙OSUniApp 开发的图文混排展示组件#三方框架 #Uniapp
  • 3d tiles高级样式设计与条件渲染