Files
chengnan/readme.md
2026-05-31 12:10:10 +08:00

40 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Qt + OpenCV 图像显示与处理
本工程使用 Qt Widgets 设计界面,使用 OpenCV 完成图像处理。程序支持打开图片、保存图片、另存图片,支持缩放、平移、旋转,并提供目标提取和简单图像分类功能。图像显示使用 Qt 的 `QLabel`/`QWidget`,没有使用 `cv::imshow`
## 文件说明
- `CMakeLists.txt`CMake 工程配置。
- `main.cpp`:程序入口。
- `MainWindow.h`:主窗口类和处理参数声明。
- `MainWindow.cpp`界面、图像读写、Qt 线程和 OpenCV 处理实现。
## 功能
- 打开图片:读取 `png/jpg/bmp/tif` 等常见格式。
- 保存图片:保存当前处理结果。
- 另存图片:将处理结果保存为新文件。
- 显示对比:左侧显示处理前图像,右侧显示处理后图像。
- 基本处理:缩放、水平平移、垂直平移、旋转。
- 目标提取使用灰度化、Otsu 阈值、形态学处理和轮廓检测提取前景目标,并用绿色矩形框标记目标。
- 图像分类:根据平均亮度和主色通道给出简单分类,同时显示目标数量。
- 线程处理:图像处理工作对象运行在 `QThread` 中,避免阻塞界面。
## 编译运行
需要先安装 Qt5 或 Qt6、OpenCV、CMake 和 C++17 编译器。
```bash
mkdir build
cd build
cmake ..
cmake --build .
./QtOpenCVImageTool
```
Windows 下可以使用 Qt Creator 打开本目录的 `CMakeLists.txt`,配置好 Qt 和 OpenCV 后直接构建运行。
## 说明
本示例中的分类属于简单规则分类,适合作为课程作业演示:根据图像整体亮度判断“偏亮/偏暗/亮度适中”,根据 BGR 平均值判断主色。若需要更高精度分类,可替换为训练好的 OpenCV DNN 或传统机器学习模型。