【C++课程设计】基于C++Qt的数字图像处理系统

文章目录

  • C++课程设计:基于C++Qt的数字图像处理系统
    • 摘要
    • 效果展示
      • 1.图像的选取
      • 2.图像的保存
      • 3.图像缩放与拖动
      • 4.图像处理算法
        • 4.1. 图像模糊
        • 4.2. 边缘滤波
        • 4.3. 对比度调整
        • 4.4. 白平衡 / 直方图均衡化
        • 4.5. 图像锐化
        • 4.6. 图像灰度化
    • Github链接自取

C++课程设计:基于C++Qt的数字图像处理系统

摘要

本次 C++课程设计基于 C++ Qt 及 OpenCV 开源计算机视觉库实现了一项功能完备,界面简洁美观的数字图像处理系统。对于用户而言,系统包括的主要功能如下:

  1. 图像存取机制:基于 Qt QFileDialog 类的文件存取机制,允许用户从文件夹中选取待处理图像,或将处理图像另存为,以此同时也可选择是否退出系统

  2. 图像管理机制:基于 C++ STL 容器实现处理步骤的撤销,以及回滚功能。利用 stack 构建 imgManager 类实现处理图像的统一管理。允许用户对处理图像执行“撤销”,“前进”,“一键复原为初始状态”等操作

  3. 图像处理算法:基于 C++ 开源计算机视觉算法库 OpenCV 实现若干经典的数字图像处理算法。算法在动态库中实现,将相似图像增强算法封装成类,统一继承一个处理算法基类。系统的数字图像处理算法包括“图像模糊”,“边缘提取”, “对比度调节”,“白平衡”,“图像美化”,“图像灰度化”等六大类

  4. 界面布局管理:基于 C++ Qt 的 QLabel, QPushButton QMenu 等控件实现用户与 UI 的交互,通过 Qt eventFilter 事件过滤器,paintEvent绘图事件,SIGNAL加槽函数机制等实现 UI 与算法的耦合。主窗口继承 QMainWindow,子窗口统一继承自定义的 childWindow。在主界面中,用户可以对图像进行拖拽,缩放等操作,直观的查看原始图像与处理后图像的对比效果;以此同时,左侧栏能够实时显示原始图像与当前处理图像的直方图。方便用户进行比对;子界面包括图像模糊滤波以及对比度调节,其中的滑动条允许用户实时的调节滤波核大小或图像增强算法的一些参数,微调参数导致相应的图像变化能够实时显示在界面中,方便用户对参数进行直观的调整。

效果展示

1.图像的选取

【C++课程设计】基于C++Qt的数字图像处理系统_第1张图片

2.图像的保存

【C++课程设计】基于C++Qt的数字图像处理系统_第2张图片

3.图像缩放与拖动

【C++课程设计】基于C++Qt的数字图像处理系统_第3张图片

4.图像处理算法

4.1. 图像模糊

【C++课程设计】基于C++Qt的数字图像处理系统_第4张图片

4.2. 边缘滤波

【C++课程设计】基于C++Qt的数字图像处理系统_第5张图片

4.3. 对比度调整

【C++课程设计】基于C++Qt的数字图像处理系统_第6张图片

4.4. 白平衡 / 直方图均衡化

【C++课程设计】基于C++Qt的数字图像处理系统_第7张图片

4.5. 图像锐化

【C++课程设计】基于C++Qt的数字图像处理系统_第8张图片

4.6. 图像灰度化

【C++课程设计】基于C++Qt的数字图像处理系统_第9张图片

由于前进和撤销功能无法通过静态图像进行展示,将以最终答辩演示效果为准。

Github链接自取

项目代码已上传Github:https://github.com/Scienthusiasts/Digital_images_processing_system,需要自取,若对您有帮助,别忘了点个⭐star 若有任何疑问请私信或在评论区留言。

你可能感兴趣的:(C++学习,qt,c++,开发语言,ui)