灰度图像分割/压缩的STC和RNAM算法实现
C++课程大作业
灰度图像压缩STC和RNAM算法
传统的图像表示方法主要是二维数组(矩阵)表示方法。但由于图像处理在各方面的广泛应用和其它学科的飞速发展,对图像处理的研究提出了处理速度和存贮空间的更高要求。这样,二维数组的空间效率及其“样点—样点”的运算方式已不能适应发展的需要,取而代之的应该是既紧凑又便于做各种图像处理运算的表示方法。本项目提供灰度图像压缩的STC和RNAM算法,RNAM算法采用的是对角线优先的策略。RNAM算法和STC算法编码时间复杂度为 O(nlogn),解码时间复杂度为 O(n)。
内容列表
安装
使用说明
-
打开图片:菜单栏—打开图片或在点击界面上半部分的打开图像按钮。
-
编辑参数:在程序界面上半部分输入算法需要的参数。
-
点击主界面上的Start按钮,算法即开始执行。
-
算法执行完毕后在主界面的下半部分查看结果。
-
保存图片:菜单栏—保存图片或点击界面下半部分的保存按钮。
项目结构
-
图形化界面采用Qt开发,算法实现采用C++和OpenCV 4,测试采用Google Test。
-
项目文件采用Visual Studio 2022
-
类结构:
-
Class TreeNode:树的节点,存储树的数据结构。
-
Class Tree:内部包含树的数据结构类TreeNode,存储树的数据结构。Tree类主要提供树的方法,例如addChild、levelOrder等。
-
Class TreeIterator: 树的迭代器。
-
Class Algo:实现算法流程。
-
Class Calculate:计算算法执行结果。
-
Class DPInterface:RNAM的算法接口,图形化界面通过调用此类下面的静态函数来调用RNAM算法。
-
Class STCInterface:STC算法接口,使用方法同上。
-
Class Segment:存储分割有关数据,提供区域分割方法。
- Class Variables:存储STC算法执行时需要的输入信息,提供一部分内联函数。
- Class AlgoThread:创建新线程,执行算法。
- Class Window:图形化界面。
-
-
程序流程:
维护者
贡献者
感谢以下参与项目的人:
如何贡献
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
本项目遵循 Contributor Covenant 行为规范。
使用许可
MIT License © SCUT-CS/team-11
References
2010
- 一种新的灰度图像表示算法研究计算机学报, 2010