本次 C++课程设计基于 C++ Qt 及 OpenCV 开源计算机视觉库实现了一项功能完备,界面简洁美观的数字图像处理系统。对于用户而言,系统包括的主要功能如下:
图像存取机制:基于 Qt QFileDialog
类的文件存取机制,允许用户从文件夹中选取待处理图像,或将处理图像另存为,以此同时也可选择是否退出系统;
图像管理机制:基于 C++ STL
容器实现处理步骤的撤销,以及回滚功能。利用 stack 构建 imgManager 类实现处理图像的统一管理。允许用户对处理图像执行“撤销”,“前进”,“一键复原为初始状态”等操作;
图像处理算法:基于 C++ 开源计算机视觉算法库 OpenCV
实现若干经典的数字图像处理算法。算法在动态库中实现,将相似图像增强算法封装成类,统一继承一个处理算法基类。系统的数字图像处理算法包括“图像模糊”,“边缘提取”, “对比度调节”,“白平衡”,“图像美化”,“图像灰度化”等六大类;
界面布局管理:基于 C++ Qt 的 QLabel
, QPushButton
QMenu
等控件实现用户与 UI 的交互,通过 Qt eventFilter
事件过滤器,paintEvent
绘图事件,SIGNAL
加槽函数机制等实现 UI 与算法的耦合。主窗口继承 QMainWindow
,子窗口统一继承自定义的 childWindow。在主界面中,用户可以对图像进行拖拽,缩放等操作,直观的查看原始图像与处理后图像的对比效果;以此同时,左侧栏能够实时显示原始图像与当前处理图像的直方图。方便用户进行比对;子界面包括图像模糊滤波以及对比度调节,其中的滑动条允许用户实时的调节滤波核大小或图像增强算法的一些参数,微调参数导致相应的图像变化能够实时显示在界面中,方便用户对参数进行直观的调整。
由于前进和撤销功能无法通过静态图像进行展示,将以最终答辩演示效果为准。
项目代码已上传Github:https://github.com/Scienthusiasts/Digital_images_processing_system,需要自取,若对您有帮助,别忘了点个⭐star 若有任何疑问请私信或在评论区留言。