package Convolution; import javax.swing.*; import java.awt.*; /** * Die Klasse dient zur Unterstuetzung der optischen * Darstellung. Hier werden Eingangs-und Ausgangsbild sowie * die Bilder der Gradientenoperationen gezeichnet. * Der benutzerdefinierte Faltungskern wird durch Textfelder * dargestellt, welche in der Mitte zwischen Eingangs-und Ausgangsbild * plaziert werden. Zu Anfang ist fuer alle Textfelder'setVisible' * auf false gesetzt,da diese nur sichtbar werden sollen,wenn als * Operator der benuterdefinierte Faltungskern gewaehlt wurde. * Um die Textfelder praeziese setzen zu koennen wurde in dieser * KLasse der Layoutmanage auf null gesetzt. * * @author Rene Iser, Behrang Karimibabak, Simon Winkelbach * */ public class ConvolutionViewer extends JPanel { ImageWindow inputImage,outputImage; boolean roberts,sobel,laPlace,userDef; int rows,cols; Image operator; MediaTracker media; JTextField[][] mask; Font background; ConvolutionViewer(ImageWindow inputImage,ImageWindow outputImage){ setLayout(null); sobel=true; roberts=false; laPlace=false; userDef=false; rows=3; cols=3; this.inputImage=inputImage; this.outputImage=outputImage; background = new Font("Helvetica",30,30); media=new MediaTracker(this); operator=Toolkit.getDefaultToolkit().getImage(getClass().getResource("Sobel.jpg")); media.addImage(operator,0); try{ media.waitForID(0); } catch (Exception e){} /* * Definiert die Textfelder.Die Sichtbarkeit ist * zunaechst 'false'.Sie wird erst auf 'true' wenn * im Hauptprogramm der User-defined-Operator gewaehlt * wurde. */ mask=new JTextField[3][3]; for (int i=0;i