下载此文档

图像DCT变换编码与压缩.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 2 页
图像DCT变换编码与压缩
一、实验目的:
(1)掌握离散余弦变换DCT的实现方法,了解DCT的幅度分布特性,从而加深对DCT变换的认识。
(2)掌握图像DCT变换编码的实现方法,从而加深对变换编码压缩图像原理的理解。
二、实验内容:
编程实现图像DCT变换编码。
三、实验原理:
变换编码是在变换域进行图像压缩的一种技术。图1显示了一个典型的变换编码系统。
图1 变换编码系统
在变换编码系统中,如果正变换采用DCT变换就称为DCT变换编码系统。
DCT用于把一幅图像映射为一组变换系数,然后对系数进行量化和编码。对于大多数的正常图像来说,多数系数具有较小的数值且可以被粗略地量化(或者完全抛弃),而产生的图像失真较小。
DCT是仅次于K-L变换的次最佳正交变换,且以获得广泛应用,并成为许多图像编码国际标准的核心。离散余弦变换的变换核为余弦函数,计算速度快,有利于图像压缩和其他处理。
对于N×N的数字图像,二维DCT变换的正反变换可表示为:
(1)
其中,
MATLAB图像处理工具箱实现离散余弦变换有两种方法:
(1)使用函数dct2,该函数用一个基于FFT的算法来提高当输入较大的方阵时的计算速度。
(2)使用由dctmtx函数返回的DCT变换矩阵,这种方法较适合于较小的输入方阵(例如8
精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 2 页
×8或16×16)。
①函数:dct2
实现图像的二维离散余弦变换。调用格式为:
B = dct2(A)
B = dct2(A,[M N])
B = dct2(A,M,N)
式中A表示要变换的图像,M和N是可选参数,表示填充后的图像矩阵大小,B表示变换后得到的图像矩阵。
②函数:dctmtx
除了用dct2函数实现二维离散余弦变换,还可用 dctmtx函数来计算变换矩阵,调用格式为:
D = dctmtx(N)
式中D是返回N×N的DCT变换矩阵,如果矩阵A是N×N方阵,则A的DCT变换可用D×A×D’来计算。这在有时比dct2计算快,特别是对于A很大的情况。
③函数:idct2
实现图像的二维离散余弦反变换。调用格式为:
B = idct2(A)
B = idct2(A,[M N])
B = idct2(A,M,N)
式中参数同dct2。
此外,为了实现8×8子块的DCT图像变换还要用到MATLAB中的blkproc函数。将这个函数和函数dctmtx一起用于块处理可以大大简化运算。调用函数blkproc的格式为:
B=blkpro(A,[M,N],FUN,P1,P2,…)
其中,A表示原图像,[M,N]指定了大小为M×N的滑动邻域,FUN是对M×N的矩阵进行计算的函数,Pi是传递给FUN的附加参数。该函数自动实现图像块处理的整个过程。Blkproc把A分成M×N个块,对每个块调用参数为P1,P2,…的函数FUN,并重新将结果组合到输出图像B。
blkproc函数实现n×n矩阵的DCT变换和反变换。编程中可写成:
Y=blkproc(F,[8 8],’P1*x*P2’,H,H’)
精品文档,仅供学习

图像DCT变换编码与压缩 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人qsrkmc24
  • 文件大小34 KB
  • 时间2021-11-25
最近更新