0
java에서 간단한 DCT 알고리즘을 작성하려고합니다. 내 findDCT 방법은 매개 변수로이 같은 정수 배열 갖고 싶어 : 이제Java 매개 변수 전달 int [] []
public class DCT {
private Random generator = new Random();
private static final int N = 8;
private int[][] f = new int[N][N];
private double[] c = new double[N];
public DCT() {
this.initializeCoefficients();
}
private void initializeCoefficients() {
int value;
// temporary - generation of random numbers between 0 and 255
for (int x=0;x<8;x++) {
for (int y=0;y<8;y++) {
value = generator.nextInt(255);
f[x][y] = value;
System.out.println("Storing: "+value+" in: f["+x+"]["+y+"]");
}
}
for (int i=1;i<N;i++) {
c[i]=1/Math.sqrt(2.0);
System.out.println("Storing: "+c[i]+" in: c["+i+"]");
}
c[0]=1;
}
public double[][] applyDCT() {
double[][] F = new double[N][N];
for (int u=0;u<N;u++) {
for (int v=0;v<N;v++) {
double somme = 0.0;
for (int i=0;i<N;i++) {
for (int j=0;j<N;j++) {
somme+=Math.cos(((2*i+1)/(2.0*N))*u*Math.PI)*Math.cos(((2*j+1)/(2.0*N))*v*Math.PI)*f[i][j];
}
}
somme*=(c[u]*c[v])/4;
F[u][v]=somme;
}
}
return F;
}
}
을, 나는이 방법을 선언 할 것이며 통과 할 수있는 방법 '[] [] INT F'대신 매개 변수로 private 변수로 선언되고 현재 클래스의 생성자에서 초기화 된 f [] []를 사용합니까?
public DCT(int[][] f) {
this.f = f;
}
에
public DCT() {
this.initializeCoefficients();
}
에서 생성자를 initializeCoefficients
를 추출 및 변경에 대한 그런 다음 또한
double[][] dctApplied = new DCT(yourTwoDimF).applyDCT();
같은 클래스를 사용할 수있는 방법
감사합니다 뭔가
을 변경할 것입니다! 나는 f의 차원에보다 유연해야한다고 당신에게 동의합니다. 그러나, 나는 왜 당신이 그랬는지 이해하지 못한다. –
F [u] = 새로운 double [f [u] .length]; –