社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
public static double[][] DCTconvertion(double[][] f) {
int sizeX = f.length;
int sizeY = f[0].length;
double[][] F = new double[sizeX][sizeY];
int u, v, x, y;
for(int xx = 0; xx < sizeX; xx += 8){
for(int yy = 0; yy < sizeY; yy += 8){
for(int u1 = xx; u1 < xx + 8; u1++){
u = u1 - xx;
for(int v1 = yy; v1 < yy + 8; v1++){
v = v1 - yy;
double subSum = 0.0;
for(int x1 = xx; x1 < xx + 8; x1++){
x = x1 - xx;
for(int y1 = yy; y1 < yy + 8; y1++){
y = y1 - yy;
subSum += Math.cos(((2.0*x + 1.0)*u*Math.PI)/(16.0)) * Math.cos(((2.0*y + 1.0)*v*Math.PI)/(16.0)) * f[x1][y1];;
}
}
F[u1][v1] = Math.max(Math.min(((Cfunc(u) * Cfunc(v)) / 4.0) * subSum, 1024.0), -1024.0);
}
}
}
}
return F;
}
public static void printArray(int[][] F){
int X = F.length;
int Y = F[0].length;
for(int y = 0; y < Y; y++){
for(int x = 0; x < X; x++){
System.out.print(F[x][y] + " ");
System.out.print("t");
}
System.out.println("");
}
System.out.println("");
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!