- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 频域处理 数字图像处理 教学课件
7.5.2 二维离散沃尔什变换 很容易将一维WHT的定义推广到二维WHT。二维WHT的正变换核和逆变换核分别为 (7-74) 和 (7-75) 式中:x, u=0, 1, 2, …, M-1; y, v=0, 1, 2, …, N-1。 二维离散沃尔什变换的矩阵形式表达式为 和 求这两个信号的二维WHT。 根据题意,式(7-76)中的M=N=4, 其二维WHT变换核为 所以 再如,图7-12是一幅数字图像及对其进行二维WHT变换的结果。 图7-12 二维WHT结果 (a)原图像;(b)WHT结果 注: 图7-12中的结果是按哈达玛变换后再用沃尔什排序的结果。? 从以上例子可看出,二维WHT具有能量集中的特性,而且原始数据中数字越是均匀分布,经变换后的数据越集中于矩阵的边角上。因此,二维WHT可用于压缩图像信息。 7.5.3 快速沃尔什变换(FWHT) 类似于FFT,WHT也有快速算法FWHT, 也可将输入序列f(x)按奇偶进行分组,分别进行WHT。FWHT的基本关系为 (7-78) WHT的变换核是可分离和对称的, 因此二维WHT也可分为两个一维的WHT分别用FWHT进行变换而得到最终结果,由此便可实现二维的FWHT。 综上所述,WHT是将一个函数变换成取值为+1或-1的基本函数构成的级数,用它来逼近数字脉冲信号时要比FFT有利。同时, WHT只需要进行实数运算,存储量比FFT要少得多, 运算速度也快得多。因此,WHT在图像传输、 通信技术和数据压缩中被广泛使用。 7.6 用MatrixLIBC++库实现图像 变换的VC++编程 7.6.1 MatrixLIB简介及其与VC++工程的集成 1. MatrixLIB简介 MatrixLibC++数学库是MathTools公司利用Matcom技术开发的一个面向专业从事工程技术和科学计算人员的矩阵运算动态链接库。这个C++库提供了绝大多数的关于矩阵类、矩阵操作、 数值计算等函数的定义,它提供了一个双精度Matrix类型——Mm, 它可以定义的矩阵是复数矩阵、实数矩阵、稀疏矩阵甚至n维矩阵。同时还提供了近千个与矩阵运算相关的函数,并对如+、-、 *、 /、 ()等操作符进行了重载。库中所提供的函数涉及线性代数、多项式数学、信号处理、文件输入/输出、绘图等各个方面。充分利用这些库函数, 便可完成数字图像变换的各种操作。 2. 在C++工程中集成MatrixLIBC++数学库 为了将MatrixLIBC++库集成到C++的工程文件中,需要做如下的操作: (1) 将库文件v4501v.lib库文件添加到C++的工程中; (2) 将库声明头文件matlib.h包含到工程中; (3) 初始化库; (4) 创建矩阵变量; (5) 访问矩阵单元; (6) 调用MatrixLIBC++库函数完成矩阵操作。 为了使读者掌握如何在VC++中使用MatrixLIBC++数学库的方法,下面详细介绍从创建工程到最后调用MatrixLIBC++库函数的全过程。 1) 创建一个新的VC++工程[HTSS] 在VC++中,采用默认选项创建一个MDI MFC工程。当然MatrixLIBC++库可以用在任何其他类型的工程中,如Console 、 OWL、ActiveX等。 2) 将库文件添加到工程中 为使C++编译器能够将MatrixLIBC++库链接到最后的执行文件中去,必须将MatrixLIBC++库加入到C++的工程文件中。用菜单命令Project/Add to Project/Files…将C:\matcom45\lib\v4501v.lib(如果v4501v.lib存在不同的文件夹中,请选择正确的路径)加入到C++工程中。 3) 包含matlib.h头文件 在要使用MatrixLIBC++库的.h或.cpp文件的头部, 将matlib.h头文件包含到工程中,即在使用MatrixLIBC++库的.h或.cpp文件头部添加如下代码: #include matlib.h 同时用菜单命令Tools/Options…/Directories设置matlib.h所在的路径,以便编译器能找到相应的头文件。 4)初始化Mat
文档评论(0)