Matlab函数——dct2
2013-10-18 22:58
253 查看
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.
二维离散余弦变换
语法
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.
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- C#调用Matlab生成的dll方法的详细说明
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- Matlab
- MATLAB中函数模式和命令模式的区别
- CHM文件(已编译的 HTML 帮助文件)打开不显示的解决办法
- [转]matlab中plot用法
- matlab程序优化以及eclipse与github的结合
- matlab中的rand函数(用于产生随机数)
- MATLAB R2012a 安装到 Ubuntu 12.10
- 关于matlab图像处理
- c中启动和关闭matlab引擎遇到的问题
- C++实现矩阵类,实现了大部分矩阵运算功能,大家可以类比matlab
- 高斯-勒让德求积公式
- DSP Builder
- MATLAB通信仿真及应用实例
- 写道路检测的c程序心得(一)
- [matlab]mathworks上的cody challenge题解及一些常用函数的总结(1)