| @ -0,0 +1,73 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- You may freely edit this file. See commented blocks below for --> | |||
| <!-- some examples of how to customize the build. --> | |||
| <!-- (If you delete it and reopen the project it will be recreated.) --> | |||
| <!-- By default, only the Clean and Build commands use this build script. --> | |||
| <!-- Commands such as Run, Debug, and Test only use this build script if --> | |||
| <!-- the Compile on Save feature is turned off for the project. --> | |||
| <!-- You can turn off the Compile on Save (or Deploy on Save) setting --> | |||
| <!-- in the project's Project Properties dialog box.--> | |||
| <project name="Filtro_Chido" default="default" basedir="."> | |||
| <description>Builds, tests, and runs the project Filtro_Chido.</description> | |||
| <import file="nbproject/build-impl.xml"/> | |||
| <!-- | |||
| There exist several targets which are by default empty and which can be | |||
| used for execution of your tasks. These targets are usually executed | |||
| before and after some main targets. They are: | |||
| -pre-init: called before initialization of project properties | |||
| -post-init: called after initialization of project properties | |||
| -pre-compile: called before javac compilation | |||
| -post-compile: called after javac compilation | |||
| -pre-compile-single: called before javac compilation of single file | |||
| -post-compile-single: called after javac compilation of single file | |||
| -pre-compile-test: called before javac compilation of JUnit tests | |||
| -post-compile-test: called after javac compilation of JUnit tests | |||
| -pre-compile-test-single: called before javac compilation of single JUnit test | |||
| -post-compile-test-single: called after javac compilation of single JUunit test | |||
| -pre-jar: called before JAR building | |||
| -post-jar: called after JAR building | |||
| -post-clean: called after cleaning build products | |||
| (Targets beginning with '-' are not intended to be called on their own.) | |||
| Example of inserting an obfuscator after compilation could look like this: | |||
| <target name="-post-compile"> | |||
| <obfuscate> | |||
| <fileset dir="${build.classes.dir}"/> | |||
| </obfuscate> | |||
| </target> | |||
| For list of available properties check the imported | |||
| nbproject/build-impl.xml file. | |||
| Another way to customize the build is by overriding existing main targets. | |||
| The targets of interest are: | |||
| -init-macrodef-javac: defines macro for javac compilation | |||
| -init-macrodef-junit: defines macro for junit execution | |||
| -init-macrodef-debug: defines macro for class debugging | |||
| -init-macrodef-java: defines macro for class execution | |||
| -do-jar: JAR building | |||
| run: execution of project | |||
| -javadoc-build: Javadoc generation | |||
| test-report: JUnit report generation | |||
| An example of overriding the target for project execution could look like this: | |||
| <target name="run" depends="Filtro_Chido-impl.jar"> | |||
| <exec dir="bin" executable="launcher.exe"> | |||
| <arg file="${dist.jar}"/> | |||
| </exec> | |||
| </target> | |||
| Notice that the overridden target depends on the jar target and not only on | |||
| the compile target as the regular run target does. Again, for a list of available | |||
| properties which you can use, check the target you are overriding in the | |||
| nbproject/build-impl.xml file. | |||
| --> | |||
| </project> | |||
| @ -0,0 +1,193 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> | |||
| <Properties> | |||
| <Property name="defaultCloseOperation" type="int" value="3"/> | |||
| <Property name="name" type="java.lang.String" value="Panel_Principal" noResource="true"/> | |||
| </Properties> | |||
| <SyntheticProperties> | |||
| <SyntheticProperty name="formSizePolicy" type="int" value="1"/> | |||
| <SyntheticProperty name="generateCenter" type="boolean" value="false"/> | |||
| </SyntheticProperties> | |||
| <AuxValues> | |||
| <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> | |||
| <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> | |||
| <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> | |||
| </AuxValues> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jPanel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jPanel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Container class="javax.swing.JPanel" name="jPanel1"> | |||
| <Properties> | |||
| <Property name="name" type="java.lang.String" value="Panel_Original" noResource="true"/> | |||
| </Properties> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jLabel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| <Group type="102" attributes="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <Component id="jPanel3" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
| <Group type="103" groupAlignment="0" max="-2" attributes="0"> | |||
| <Component id="jButton1" max="32767" attributes="0"/> | |||
| <Component id="jButton2" max="32767" attributes="0"/> | |||
| <Component id="jButton3" max="32767" attributes="0"/> | |||
| <Component id="jButton4" max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| <Component id="jPanel2" alignment="0" min="-2" max="-2" attributes="0"/> | |||
| </Group> | |||
| <EmptySpace min="0" pref="176" max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="1" attributes="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Component id="jPanel3" min="-2" max="-2" attributes="0"/> | |||
| <Group type="102" attributes="0"> | |||
| <Component id="jButton3" min="-2" pref="33" max="-2" attributes="0"/> | |||
| <EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
| <Component id="jButton2" min="-2" pref="36" max="-2" attributes="0"/> | |||
| <EmptySpace type="separate" max="-2" attributes="0"/> | |||
| <Component id="jButton1" min="-2" pref="33" max="-2" attributes="0"/> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jButton4" min="-2" pref="34" max="-2" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| <EmptySpace pref="27" max="32767" attributes="0"/> | |||
| <Component id="jLabel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jPanel2" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace min="-2" pref="23" max="-2" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Container class="javax.swing.JPanel" name="jPanel2"> | |||
| <Properties> | |||
| <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> | |||
| <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> | |||
| <LineBorder/> | |||
| </Border> | |||
| </Property> | |||
| <Property name="name" type="java.lang.String" value="Panel_Vista_Previa" noResource="true"/> | |||
| </Properties> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <EmptySpace min="0" pref="956" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <EmptySpace min="0" pref="422" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| </Container> | |||
| <Container class="javax.swing.JPanel" name="jPanel3"> | |||
| <Properties> | |||
| <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> | |||
| <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> | |||
| <LineBorder/> | |||
| </Border> | |||
| </Property> | |||
| <Property name="name" type="java.lang.String" value="Panel_Original" noResource="true"/> | |||
| </Properties> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Component id="jLabel2" alignment="0" pref="956" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Component id="jLabel2" alignment="0" pref="422" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Component class="javax.swing.JLabel" name="jLabel2"> | |||
| </Component> | |||
| </SubComponents> | |||
| </Container> | |||
| <Component class="javax.swing.JLabel" name="jLabel1"> | |||
| <Properties> | |||
| <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> | |||
| <Font name="Tahoma" size="14" style="0"/> | |||
| </Property> | |||
| <Property name="text" type="java.lang.String" value="VISTA PREVIA"/> | |||
| </Properties> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton1"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="Median filter"/> | |||
| <Property name="name" type="java.lang.String" value="Radius_Button" noResource="true"/> | |||
| </Properties> | |||
| <Events> | |||
| <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/> | |||
| </Events> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton2"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="Black & White"/> | |||
| </Properties> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton3"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="Cargar Imagen"/> | |||
| <Property name="name" type="java.lang.String" value="Cargar_Img" noResource="true"/> | |||
| </Properties> | |||
| <Events> | |||
| <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton3ActionPerformed"/> | |||
| </Events> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton4"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="SRM"/> | |||
| </Properties> | |||
| <Events> | |||
| <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton4ActionPerformed"/> | |||
| </Events> | |||
| </Component> | |||
| </SubComponents> | |||
| </Container> | |||
| </SubComponents> | |||
| </Form> | |||
| @ -0,0 +1,50 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> | |||
| <Properties> | |||
| <Property name="defaultCloseOperation" type="int" value="3"/> | |||
| </Properties> | |||
| <SyntheticProperties> | |||
| <SyntheticProperty name="formSizePolicy" type="int" value="1"/> | |||
| <SyntheticProperty name="generateCenter" type="boolean" value="false"/> | |||
| </SyntheticProperties> | |||
| <AuxValues> | |||
| <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> | |||
| <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> | |||
| <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> | |||
| </AuxValues> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="1" attributes="0"> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| <Component id="JMCImg" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="JMCImg" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Component class="javax.swing.JFileChooser" name="JMCImg"> | |||
| <AuxValues> | |||
| <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="9"/> | |||
| </AuxValues> | |||
| </Component> | |||
| </SubComponents> | |||
| </Form> | |||
| @ -0,0 +1,3 @@ | |||
| Manifest-Version: 1.0 | |||
| X-COMMENT: Main-Class will be added automatically by build | |||
| @ -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 | |||
| @ -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 | |||
| @ -0,0 +1,11 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project-private xmlns="http://www.netbeans.org/ns/project-private/1"> | |||
| <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> | |||
| <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> | |||
| <group> | |||
| <file>file:/C:/Users/humme/Documents/NetBeansProjects/Filtro_Chido/src/filtro_chido/SRM.java</file> | |||
| <file>file:/C:/Users/humme/Documents/NetBeansProjects/Filtro_Chido/src/filtro_chido/Filtro_Chido.java</file> | |||
| <file>file:/C:/Users/humme/Documents/NetBeansProjects/Filtro_Chido/src/filtro_chido/Filtrado.java</file> | |||
| </group> | |||
| </open-files> | |||
| </project-private> | |||
| @ -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 | |||
| @ -0,0 +1,15 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project xmlns="http://www.netbeans.org/ns/project/1"> | |||
| <type>org.netbeans.modules.java.j2seproject</type> | |||
| <configuration> | |||
| <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> | |||
| <name>Filtro_Chido</name> | |||
| <source-roots> | |||
| <root id="src.dir"/> | |||
| </source-roots> | |||
| <test-roots> | |||
| <root id="test.src.dir"/> | |||
| </test-roots> | |||
| </data> | |||
| </configuration> | |||
| </project> | |||
| @ -0,0 +1,193 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> | |||
| <Properties> | |||
| <Property name="defaultCloseOperation" type="int" value="3"/> | |||
| <Property name="name" type="java.lang.String" value="Panel_Principal" noResource="true"/> | |||
| </Properties> | |||
| <SyntheticProperties> | |||
| <SyntheticProperty name="formSizePolicy" type="int" value="1"/> | |||
| <SyntheticProperty name="generateCenter" type="boolean" value="false"/> | |||
| </SyntheticProperties> | |||
| <AuxValues> | |||
| <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> | |||
| <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> | |||
| <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> | |||
| </AuxValues> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jPanel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jPanel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Container class="javax.swing.JPanel" name="jPanel1"> | |||
| <Properties> | |||
| <Property name="name" type="java.lang.String" value="Panel_Original" noResource="true"/> | |||
| </Properties> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jLabel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| <Group type="102" attributes="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <Component id="jPanel3" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
| <Group type="103" groupAlignment="0" max="-2" attributes="0"> | |||
| <Component id="jButton1" max="32767" attributes="0"/> | |||
| <Component id="jButton2" max="32767" attributes="0"/> | |||
| <Component id="jButton3" max="32767" attributes="0"/> | |||
| <Component id="jButton4" max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| <Component id="jPanel2" alignment="0" min="-2" max="-2" attributes="0"/> | |||
| </Group> | |||
| <EmptySpace min="0" pref="176" max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="1" attributes="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Component id="jPanel3" min="-2" max="-2" attributes="0"/> | |||
| <Group type="102" attributes="0"> | |||
| <Component id="jButton3" min="-2" pref="33" max="-2" attributes="0"/> | |||
| <EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
| <Component id="jButton2" min="-2" pref="36" max="-2" attributes="0"/> | |||
| <EmptySpace type="separate" max="-2" attributes="0"/> | |||
| <Component id="jButton1" min="-2" pref="33" max="-2" attributes="0"/> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jButton4" min="-2" pref="34" max="-2" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| <EmptySpace pref="27" max="32767" attributes="0"/> | |||
| <Component id="jLabel1" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="jPanel2" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace min="-2" pref="23" max="-2" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Container class="javax.swing.JPanel" name="jPanel2"> | |||
| <Properties> | |||
| <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> | |||
| <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> | |||
| <LineBorder/> | |||
| </Border> | |||
| </Property> | |||
| <Property name="name" type="java.lang.String" value="Panel_Vista_Previa" noResource="true"/> | |||
| </Properties> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <EmptySpace min="0" pref="956" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <EmptySpace min="0" pref="422" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| </Container> | |||
| <Container class="javax.swing.JPanel" name="jPanel3"> | |||
| <Properties> | |||
| <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> | |||
| <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> | |||
| <LineBorder/> | |||
| </Border> | |||
| </Property> | |||
| <Property name="name" type="java.lang.String" value="Panel_Original" noResource="true"/> | |||
| </Properties> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Component id="jLabel2" alignment="0" pref="956" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Component id="jLabel2" alignment="0" pref="422" max="32767" attributes="0"/> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Component class="javax.swing.JLabel" name="jLabel2"> | |||
| </Component> | |||
| </SubComponents> | |||
| </Container> | |||
| <Component class="javax.swing.JLabel" name="jLabel1"> | |||
| <Properties> | |||
| <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> | |||
| <Font name="Tahoma" size="14" style="0"/> | |||
| </Property> | |||
| <Property name="text" type="java.lang.String" value="VISTA PREVIA"/> | |||
| </Properties> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton1"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="Median filter"/> | |||
| <Property name="name" type="java.lang.String" value="Radius_Button" noResource="true"/> | |||
| </Properties> | |||
| <Events> | |||
| <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/> | |||
| </Events> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton2"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="Black & White"/> | |||
| </Properties> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton3"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="Cargar Imagen"/> | |||
| <Property name="name" type="java.lang.String" value="Cargar_Img" noResource="true"/> | |||
| </Properties> | |||
| <Events> | |||
| <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton3ActionPerformed"/> | |||
| </Events> | |||
| </Component> | |||
| <Component class="javax.swing.JButton" name="jButton4"> | |||
| <Properties> | |||
| <Property name="text" type="java.lang.String" value="SRM"/> | |||
| </Properties> | |||
| <Events> | |||
| <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton4ActionPerformed"/> | |||
| </Events> | |||
| </Component> | |||
| </SubComponents> | |||
| </Container> | |||
| </SubComponents> | |||
| </Form> | |||
| @ -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") | |||
| // <editor-fold defaultstate="collapsed" desc="Generated Code">//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(); | |||
| }// </editor-fold>//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 */ | |||
| //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> | |||
| /* 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); | |||
| } | |||
| //</editor-fold> | |||
| /* 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(); | |||
| } | |||
| } | |||
| @ -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(); | |||
| } | |||
| } | |||
| @ -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); | |||
| } | |||
| } | |||
| @ -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; | |||
| } | |||
| } | |||
| @ -0,0 +1,50 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> | |||
| <Properties> | |||
| <Property name="defaultCloseOperation" type="int" value="3"/> | |||
| </Properties> | |||
| <SyntheticProperties> | |||
| <SyntheticProperty name="formSizePolicy" type="int" value="1"/> | |||
| <SyntheticProperty name="generateCenter" type="boolean" value="false"/> | |||
| </SyntheticProperties> | |||
| <AuxValues> | |||
| <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> | |||
| <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> | |||
| <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> | |||
| <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> | |||
| <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> | |||
| </AuxValues> | |||
| <Layout> | |||
| <DimensionLayout dim="0"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="1" attributes="0"> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| <Component id="JMCImg" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| <DimensionLayout dim="1"> | |||
| <Group type="103" groupAlignment="0" attributes="0"> | |||
| <Group type="102" alignment="0" attributes="0"> | |||
| <EmptySpace max="-2" attributes="0"/> | |||
| <Component id="JMCImg" min="-2" max="-2" attributes="0"/> | |||
| <EmptySpace max="32767" attributes="0"/> | |||
| </Group> | |||
| </Group> | |||
| </DimensionLayout> | |||
| </Layout> | |||
| <SubComponents> | |||
| <Component class="javax.swing.JFileChooser" name="JMCImg"> | |||
| <AuxValues> | |||
| <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="9"/> | |||
| </AuxValues> | |||
| </Component> | |||
| </SubComponents> | |||
| </Form> | |||
| @ -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") | |||
| // <editor-fold defaultstate="collapsed" desc="Generated Code">//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(); | |||
| }// </editor-fold>//GEN-END:initComponents | |||
| /** | |||
| * @param args the command line arguments | |||
| */ | |||
| public static void main(String args[]) { | |||
| /* Set the Nimbus look and feel */ | |||
| //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> | |||
| /* 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); | |||
| } | |||
| //</editor-fold> | |||
| //</editor-fold> | |||
| /* 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 | |||
| } | |||