luochen570 4e1f73bab7 deleted: QtOpenCVImageTool.zip
deleted:    build_windows.bat
	deleted:    build_wsl_windows.sh
	deleted:    cmake/toolchains/mingw64.cmake
2026-05-31 12:41:15 +08:00
2026-05-31 12:27:14 +08:00
2026-05-31 12:14:45 +08:00
2026-05-31 12:10:10 +08:00
2026-05-31 12:10:10 +08:00
2026-05-31 12:10:10 +08:00
2026-05-31 12:27:14 +08:00

Qt + OpenCV 图像显示与处理

本工程使用 Qt Widgets 设计界面,使用 OpenCV 完成图像处理。程序支持打开图片、保存图片、另存图片,支持缩放、平移、旋转,并提供目标提取和简单图像分类功能。图像显示使用 Qt 的 QLabel/QWidget,没有使用 cv::imshow

文件说明

  • CMakeLists.txtCMake 工程配置。
  • main.cpp:程序入口。
  • MainWindow.h:主窗口类和处理参数声明。
  • MainWindow.cpp界面、图像读写、Qt 线程和 OpenCV 处理实现。

功能

  • 打开图片:读取 png/jpg/bmp/tif 等常见格式。
  • 保存图片:保存当前处理结果。
  • 另存图片:将处理结果保存为新文件。
  • 显示对比:左侧显示处理前图像,右侧显示处理后图像。
  • 基本处理:缩放、水平平移、垂直平移、旋转。
  • 目标提取使用灰度化、Otsu 阈值、形态学处理和轮廓检测提取前景目标,并用绿色矩形框标记目标。
  • 图像分类:根据平均亮度和主色通道给出简单分类,同时显示目标数量。
  • 线程处理:图像处理工作对象运行在 QThread 中,避免阻塞界面。

Windows 编译运行

本工程用于构建 Windows 桌面应用程序。建议使用 Qt Creator 打开 CMakeLists.txt 构建,编译器可选择 MSVC 或 MinGW但 Qt、OpenCV 和编译器位数必须一致,例如全部使用 64 位。

环境准备

  1. 安装 Qt for Windows推荐 Qt 6.x并安装对应的 MinGW 64-bit 或 MSVC 64-bit 组件。
  2. 安装 OpenCV for Windows或自行用相同编译器编译 OpenCV。
  3. 安装 CMake。Qt Creator 通常会自带可用的 CMake。

Qt Creator 构建

  1. 打开 Qt Creator。
  2. 选择“打开项目”,打开本目录下的 CMakeLists.txt
  3. 选择 Windows Kit例如 Desktop Qt 6.x MinGW 64-bitDesktop Qt 6.x MSVC 64-bit
  4. 如果 CMake 找不到 OpenCV在 CMake 配置中加入:
OpenCV_DIR=C:/opencv/build/x64/vc16/lib

实际路径以你的 OpenCV 安装目录为准。MinGW 自编译 OpenCV 时,应填写包含 OpenCVConfig.cmake 的目录。

  1. 点击“构建”并运行。

命令行构建示例

也可以直接使用项目提供的 build_windows.bat

build_windows.bat C:\Qt\6.6.0\mingw_64 C:\opencv\build "MinGW Makefiles"

或 MSVC

build_windows.bat C:\Qt\6.6.0\msvc2019_64 C:\opencv\build\x64\vc16\lib "Visual Studio 17 2022"

MinGW 示例:

mkdir build
cd build
cmake .. -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH=C:\Qt\6.6.0\mingw_64 -DOpenCV_DIR=C:\opencv\build
cmake --build . --config Release

MSVC 示例:

mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_PREFIX_PATH=C:\Qt\6.6.0\msvc2019_64 -DOpenCV_DIR=C:\opencv\build\x64\vc16\lib
cmake --build . --config Release

运行和发布

在 Windows 上运行生成的 QtOpenCVImageTool.exe 时,需要能找到 Qt 和 OpenCV 的 DLL。调试阶段可在 Qt Creator 中直接运行;发布时可使用:

windeployqt QtOpenCVImageTool.exe

然后把 OpenCV 的运行库 DLL 一并复制到 exe 所在目录,例如 opencv_world*.dll 或相关 opencv_*.dll

WSL 中交叉编译 Windows 程序

WSL 里不能使用 Linux 版 Qt/OpenCV 直接生成 Windows exe必须准备 Windows 目标库。推荐使用 MinGW-w64 作为交叉编译器,并准备同为 MinGW-w64 目标的 Qt 和 OpenCV。

需要的组件:

  • x86_64-w64-mingw32-g++
  • Windows/MinGW 目标 Qt目录中应包含 Qt6Config.cmakeQt5Config.cmake
  • Windows/MinGW 目标 OpenCV目录中应包含 OpenCVConfig.cmake

构建脚本:

export QT_MINGW_PREFIX=/opt/mxe/usr/x86_64-w64-mingw32.shared/qt6
export OpenCV_DIR=/opt/mxe/usr/x86_64-w64-mingw32.shared/lib/cmake/opencv4
./build_wsl_windows.sh

如果使用的是自己编译或复制来的 Windows 目标 Qt/OpenCV把上面两个路径换成实际路径即可。

说明

本示例中的分类属于简单规则分类,适合作为课程作业演示:根据图像整体亮度判断“偏亮/偏暗/亮度适中”,根据 BGR 平均值判断主色。若需要更高精度分类,可替换为训练好的 OpenCV DNN 或传统机器学习模型。

Description
No description provided
Readme 337 KiB
Languages
C++ 83.2%
Batchfile 6.7%
CMake 5.6%
Shell 4.5%