Programa en java filtro laplace error que no se como corregir
Publicado por Alan Diaz (1 intervención) el 14/06/2012 18:54:12
Hola comunidad de programadores!
Lo que pasa es que tengo este proyecto escolar le explicare brevemente:
Tengo que cargar una imagen y a esa imagen le aplico lo que viene siendo el filtro de laplace;
Tengo un proyecto en netbeans y el main es el siguiente:
import java.awt.Color;
public class LaplaceFilter2 {
public int width, height; // width and height
public static void main(String[] args) {
Picture pic1 = new Picture(); // original
int width = pic1.width();
int height = pic1.height();
Picture pic2 = new Picture([pic1.width()][pic1.height()]); // filtered <------- AQUI ME MARCA EL ERROR
// pic1.show();
//pic2.show();
for (int y = 1; y < height - 1; y++) {
for (int x = 1; x < width - 1; x++) {
Color c00 = pic1.get(x-1, y-1);
Color c01 = pic1.get(x-1, y );
Color c02 = pic1.get(x-1, y+1);
Color c10 = pic1.get(x , y-1);
Color c11 = pic1.get(x , y );
Color c12 = pic1.get(x , y+1);
Color c20 = pic1.get(x+1, y-1);
Color c21 = pic1.get(x+1, y );
Color c22 = pic1.get(x+1, y+1);
int r = -c00.getRed() - c01.getRed() - c02.getRed() +
-c10.getRed() + 8*c11.getRed() - c12.getRed() +
-c20.getRed() - c21.getRed() - c22.getRed();
int g = -c00.getGreen() - c01.getGreen() - c02.getGreen() +
-c10.getGreen() + 8*c11.getGreen() - c12.getGreen() +
-c20.getGreen() - c21.getGreen() - c22.getGreen();
int b = -c00.getBlue() - c01.getBlue() - c02.getBlue() +
-c10.getBlue() + 8*c11.getBlue() - c12.getBlue() +
-c20.getBlue() - c21.getBlue() - c22.getBlue();
r = Math.min(255, Math.max(0, r));
g = Math.min(255, Math.max(0, g));
b = Math.min(255, Math.max(0, b));
Color c = new Color(r, g, b);
pic2.set(x, y, c);
}
}
pic2.show();
}
}
No se si esta mal declarado y pues tengo una clase aparte de constructores pero ahi no me da problema!!!
Espero y me puedan ayudar!!!!
Lo que pasa es que tengo este proyecto escolar le explicare brevemente:
Tengo que cargar una imagen y a esa imagen le aplico lo que viene siendo el filtro de laplace;
Tengo un proyecto en netbeans y el main es el siguiente:
import java.awt.Color;
public class LaplaceFilter2 {
public int width, height; // width and height
public static void main(String[] args) {
Picture pic1 = new Picture(); // original
int width = pic1.width();
int height = pic1.height();
Picture pic2 = new Picture([pic1.width()][pic1.height()]); // filtered <------- AQUI ME MARCA EL ERROR
// pic1.show();
//pic2.show();
for (int y = 1; y < height - 1; y++) {
for (int x = 1; x < width - 1; x++) {
Color c00 = pic1.get(x-1, y-1);
Color c01 = pic1.get(x-1, y );
Color c02 = pic1.get(x-1, y+1);
Color c10 = pic1.get(x , y-1);
Color c11 = pic1.get(x , y );
Color c12 = pic1.get(x , y+1);
Color c20 = pic1.get(x+1, y-1);
Color c21 = pic1.get(x+1, y );
Color c22 = pic1.get(x+1, y+1);
int r = -c00.getRed() - c01.getRed() - c02.getRed() +
-c10.getRed() + 8*c11.getRed() - c12.getRed() +
-c20.getRed() - c21.getRed() - c22.getRed();
int g = -c00.getGreen() - c01.getGreen() - c02.getGreen() +
-c10.getGreen() + 8*c11.getGreen() - c12.getGreen() +
-c20.getGreen() - c21.getGreen() - c22.getGreen();
int b = -c00.getBlue() - c01.getBlue() - c02.getBlue() +
-c10.getBlue() + 8*c11.getBlue() - c12.getBlue() +
-c20.getBlue() - c21.getBlue() - c22.getBlue();
r = Math.min(255, Math.max(0, r));
g = Math.min(255, Math.max(0, g));
b = Math.min(255, Math.max(0, b));
Color c = new Color(r, g, b);
pic2.set(x, y, c);
}
}
pic2.show();
}
}
No se si esta mal declarado y pues tengo una clase aparte de constructores pero ahi no me da problema!!!
Espero y me puedan ayudar!!!!
Valora esta pregunta


0