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

在 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,从而在项目开发中充分利用它们的强大功能。

相关文章:

  • 那个网站做宝贝主图好百度信息流广告代理
  • 一站式做网站公司广告推广代运营公司
  • 烟台百度网站建设/外贸网站推广平台
  • 开发网站教程/六年级下册数学优化设计答案
  • 密云做网站/优化的近义词
  • 申远空间设计公司官网/seo推广营销公司
  • 古腾堡编辑器教程:如何使用WordPress图库区块
  • 论文阅读: 2023 NeurIPS Jailbroken: How does llm safety training fail?
  • UE 5 C++设置物体位置和旋转,初始化虚幻引擎样条线、加载引用虚幻编辑器中的蓝图、设置虚幻编辑器中Actor大小
  • 微软技术赋能:解锁开发、交互与数据潜力,共探未来创新路
  • 频繁报FTPResponse 421 received.Server closed connection
  • pytorch问题汇总
  • 青少年编程与数学 02-020 C#程序设计基础 04课题、常量和变量
  • model.classifier:分类头
  • 每天掌握一个Linux命令 - ab(Apache Benchmark)
  • 【芯片设计中的跨时钟域信号处理:攻克亚稳态的终极指南】
  • Node.js全局变量详解:__filename与__dirname
  • 目标检测 TaskAlignedAssigner 原理
  • LINUX526 回顾 配置ssh rsync定时备份(未完成)
  • Python----目标检测(YOLO数据集)
  • Spring IoC(1)
  • 同一个核磁共振(MRI)检查中,不同序列的图像之间空间坐标定位如何实现
  • JESD204B 协议介绍
  • 服务器的IP是什么东西?
  • 基于FPGA的IIC多通道选择器(IIC Switch/Bridge)
  • 三、Docker目录挂载、卷映射、网络