Ciao a tutti,
ho un problema. Praticamente devo mettere un immagine da RGB a greyscale e poi calcolare la soglia... ma nel pannello non riesco a vederlo... non so se è sbagliato l'algoritmo di conversione oppure c'è qualche errore nel gestire il pannello. Il codice è il seguente:
// Make a colors image into a black and white image
public BufferedImage toBlackAndWhite(BufferedImage source){
int THRESHOLD = 180;
int width = source.getWidth();
int height = source.getHeight();
// convert to grayscale
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
Color color1 = new Color(source.getRGB(i, j));
Color gray = Luminance.toGray(color1);
source.setRGB(i, j, gray.getRGB());
}
}
for (int i1 = 0; i1 < source.getWidth(); i1++) {
for (int j1 = 0; j1 < source.getHeight(); j1++) {
Color color2 = new Color(source.getRGB(i1, j1));
double lum = Luminance.lum(color2);
if (lum >= THRESHOLD) source.setRGB(i1, j1, Color.white.getRGB());
else
source.setRGB(i1, j1, Color.BLACK.getRGB());
}
}
Graphics imgg= img.createGraphics();
ImagePanel imgp= new ImagePanel(source);
imgp.paintComponent(imgg);
frame.add(imgp);
frame.setSize(width,height);
imgp.repaint();
imgp.setVisible(true);
frame.setVisible(true);
return source;
}
Qualcuno mi può aiutare?
Grazie