Ho utilizzato il seguente codice x visualizzare un immagine filtrata ma nn ottengo nulla ottengo un immagine nera.Qualcuno mi sa aiutare?oppure mi sa indicare un altro modo per poter filtrare l'immagine?
import com.pearsoneduc.ip.op.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
import java.awt.color.ColorSpace;
class Esempio2 extends Canvas implements ActionListener
{
ImageFFT fft;
BufferedImage leggi;
BufferedImage immagine;
BufferedImage outimage;
public Esempio2 (String imageFile) {
try
{
leggi = ImageIO.read(new File(imageFile));
/*ColorSpace space = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp operation = new ColorConvertOp ( space, null);
BufferedImage immagine = operation.filter(leggi, null);*/
immagine=new BufferedImage(leggi.getWidth(),leggi.getHeight(),B ufferedImage.TYPE_BYTE_GRAY);
}
catch (IOException e) {};
}
public Dimension getPreferredSize()
{
int width = leggi.getWidth(this);
int height = leggi.getHeight(this);
return new Dimension(width,height);
}
public void paint(Graphics g)
{
g.drawImage(leggi,0,0,this);
}
public void actionPerformed(ActionEvent ev)
{
try{
fft=new ImageFFT(immagine);
fft.transform();
//System.out.println("WWW");
fft.butterworthLowPassFilter(1,0.1d);
fft.transform();
leggi=fft.toImage(null);
repaint();
}
catch(Exception e){
System.out.println("eccezione");
}
}
public static void main(String[] args)
{
Esempio2 es =new Esempio2 ("immagineoriginale.jpg");
Frame f = new Frame("Esempio1");
f.setLayout(new BorderLayout());
f.add(es);
Button b = new Button("fft");
f.add(BorderLayout.SOUTH,b);
b.addActionListener(es);
f.pack();
f.setVisible(true);
}
}![]()