T
tanye
Gast
Nabend Zusammen,
Ich möchte den Zobel-Operator implementieren, was ich eigentlich glaube gemacht zu haben. Nur bekomme ich immer diese Fehlermeldung:
Ich denke schon dass es so richtig sein sollte, wo soll denn da ein Fehler sein mit den Arrays ? Kann jemand helfen?
Ich möchte den Zobel-Operator implementieren, was ich eigentlich glaube gemacht zu haben. Nur bekomme ich immer diese Fehlermeldung:
java.lang.ArrayIndexOutOfBoundsException: 3
at Sobelfilter.filter(Sobelfilter.java:30)
at imageToolBox.ImageToolBox.applyFilter(ImageToolBox.java:622)
at imageToolBox.ImageToolBox.run(ImageToolBox.java:92)
at java.lang.Thread.run(Thread.java:680)
Ich denke schon dass es so richtig sein sollte, wo soll denn da ein Fehler sein mit den Arrays ? Kann jemand helfen?
Java:
import imageToolBox.AbstractFilter;
import static java.lang.Math.*;
@SuppressWarnings("unused")
public class Sobelfilter extends AbstractFilter
{
double[][][] sobelX = null;
double[][][] sobelY = null;
@Override
public void filter(double[][][] src, double[][][] dest)
{
for(int i=1;i<width-2;i++)
{
for(int j=1;j<height-2;j++)
{
for (int k=0;k<3;k++)
{
dest[k][i][j] = Math.sqrt(
Math.pow( ((-1) * src[i-1][j-1][k] +
(-2) * src[i-1][j][k] +
(-1) * src[i-1][j+1][k] +
0 * src[i][j-1][k] +
0 * src[i][j][k] +
0 * src[i][j+1][k] +
1 * src[i+1][j-1][k] +
2 * src[i+1][j][k] +
1 * src[i+1][j+1][k]),2)+
Math.pow(((-1) * src[i-1][j-1][k] +
0 * src[i-1][j][k] +
1 * src[i-1][j+1][k] +
(-2) * src[i][j-1][k] +
0 * src[i][j][k] +
2 * src[i][j+1][k] +
(-1) * src[i+1][j-1][k] +
0 * src[i+1][j][k] +
1 * src[i+1][j+1][k] ),2)
);
}
}
}
}
}