本文目录
- 二维dct变换公式看不懂
- 对一个矩阵分块作DCT和直接作DCT得到的结果一样吗
- matlab对图像dct变换,为什么不能使用自己指定的图像
- 请教个问题,对8*8矩阵DCT变换后,得到8*8的系数矩阵,其中哪个是高频哪个是低频哪个
- 什么是dct 变换它有什么特点它被广泛应用在什么编码标准中
- 关于离散余弦变换(DCT)
- 离散余弦变换(DCT)
- MATLAB编写基于离散正弦变换(DCT)的图像压缩程序
二维dct变换公式看不懂
对一个矩阵分块作DCT和直接作DCT得到的结果一样吗
不知道一不一样,但JPEG文件的压缩过程中是按8x8分块做的,各块结果之间不做什么处理,直接放到相应的块中.
matlab对图像dct变换,为什么不能使用自己指定的图像
你可能读入的是rgb图片,要转成灰度图像
I1=imread(’2.jpg’);
I=rgb2gray(I1);
请教个问题,对8*8矩阵DCT变换后,得到8*8的系数矩阵,其中哪个是高频哪个是低频哪个
对于这个系数矩阵,左上角是低频,右下角是高频.你可以这么理解:图像变化较快的区域是高频,图像平缓的区域是低频。因此,高频是细节,低频是轮廓。有时候,对于某些图像保留轮廓就可以了,因此可以去除高频细节部分,而保留低频。即将DCT系数矩阵的左上角保留,其余去除,这对压缩传输很有用。
什么是dct 变换它有什么特点它被广泛应用在什么编码标准中
DCT变换,全称是离散余弦变换(Discrete Cosine Transform),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能。DCT变换本身是无损的,但是在图像编码等领域给接下来的量化、哈弗曼编码等创造了良好的条件。同时由于DCT变换是对称的,所以,我们可以在量化编码后利用DCT反变换,在接收端恢复原始图像,DCT变换在当前的图像分析和图像压缩领域有着极广的用途,我们常见的JPEG静态图像编码以及MJPEG、MPEG动态编码等标准中都使用了DCT变换。特点:除实数变换、确定的变换矩阵、准最佳变换性能外,二维DCT还是一种可分离的变换,可以用两次一维变换得到二维变换结果。应用编码标准:常见的JPEG静态图像编码以及MJPEG、MPEG动态编码等标准。
关于离散余弦变换(DCT)
离散余弦变换(DCT)
DCT变换的全称是离散余弦变换(Discrete Cosine Transform),主要运用于数据或图像的压缩。 由于DCT能够将空域的信号转换到频域上,因此具有良好的去相关性的性能。DCT变换本身是无损的且具有对称性。对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零。将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。 离散余弦变换的原理: 其中,f(i)为原始的信号,F(u)是DCT变换后的系数,N为原始信号的点数,c(u)可以认为是一个补偿系数,可以使DCT变换矩阵为正交矩阵。
MATLAB编写基于离散正弦变换(DCT)的图像压缩程序
I=imread(’cameraman.tif’)I=im2double(I) %转换图像矩阵为双精度型。T=dctmtx(8) %产生二维DCT变换矩阵%计算二维DCT,矩阵T及其转置是DCT函数P1*X*P2的参数B=blkproc(I,,’P1*x*P2’,T,T’) %二值掩模,用来压缩DCT系数,只留下DCT系数中左上角的10个mask=B2=blkproc(B,,’P1.*x’,mask) %只保留DCT变换的10个系数I2=blkproc(B2,,’P1*x*P2’,T’,T) %重构图像subplot(1,2,1)imshow(I)title(’原始图像’);subplot(1,2,2)imshow(I2);title(’压缩图像’);我这个程序也是改了后的,不过我运行过了,图片压缩效果都能出来,就是压缩比没有变小,我也不知道为什么,如果有人给决绝了麻烦通知一下,我邮箱sunnyxiaoxu@126.com