commit 7ef8b57e417fdfd8fe4f2abe474b49c301d532e6 Author: CarlosEGonzalezMorales Date: Tue Oct 26 17:42:51 2021 -0500 filtro version 2.0 diff --git a/filtro_chido/Adaptive_Median_Filter-0.1.0.jar b/filtro_chido/Adaptive_Median_Filter-0.1.0.jar new file mode 100644 index 0000000..0513617 Binary files /dev/null and b/filtro_chido/Adaptive_Median_Filter-0.1.0.jar differ diff --git a/filtro_chido/build.xml b/filtro_chido/build.xml new file mode 100644 index 0000000..5dcbd99 --- /dev/null +++ b/filtro_chido/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project Filtro_Chido. + + + diff --git a/filtro_chido/build/classes/.netbeans_automatic_build b/filtro_chido/build/classes/.netbeans_automatic_build new file mode 100644 index 0000000..e69de29 diff --git a/filtro_chido/build/classes/.netbeans_update_resources b/filtro_chido/build/classes/.netbeans_update_resources new file mode 100644 index 0000000..e69de29 diff --git a/filtro_chido/build/classes/SRM.class b/filtro_chido/build/classes/SRM.class new file mode 100644 index 0000000..582fad5 Binary files /dev/null and b/filtro_chido/build/classes/SRM.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Filtrado$1.class b/filtro_chido/build/classes/filtro_chido/Filtrado$1.class new file mode 100644 index 0000000..7d6e02f Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Filtrado$1.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Filtrado$2.class b/filtro_chido/build/classes/filtro_chido/Filtrado$2.class new file mode 100644 index 0000000..a3e222c Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Filtrado$2.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Filtrado$3.class b/filtro_chido/build/classes/filtro_chido/Filtrado$3.class new file mode 100644 index 0000000..db41076 Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Filtrado$3.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Filtrado$4.class b/filtro_chido/build/classes/filtro_chido/Filtrado$4.class new file mode 100644 index 0000000..916a8cd Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Filtrado$4.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Filtrado.class b/filtro_chido/build/classes/filtro_chido/Filtrado.class new file mode 100644 index 0000000..38ad2d8 Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Filtrado.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Filtrado.form b/filtro_chido/build/classes/filtro_chido/Filtrado.form new file mode 100644 index 0000000..d7c2219 --- /dev/null +++ b/filtro_chido/build/classes/filtro_chido/Filtrado.form @@ -0,0 +1,193 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/filtro_chido/build/classes/filtro_chido/Filtro_Chido.class b/filtro_chido/build/classes/filtro_chido/Filtro_Chido.class new file mode 100644 index 0000000..26f735b Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Filtro_Chido.class differ diff --git a/filtro_chido/build/classes/filtro_chido/Imagen.class b/filtro_chido/build/classes/filtro_chido/Imagen.class new file mode 100644 index 0000000..1232df2 Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/Imagen.class differ diff --git a/filtro_chido/build/classes/filtro_chido/SRM.class b/filtro_chido/build/classes/filtro_chido/SRM.class new file mode 100644 index 0000000..fd6b7df Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/SRM.class differ diff --git a/filtro_chido/build/classes/filtro_chido/buscarImg$1.class b/filtro_chido/build/classes/filtro_chido/buscarImg$1.class new file mode 100644 index 0000000..f7f5e8a Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/buscarImg$1.class differ diff --git a/filtro_chido/build/classes/filtro_chido/buscarImg.class b/filtro_chido/build/classes/filtro_chido/buscarImg.class new file mode 100644 index 0000000..04d749c Binary files /dev/null and b/filtro_chido/build/classes/filtro_chido/buscarImg.class differ diff --git a/filtro_chido/build/classes/filtro_chido/buscarImg.form b/filtro_chido/build/classes/filtro_chido/buscarImg.form new file mode 100644 index 0000000..fee31fe --- /dev/null +++ b/filtro_chido/build/classes/filtro_chido/buscarImg.form @@ -0,0 +1,50 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/filtro_chido/ij-1.50e.jar b/filtro_chido/ij-1.50e.jar new file mode 100644 index 0000000..fc81ff0 Binary files /dev/null and b/filtro_chido/ij-1.50e.jar differ diff --git a/filtro_chido/manifest.mf b/filtro_chido/manifest.mf new file mode 100644 index 0000000..328e8e5 --- /dev/null +++ b/filtro_chido/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/filtro_chido/nbproject/build-impl.xml b/filtro_chido/nbproject/build-impl.xml new file mode 100644 index 0000000..8a3cb6a --- /dev/null +++ b/filtro_chido/nbproject/build-impl.xml @@ -0,0 +1,1771 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/filtro_chido/nbproject/genfiles.properties b/filtro_chido/nbproject/genfiles.properties new file mode 100644 index 0000000..959ad4f --- /dev/null +++ b/filtro_chido/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=7f4949f9 +build.xml.script.CRC32=5771b5c4 +build.xml.stylesheet.CRC32=f85dc8f2@1.99.0.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=7f4949f9 +nbproject/build-impl.xml.script.CRC32=67d862f6 +nbproject/build-impl.xml.stylesheet.CRC32=d549e5cc@1.99.0.48 diff --git a/filtro_chido/nbproject/private/config.properties b/filtro_chido/nbproject/private/config.properties new file mode 100644 index 0000000..e69de29 diff --git a/filtro_chido/nbproject/private/private.properties b/filtro_chido/nbproject/private/private.properties new file mode 100644 index 0000000..2798d14 --- /dev/null +++ b/filtro_chido/nbproject/private/private.properties @@ -0,0 +1,8 @@ +compile.on.save=true +do.depend=false +do.jar=true +file.reference.Adaptive_Median_Filter-0.1.0.jar=C:\\Users\\humme\\Documents\\NetBeansProjects\\Filtro_Chido\\Adaptive_Median_Filter-0.1.0.jar +file.reference.ij-1.50e.jar=C:\\Users\\humme\\Documents\\NetBeansProjects\\Filtro_Chido\\ij-1.50e.jar +javac.debug=true +javadoc.preview=true +user.properties.file=C:\\Users\\Pott\\AppData\\Roaming\\NetBeans\\12.4\\build.properties diff --git a/filtro_chido/nbproject/private/private.xml b/filtro_chido/nbproject/private/private.xml new file mode 100644 index 0000000..498698e --- /dev/null +++ b/filtro_chido/nbproject/private/private.xml @@ -0,0 +1,11 @@ + + + + + + file:/C:/Users/humme/Documents/NetBeansProjects/Filtro_Chido/src/filtro_chido/SRM.java + file:/C:/Users/humme/Documents/NetBeansProjects/Filtro_Chido/src/filtro_chido/Filtro_Chido.java + file:/C:/Users/humme/Documents/NetBeansProjects/Filtro_Chido/src/filtro_chido/Filtrado.java + + + diff --git a/filtro_chido/nbproject/project.properties b/filtro_chido/nbproject/project.properties new file mode 100644 index 0000000..e223416 --- /dev/null +++ b/filtro_chido/nbproject/project.properties @@ -0,0 +1,95 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=Filtro_Chido +application.vendor=humme +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.modulepath=\ + ${run.modulepath} +debug.test.classpath=\ + ${run.test.classpath} +debug.test.modulepath=\ + ${run.test.modulepath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/Filtro_Chido.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes= +file.reference.Adaptive_Median_Filter-0.1.0.jar=C:\\Users\\humme\\Downloads\\Adaptive_Median_Filter-0.1.0.jar +file.reference.Adaptive_Median_Filter-0.1.0.jar-1=Adaptive_Median_Filter-0.1.0.jar +file.reference.ij-1.50e.jar=C:\\Users\\humme\\Downloads\\ij-1.50e.jar +file.reference.ij-1.50e.jar-1=ij-1.50e.jar +includes=** +jar.compress=false +javac.classpath=\ + ${file.reference.Adaptive_Median_Filter-0.1.0.jar}:\ + ${file.reference.ij-1.50e.jar}:\ + ${file.reference.Adaptive_Median_Filter-0.1.0.jar-1}:\ + ${file.reference.ij-1.50e.jar-1} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.modulepath= +javac.processormodulepath= +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.modulepath=\ + ${javac.modulepath} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=filtro_chido.Filtro_Chido +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.modulepath=\ + ${javac.modulepath} +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +run.test.modulepath=\ + ${javac.test.modulepath} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/filtro_chido/nbproject/project.xml b/filtro_chido/nbproject/project.xml new file mode 100644 index 0000000..c951ab2 --- /dev/null +++ b/filtro_chido/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + Filtro_Chido + + + + + + + + + diff --git a/filtro_chido/src/Imagen.java b/filtro_chido/src/Imagen.java new file mode 100644 index 0000000..e69de29 diff --git a/filtro_chido/src/filtro_chido/Filtrado.form b/filtro_chido/src/filtro_chido/Filtrado.form new file mode 100644 index 0000000..d7c2219 --- /dev/null +++ b/filtro_chido/src/filtro_chido/Filtrado.form @@ -0,0 +1,193 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/filtro_chido/src/filtro_chido/Filtrado.java b/filtro_chido/src/filtro_chido/Filtrado.java new file mode 100644 index 0000000..e7f11d0 --- /dev/null +++ b/filtro_chido/src/filtro_chido/Filtrado.java @@ -0,0 +1,266 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + + +package filtro_chido; +import com.HIT.weisongzhao.AdaptiveMedian; +import java.awt.Image; +import java.io.File; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JFileChooser; +import javax.swing.filechooser.FileNameExtensionFilter; + +/** + * + * srm1.setup = bufferredImage ; + * + * + * + * + * + * @author humme + */ +public class Filtrado extends javax.swing.JFrame { + + /** + * Creates new form Filtrado + */ + public Filtrado() { + initComponents(); + } + File archivo; + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jPanel1 = new javax.swing.JPanel(); + jPanel2 = new javax.swing.JPanel(); + jPanel3 = new javax.swing.JPanel(); + jLabel2 = new javax.swing.JLabel(); + jLabel1 = new javax.swing.JLabel(); + jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); + jButton3 = new javax.swing.JButton(); + jButton4 = new javax.swing.JButton(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + setName("Panel_Principal"); // NOI18N + + jPanel1.setName("Panel_Original"); // NOI18N + + jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); + jPanel2.setName("Panel_Vista_Previa"); // NOI18N + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 956, Short.MAX_VALUE) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 422, Short.MAX_VALUE) + ); + + jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); + jPanel3.setName("Panel_Original"); // NOI18N + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 956, Short.MAX_VALUE) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE) + ); + + jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N + jLabel1.setText("VISTA PREVIA"); + + jButton1.setText("Median filter"); + jButton1.setName("Radius_Button"); // NOI18N + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + jButton2.setText("Black & White"); + + jButton3.setText("Cargar Imagen"); + jButton3.setName("Cargar_Img"); // NOI18N + jButton3.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton3ActionPerformed(evt); + } + }); + + jButton4.setText("SRM"); + jButton4.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton4ActionPerformed(evt); + } + }); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel1) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(jPanel1Layout.createSequentialGroup() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 176, Short.MAX_VALUE)) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE) + .addComponent(jLabel1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(23, 23, 23)) + ); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + pack(); + }// //GEN-END:initComponents + + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + AdaptiveMedian(); + }//GEN-LAST:event_jButton1ActionPerformed + + private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed + Imagen image = new Imagen(jPanel3); + jPanel3.add(image).repaint(); + + + int resultado; + buscarImg buscador = new buscarImg(); + FileNameExtensionFilter formato = new FileNameExtensionFilter("JPG","PNG","GIF","jpg","png","gif"); + buscador.JMCImg.setFileFilter(formato); + resultado = buscador.JMCImg.showOpenDialog(null); + + + if(JFileChooser.APPROVE_OPTION == resultado){ + + try{ + archivo = buscador.JMCImg.getSelectedFile(); + //jLDireccion.setText(archivo.getAbsolutePath()); + ImageIcon imgIcon = new ImageIcon(archivo.toString()); + Icon ico = new ImageIcon(imgIcon.getImage().getScaledInstance(jLabel2.getWidth(), jLabel2.getHeight(), Image.SCALE_DEFAULT) ); + jLabel2.setIcon(ico); + }catch(Exception ex){ + + } + } + }//GEN-LAST:event_jButton3ActionPerformed + + private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed + SRM(); + }//GEN-LAST:event_jButton4ActionPerformed + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + /* Set the Nimbus look and feel */ + // + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + */ + try { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { + if ("Nimbus".equals(info.getName())) { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } catch (ClassNotFoundException ex) { + java.util.logging.Logger.getLogger(Filtrado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + java.util.logging.Logger.getLogger(Filtrado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + java.util.logging.Logger.getLogger(Filtrado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(Filtrado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new Filtrado().setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; + private javax.swing.JButton jButton3; + private javax.swing.JButton jButton4; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + // End of variables declaration//GEN-END:variables + + private void AdaptiveMedian() { + AdaptiveMedian mediana =new AdaptiveMedian(); + mediana.showDialog(null, null, null); + } + private void SRM (){ + SRM srm1 = new SRM(); + + } +} diff --git a/filtro_chido/src/filtro_chido/Filtro_Chido.java b/filtro_chido/src/filtro_chido/Filtro_Chido.java new file mode 100644 index 0000000..a891bd0 --- /dev/null +++ b/filtro_chido/src/filtro_chido/Filtro_Chido.java @@ -0,0 +1,21 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package filtro_chido; + + +public class Filtro_Chido { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + Filtrado fl = new Filtrado(); + fl.show(); + + } + +} diff --git a/filtro_chido/src/filtro_chido/Imagen.java b/filtro_chido/src/filtro_chido/Imagen.java new file mode 100644 index 0000000..7358eb2 --- /dev/null +++ b/filtro_chido/src/filtro_chido/Imagen.java @@ -0,0 +1,27 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package filtro_chido; +import java.awt.Graphics; +import javax.swing.ImageIcon; +import javax.swing.JPanel; + +class Imagen extends javax.swing.JPanel { + int x, y; + + public Imagen(JPanel jPanel1) { + this.x = jPanel1.getWidth(); + this.y = jPanel1.getHeight(); + this.setSize(x, y); + } + + public void paint(Graphics g, String img) { + + ImageIcon Img = new ImageIcon(getClass().getResource("/Images/imagen1.png")); + g.drawImage(Img.getImage(), 0, 0, x, y, null); + } + +} \ No newline at end of file diff --git a/filtro_chido/src/filtro_chido/SRM.java b/filtro_chido/src/filtro_chido/SRM.java new file mode 100644 index 0000000..f55b10d --- /dev/null +++ b/filtro_chido/src/filtro_chido/SRM.java @@ -0,0 +1,378 @@ + +package filtro_chido; + +import ij.IJ; +import ij.ImagePlus; +import ij.ImageStack; +import ij.gui.GenericDialog; +import ij.plugin.filter.PlugInFilter; +import static ij.plugin.filter.PlugInFilter.DOES_8G; +import static ij.plugin.filter.PlugInFilter.NO_CHANGES; +import ij.process.ByteProcessor; +import ij.process.FloatProcessor; +import ij.process.ImageProcessor; +import ij.process.ShortProcessor; + +import java.util.Arrays; + + +public class SRM implements PlugInFilter { + ImagePlus image; + + public int setup(String arg, ImagePlus image) { + this.image = image; + return DOES_8G | NO_CHANGES; + } + + public void run(ImageProcessor ip) { + boolean isStack = image.getStackSize() > 1; + + GenericDialog gd = new GenericDialog("SRM"); + gd.addNumericField("Q", Q, 2); + gd.addCheckbox("showAverages", true); + if (isStack) + gd.addCheckbox("3d", true); + gd.showDialog(); + + if (gd.wasCanceled()) + return; + + Q = (float)gd.getNextNumber(); + boolean showAverages = gd.getNextBoolean(); + boolean do3D = isStack ? gd.getNextBoolean() : false; + if (do3D) + srm3D(showAverages).show(); + else + srm2D(ip, showAverages).show(); + } + + final float g = 256; // number of different intensity values + protected float Q = 25; //25; // complexity of the assumed distributions + protected float delta; + + protected float factor, logDelta; + + float[] average; + int[] count; + int[] regionIndex; // if < 0, it is -1 - actual_regionIndex + + int[] nextNeighbor, neighborBucket; + + protected ImagePlus srm3D(boolean showAverages) { + int w = image.getWidth(), h = image.getHeight(); + int d = image.getStackSize(); + + delta = 1f / (6 * w * h * d); + + factor = g * g / 2 / Q; + logDelta = 2f * (float)Math.log(6 * w * h * d); + + IJ.showStatus("Initializing regions"); + initializeRegions3D(w, h, d); + IJ.showStatus("Initializing neighbors"); + initializeNeighbors3D(w, h, d); + IJ.showStatus("Merging neighbors"); + mergeAllNeighbors3D(w, h); + IJ.showStatus("Making stack"); + + ImageStack stack = new ImageStack(w, h); + if (showAverages) + for (int k = 0; k < d; k++) { + int off = k * w * h; + float[] p = new float[w * h]; + for (int i = 0; i < w * h; i++) + p[i] = average[getRegionIndex(i + off)]; + stack.addSlice(null, new FloatProcessor(w, h, + p, null)); + } + else { + int regionCount = consolidateRegions(); + + if (regionCount > 1<<16) + IJ.showMessage("Found " + regionCount + + " regions, which does not fit" + + " in 16-bit."); + + for (int k = 0; k < d; k++) { + ImageProcessor ip; + + int off = k * w * h; + + if (regionCount > 1<<8) { + short[] p = new short[w * h]; + for (int i = 0; i < p.length; i++) + p[i] = (short)regionIndex[i + + off]; + ip = new ShortProcessor(w, h, p, null); + } + else { + byte[] p = new byte[w * h]; + for (int i = 0; i < p.length; i++) + p[i] = (byte)regionIndex[i + + off]; + ip = new ByteProcessor(w, h, p, null); + } + stack.addSlice(null, ip); + } + } + + IJ.showStatus(""); + String title = image.getTitle() + " (SRM3D Q=" + Q + ")"; + return new ImagePlus(title, stack); + } + + protected ImagePlus srm2D(ImageProcessor ip, boolean showAverages) { + int w = ip.getWidth(), h = ip.getHeight(); + + delta = 1f / (6 * w * h); + + factor = g * g / 2 / Q; + logDelta = 2f * (float)Math.log(6 * w * h); + + byte[] pixel = (byte[])ip.getPixels(); + initializeRegions2D(pixel, ip.getWidth(), ip.getHeight()); + initializeNeighbors2D(pixel, w, h); + mergeAllNeighbors2D(w); + + if (showAverages) { + for (int i = 0; i < average.length; i++) + average[i] = average[getRegionIndex(i)]; + ip = new FloatProcessor(w, h, average, null); + } + else { + int regionCount = consolidateRegions(); + + if (regionCount > 1<<8) { + if (regionCount > 1<<16) + IJ.showMessage("Found " + regionCount + + " regions, which does not fit" + + " in 16-bit."); + short[] pixel16 = new short[w * h]; + for (int i = 0; i < pixel16.length; i++) + pixel16[i] = (short)regionIndex[i]; + ip = new ShortProcessor(w, h, pixel16, null); + } + else { + pixel = new byte[w * h]; + for (int i = 0; i < pixel.length; i++) + pixel[i] = (byte)regionIndex[i]; + ip = new ByteProcessor(w, h, pixel, null); + } + } + + String title = image.getTitle() + " (SRM Q=" + Q + ")"; + return new ImagePlus(title, ip); + } + + void initializeRegions2D(byte[] pixel, int w, int h) { + average = new float[w * h]; + count = new int[w * h]; + regionIndex = new int[w * h]; + + for (int i = 0; i < average.length; i++) { + average[i] = pixel[i] & 0xff; + count[i] = 1; + regionIndex[i] = i; + } + } + + void initializeRegions3D(int w, int h, int d) { + average = new float[w * h * d]; + count = new int[w * h * d]; + regionIndex = new int[w * h * d]; + + for (int j = 0; j < d; j++) { + byte[] pixel = + (byte[])image.getStack().getProcessor(j + + 1).getPixels(); + int offset = j * w * h; + for (int i = 0; i < w * h; i++) { + average[offset + i] = pixel[i] & 0xff; + count[offset + i] = 1; + regionIndex[offset + i] = offset + i; + } + } + } + + protected void addNeighborPair(int neighborIndex, + byte[] pixel, int i1, int i2) { + int difference = Math.abs((pixel[i1] & 0xff) + - (pixel[i2] & 0xff)); + nextNeighbor[neighborIndex] = neighborBucket[difference]; + neighborBucket[difference] = neighborIndex; + } + + void initializeNeighbors2D(byte[] pixel, int w, int h) { + nextNeighbor = new int[2 * w * h]; + + // bucket sort + neighborBucket = new int[256]; + Arrays.fill(neighborBucket, -1); + + for (int j = h - 1; j >= 0; j--) + for (int i = w - 1; i >= 0; i--) { + int index = i + w * j; + int neighborIndex = 2 * index; + + // vertical + if (j < h - 1) + addNeighborPair(neighborIndex + 1, + pixel, index, index + w); + + // horizontal + if (i < w - 1) + addNeighborPair(neighborIndex, + pixel, index, index + 1); + } + } + + protected void addNeighborPair(int neighborIndex, + byte[] pixel, byte[] nextPixel, int i) { + int difference = Math.abs((pixel[i] & 0xff) + - (nextPixel[i] & 0xff)); + nextNeighbor[neighborIndex] = neighborBucket[difference]; + neighborBucket[difference] = neighborIndex; + } + + void initializeNeighbors3D(int w, int h, int d) { + nextNeighbor = new int[3 * w * h * d]; + + // bucket sort + neighborBucket = new int[256]; + Arrays.fill(neighborBucket, -1); + + byte[] nextPixel = null; + for (int k = d - 1; k >= 0; k--) { + byte[] pixel = + (byte[])image.getStack().getProcessor(k + + 1).getPixels(); + for (int j = h - 1; j >= 0; j--) + for (int i = w - 1; i >= 0; i--) { + int index = i + w * j; + int neighborIndex = + 3 * (index + k * w * h); + + // depth + if (nextPixel != null) + addNeighborPair(neighborIndex + + 2, pixel, + nextPixel, index); + + // vertical + if (j < h - 1) + addNeighborPair(neighborIndex + + 1, pixel, + index, index + w); + + // horizontal + if (i < w - 1) + addNeighborPair(neighborIndex, + pixel, + index, index + 1); + } + nextPixel = pixel; + } + } + + // recursively find out the region index for this pixel + int getRegionIndex(int i) { + i = regionIndex[i]; + while (i < 0) + i = regionIndex[-1 - i]; + return i; + } + + // should regions i1 and i2 be merged? + boolean predicate(int i1, int i2) { + float difference = average[i1] - average[i2]; + /* + * This would be the non-relaxed predicate mentioned in the + * paper. + * + * return difference * difference < + factor * (1f / count[i1] + 1f / count[i2]); + * + */ + float log1 = (float)Math.log(1 + count[i1]) + * (g < count[i1] ? g : count[i1]); + float log2 = (float)Math.log(1 + count[i2]) + * (g < count[i2] ? g : count[i2]); + return difference * difference < + .1f * factor * ((log1 + logDelta) / count[i1] + + ((log2 + logDelta) / count[i2])); + } + + void mergeAllNeighbors2D(int w) { + for (int i = 0; i < neighborBucket.length; i++) { + int neighborIndex = neighborBucket[i]; + while (neighborIndex >= 0) { + int i1 = neighborIndex / 2; + int i2 = i1 + + (0 == (neighborIndex & 1) ? 1 : w); + + i1 = getRegionIndex(i1); + i2 = getRegionIndex(i2); + + if (predicate(i1, i2)) + mergeRegions(i1, i2); + + neighborIndex = nextNeighbor[neighborIndex]; + } + } + } + + void mergeAllNeighbors3D(int w, int h) { + for (int i = 0; i < neighborBucket.length; i++) { + int neighborIndex = neighborBucket[i]; + IJ.showProgress(i, neighborBucket.length); + while (neighborIndex >= 0) { + int i1 = neighborIndex / 3; + int i2 = i1 + + (0 == (neighborIndex % 3) ? 1 : + (1 == (neighborIndex % 3) ? w : + w * h)); + + i1 = getRegionIndex(i1); + i2 = getRegionIndex(i2); + + if (i1 != i2 && predicate(i1, i2)) + mergeRegions(i1, i2); + + neighborIndex = nextNeighbor[neighborIndex]; + } + } + IJ.showProgress(neighborBucket.length, neighborBucket.length); + } + + void mergeRegions(int i1, int i2) { + if (i1 == i2) + return; + int mergedCount = count[i1] + count[i2]; + float mergedAverage = (average[i1] * count[i1] + + average[i2] * count[i2]) / mergedCount; + + // merge larger index into smaller index + if (i1 > i2) { + average[i2] = mergedAverage; + count[i2] = mergedCount; + regionIndex[i1] = -1 - i2; + } + else { + average[i1] = mergedAverage; + count[i1] = mergedCount; + regionIndex[i2] = -1 - i1; + } + } + + int consolidateRegions() { + + int count = 0; + for (int i = 0; i < regionIndex.length; i++) + if (regionIndex[i] < 0) + regionIndex[i] = + regionIndex[-1 - regionIndex[i]]; + else + regionIndex[i] = count++; + return count; + } +} diff --git a/filtro_chido/src/filtro_chido/buscarImg.form b/filtro_chido/src/filtro_chido/buscarImg.form new file mode 100644 index 0000000..fee31fe --- /dev/null +++ b/filtro_chido/src/filtro_chido/buscarImg.form @@ -0,0 +1,50 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/filtro_chido/src/filtro_chido/buscarImg.java b/filtro_chido/src/filtro_chido/buscarImg.java new file mode 100644 index 0000000..4fe487f --- /dev/null +++ b/filtro_chido/src/filtro_chido/buscarImg.java @@ -0,0 +1,93 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package filtro_chido; + +/** + * + * @author Pott + */ +public class buscarImg extends javax.swing.JFrame { + + /** + * Creates new form buscarImg + */ + public buscarImg() { + initComponents(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + JMCImg = new javax.swing.JFileChooser(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(JMCImg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(JMCImg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + pack(); + }// //GEN-END:initComponents + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + /* Set the Nimbus look and feel */ + // + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + */ + try { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { + if ("Nimbus".equals(info.getName())) { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } catch (ClassNotFoundException ex) { + java.util.logging.Logger.getLogger(buscarImg.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + java.util.logging.Logger.getLogger(buscarImg.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + java.util.logging.Logger.getLogger(buscarImg.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(buscarImg.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new buscarImg().setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + public static javax.swing.JFileChooser JMCImg; + // End of variables declaration//GEN-END:variables +}