DCT变换、DCT反变换
matlab实现详细过程不使用函数实现
二维DCT变换其实是在一维DCT变换的基础上在做了一次DCT变换,其公式如下
由公式我们可以看出,上面只讨论了二维图像数据为方阵的情况,在实际应用中,如果不是方阵的数据一般都是补齐之后再做变换的,重构之后可以去掉补齐的部分,得到原始的图像信息,这个尝试一下,应该比较容易理解。
另外,由于DCT变换高度的对称性,在使用Matlab进行相关的运算时,我们可以使用更简单的矩阵处理方式
public double [][] apllyDCT(int blocksize, int block[][]) {
double c = 0.0;
double[][] A1 = new double[blocksize][blocksize];//A1代表变换矩阵
double sizedouble=blocksize;
for (int i=-1;i&