Matlab函数——dct2
来源:互联网 发布:电子驱鼠器软件 编辑:程序博客网 时间:2024/06/05 07:42
dct2
二维离散余弦变换
语法
B=dct2(A)
B=dct2(A,m,n)
B=dct2(A,[m,n])
描述
B=dct2(A)返回A的二维离散余弦变换。矩阵B和A的大小一样,并包含离散余弦变换系数
B=dct2(A,m,n)是在变换以前用0对矩阵A进行填充,填充到m*n的大小。如果m或者n比A相应的小,dct2会将A缩短。
B=dct2(A,[m,n])同上面一样。
支持多类
A既可以是数字型的,也可以是逻辑型的,返回的矩阵B是双精度的。
算法
离散余弦变换(DCT)同离散傅里叶变换有很近的关系。它是一种分开的线性变换;就是说,这个二维变换等价于一个,单独作用于一个维度的一维DCT,并紧接着作用于另外一个维度的一维DCT。对于输入图像A和输出图像B,二维DCT的定义为,
其中M和N分别是A的行和列。如果你把DCT作用于实数数据,结果也是实数的。DCT倾向于集中信息,从而对图像压缩有用。
例子
下面的命令计算了一张秋天的图像的离散余弦变换。注意到大部分的能量集中在了左上角。
RGB=imread('autumu.tif');
I=rgb2gray(RGB);
J=dct2(I);
imshow(log(abs(J)),[]),colormap(jet(64)),colorbar
现在将DCT矩阵中值大小小于10的设为0,然后用逆DCT函数idct2对图像进行重建。
J(abs(J)<10)=0;
K=idct2(J);
imshow(I)
figure,imshow(K,[0,255])
也可以参看
fft2,idtc2,ifft2
参考文献
[1] Jain, Anil K., Fundamentals of Digital Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1989, pp. 150-153.
[2] Pennebaker, William B., and Joan L. Mitchell, JPEG: Still Image Data Compression Standard, Van Nostrand Reinhold, 1993.
- Matlab函数——dct2
- matlab—eval函数
- matlab—cat函数
- Matlab——plot函数
- Matlab函数——fftshift
- Matlab函数——wgn
- Matlab函数——awgn
- Matlab函数——randn
- Matlab函数——crandn
- MATLAB——reshape 函数
- MATLAB——mean 函数
- MATLAB——imhist函数
- MATLAB——histeq函数
- MATLAB——cat函数
- Matlab——subplot函数
- Matlab函数——awgn
- matlab——zeros函数
- matlab——ddencmp()函数
- 2013年9月、10月找工作总结篇
- java中的lock和synchronized区别是什么
- 各种排序
- C笔试记录
- leetcode Scramble String
- Matlab函数——dct2
- 双向链表的C实现
- js正则表达式
- Java Web系统常用的第三方接口
- Ubuntu Tweak 0.8.6 发布,支持Ubuntu 13.10并有大量改进
- poj 3521 Geometric Map
- 快速排序和查找第K的数
- JSP静态化技术总结(开源)
- C语言哈希表基本操作