diff --git a/marvinproject/dev/MarvinPlugins/.classpath b/.classpath
similarity index 65%
rename from marvinproject/dev/MarvinPlugins/.classpath
rename to .classpath
index c280912..95f634d 100644
--- a/marvinproject/dev/MarvinPlugins/.classpath
+++ b/.classpath
@@ -1,21 +1,27 @@
-
+
-
-
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 166134d..ea8c4bf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,52 +1 @@
-# Windows image file caches
-Thumbs.db
-ehthumbs.db
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-# =========================
-# Operating System Files
-# =========================
-
-# OSX
-# =========================
-
-.DS_Store
-.AppleDouble
-.LSOverride
-
-# Thumbnails
-._*
-
-# Files that might appear on external disk
-.Spotlight-V100
-.Trashes
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-# =========================
-# ECLIPSE CONF AND BINARIES
-# =========================
-
-marvinproject/dev/.metadata/
-*.class
-*.html
-*.log
+/target
diff --git a/marvinproject/dev/MarvinFramework/.project b/.project
similarity index 100%
rename from marvinproject/dev/MarvinFramework/.project
rename to .project
diff --git a/marvinproject/dev/MarvinPlugins/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
similarity index 72%
rename from marvinproject/dev/MarvinPlugins/.settings/org.eclipse.jdt.core.prefs
rename to .settings/org.eclipse.jdt.core.prefs
index 6249222..8445b6b 100644
--- a/marvinproject/dev/MarvinPlugins/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,13 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/marvinproject/dev/MarvinFramework/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
similarity index 100%
rename from marvinproject/dev/MarvinFramework/.settings/org.eclipse.m2e.core.prefs
rename to .settings/org.eclipse.m2e.core.prefs
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..65c5ca8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/README.md b/README.md
index d2e3395..7889eae 100644
--- a/README.md
+++ b/README.md
@@ -10,4 +10,8 @@ http://marvinproject.sourceforge.net/
**DISCUSSION GROUP:**
https://groups.google.com/forum/#!forum/marvin-project
+# Javascript Version:
+**Site:** https://www.marvinj.org
+
+**Git:** https://github.com/gabrielarchanjo/marvinj
diff --git a/bin/marvin/MarvinDefinitions.class b/bin/marvin/MarvinDefinitions.class
new file mode 100644
index 0000000..9fd1f35
Binary files /dev/null and b/bin/marvin/MarvinDefinitions.class differ
diff --git a/bin/marvin/MarvinPluginCollection.class b/bin/marvin/MarvinPluginCollection.class
new file mode 100644
index 0000000..6cce3a8
Binary files /dev/null and b/bin/marvin/MarvinPluginCollection.class differ
diff --git a/bin/marvin/color/MarvinColor.class b/bin/marvin/color/MarvinColor.class
new file mode 100644
index 0000000..c7b0f39
Binary files /dev/null and b/bin/marvin/color/MarvinColor.class differ
diff --git a/bin/marvin/color/MarvinColorModelConverter.class b/bin/marvin/color/MarvinColorModelConverter.class
new file mode 100644
index 0000000..850e12e
Binary files /dev/null and b/bin/marvin/color/MarvinColorModelConverter.class differ
diff --git a/bin/marvin/gui/MarvinAttributesPanel$1.class b/bin/marvin/gui/MarvinAttributesPanel$1.class
new file mode 100644
index 0000000..ecae756
Binary files /dev/null and b/bin/marvin/gui/MarvinAttributesPanel$1.class differ
diff --git a/bin/marvin/gui/MarvinAttributesPanel$2.class b/bin/marvin/gui/MarvinAttributesPanel$2.class
new file mode 100644
index 0000000..529ed16
Binary files /dev/null and b/bin/marvin/gui/MarvinAttributesPanel$2.class differ
diff --git a/bin/marvin/gui/MarvinAttributesPanel.class b/bin/marvin/gui/MarvinAttributesPanel.class
new file mode 100644
index 0000000..0ca287a
Binary files /dev/null and b/bin/marvin/gui/MarvinAttributesPanel.class differ
diff --git a/bin/marvin/gui/MarvinEditableImagePanel$MouseHandler.class b/bin/marvin/gui/MarvinEditableImagePanel$MouseHandler.class
new file mode 100644
index 0000000..f7dda31
Binary files /dev/null and b/bin/marvin/gui/MarvinEditableImagePanel$MouseHandler.class differ
diff --git a/bin/marvin/gui/MarvinEditableImagePanel.class b/bin/marvin/gui/MarvinEditableImagePanel.class
new file mode 100644
index 0000000..0ff9a11
Binary files /dev/null and b/bin/marvin/gui/MarvinEditableImagePanel.class differ
diff --git a/bin/marvin/gui/MarvinFilterWindow$ActionHandler.class b/bin/marvin/gui/MarvinFilterWindow$ActionHandler.class
new file mode 100644
index 0000000..b9a7581
Binary files /dev/null and b/bin/marvin/gui/MarvinFilterWindow$ActionHandler.class differ
diff --git a/bin/marvin/gui/MarvinFilterWindow.class b/bin/marvin/gui/MarvinFilterWindow.class
new file mode 100644
index 0000000..395ed4d
Binary files /dev/null and b/bin/marvin/gui/MarvinFilterWindow.class differ
diff --git a/bin/marvin/gui/MarvinImagePanel.class b/bin/marvin/gui/MarvinImagePanel.class
new file mode 100644
index 0000000..3ed30cc
Binary files /dev/null and b/bin/marvin/gui/MarvinImagePanel.class differ
diff --git a/bin/marvin/gui/MarvinPluginWindow.class b/bin/marvin/gui/MarvinPluginWindow.class
new file mode 100644
index 0000000..42dd38b
Binary files /dev/null and b/bin/marvin/gui/MarvinPluginWindow.class differ
diff --git a/bin/marvin/gui/MarvinPluginWindowComponent$ComponentType.class b/bin/marvin/gui/MarvinPluginWindowComponent$ComponentType.class
new file mode 100644
index 0000000..38d8134
Binary files /dev/null and b/bin/marvin/gui/MarvinPluginWindowComponent$ComponentType.class differ
diff --git a/bin/marvin/gui/MarvinPluginWindowComponent.class b/bin/marvin/gui/MarvinPluginWindowComponent.class
new file mode 100644
index 0000000..8915c07
Binary files /dev/null and b/bin/marvin/gui/MarvinPluginWindowComponent.class differ
diff --git a/bin/marvin/gui/MarvinToolPanel$ButtonHandler.class b/bin/marvin/gui/MarvinToolPanel$ButtonHandler.class
new file mode 100644
index 0000000..401082c
Binary files /dev/null and b/bin/marvin/gui/MarvinToolPanel$ButtonHandler.class differ
diff --git a/bin/marvin/gui/MarvinToolPanel.class b/bin/marvin/gui/MarvinToolPanel.class
new file mode 100644
index 0000000..d5d0411
Binary files /dev/null and b/bin/marvin/gui/MarvinToolPanel.class differ
diff --git a/bin/marvin/gui/component/MarvinMatrixPanel.class b/bin/marvin/gui/component/MarvinMatrixPanel.class
new file mode 100644
index 0000000..be024f7
Binary files /dev/null and b/bin/marvin/gui/component/MarvinMatrixPanel.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/package.html b/bin/marvin/gui/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/package.html
rename to bin/marvin/gui/package.html
diff --git a/bin/marvin/image/MarvinBlob.class b/bin/marvin/image/MarvinBlob.class
new file mode 100644
index 0000000..354fdf1
Binary files /dev/null and b/bin/marvin/image/MarvinBlob.class differ
diff --git a/bin/marvin/image/MarvinBlobSegment.class b/bin/marvin/image/MarvinBlobSegment.class
new file mode 100644
index 0000000..e7339d4
Binary files /dev/null and b/bin/marvin/image/MarvinBlobSegment.class differ
diff --git a/bin/marvin/image/MarvinContour.class b/bin/marvin/image/MarvinContour.class
new file mode 100644
index 0000000..9637ef4
Binary files /dev/null and b/bin/marvin/image/MarvinContour.class differ
diff --git a/bin/marvin/image/MarvinImage.class b/bin/marvin/image/MarvinImage.class
new file mode 100644
index 0000000..e8d7ec4
Binary files /dev/null and b/bin/marvin/image/MarvinImage.class differ
diff --git a/bin/marvin/image/MarvinImageMap.class b/bin/marvin/image/MarvinImageMap.class
new file mode 100644
index 0000000..df78ec6
Binary files /dev/null and b/bin/marvin/image/MarvinImageMap.class differ
diff --git a/bin/marvin/image/MarvinImageMask.class b/bin/marvin/image/MarvinImageMask.class
new file mode 100644
index 0000000..2d98d1b
Binary files /dev/null and b/bin/marvin/image/MarvinImageMask.class differ
diff --git a/bin/marvin/image/MarvinSegment.class b/bin/marvin/image/MarvinSegment.class
new file mode 100644
index 0000000..509d91f
Binary files /dev/null and b/bin/marvin/image/MarvinSegment.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/package.html b/bin/marvin/image/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/package.html
rename to bin/marvin/image/package.html
diff --git a/bin/marvin/io/MarvinImageIO$1.class b/bin/marvin/io/MarvinImageIO$1.class
new file mode 100644
index 0000000..4d3dfea
Binary files /dev/null and b/bin/marvin/io/MarvinImageIO$1.class differ
diff --git a/bin/marvin/io/MarvinImageIO.class b/bin/marvin/io/MarvinImageIO.class
new file mode 100644
index 0000000..43cc68c
Binary files /dev/null and b/bin/marvin/io/MarvinImageIO.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/io/package.html b/bin/marvin/io/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/io/package.html
rename to bin/marvin/io/package.html
diff --git a/bin/marvin/machinelearning/decisiontree/DecisionTree.class b/bin/marvin/machinelearning/decisiontree/DecisionTree.class
new file mode 100644
index 0000000..b1286ba
Binary files /dev/null and b/bin/marvin/machinelearning/decisiontree/DecisionTree.class differ
diff --git a/bin/marvin/machinelearning/decisiontree/DecisionTreeNode$CONDITION.class b/bin/marvin/machinelearning/decisiontree/DecisionTreeNode$CONDITION.class
new file mode 100644
index 0000000..8dd95fc
Binary files /dev/null and b/bin/marvin/machinelearning/decisiontree/DecisionTreeNode$CONDITION.class differ
diff --git a/bin/marvin/machinelearning/decisiontree/DecisionTreeNode.class b/bin/marvin/machinelearning/decisiontree/DecisionTreeNode.class
new file mode 100644
index 0000000..c03f04b
Binary files /dev/null and b/bin/marvin/machinelearning/decisiontree/DecisionTreeNode.class differ
diff --git a/bin/marvin/math/MarvinMath.class b/bin/marvin/math/MarvinMath.class
new file mode 100644
index 0000000..61aa81b
Binary files /dev/null and b/bin/marvin/math/MarvinMath.class differ
diff --git a/bin/marvin/math/Point.class b/bin/marvin/math/Point.class
new file mode 100644
index 0000000..9d4f7e4
Binary files /dev/null and b/bin/marvin/math/Point.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/package.html b/bin/marvin/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/package.html
rename to bin/marvin/package.html
diff --git a/bin/marvin/performance/MarvinPerformanceEntry.class b/bin/marvin/performance/MarvinPerformanceEntry.class
new file mode 100644
index 0000000..86f54a2
Binary files /dev/null and b/bin/marvin/performance/MarvinPerformanceEntry.class differ
diff --git a/bin/marvin/performance/MarvinPerformanceEvent.class b/bin/marvin/performance/MarvinPerformanceEvent.class
new file mode 100644
index 0000000..b433507
Binary files /dev/null and b/bin/marvin/performance/MarvinPerformanceEvent.class differ
diff --git a/bin/marvin/performance/MarvinPerformanceMeter.class b/bin/marvin/performance/MarvinPerformanceMeter.class
new file mode 100644
index 0000000..1b73a82
Binary files /dev/null and b/bin/marvin/performance/MarvinPerformanceMeter.class differ
diff --git a/bin/marvin/performance/MarvinPerformanceRegistry.class b/bin/marvin/performance/MarvinPerformanceRegistry.class
new file mode 100644
index 0000000..531b6a2
Binary files /dev/null and b/bin/marvin/performance/MarvinPerformanceRegistry.class differ
diff --git a/bin/marvin/performance/MarvinPerformanceWindow.class b/bin/marvin/performance/MarvinPerformanceWindow.class
new file mode 100644
index 0000000..19146da
Binary files /dev/null and b/bin/marvin/performance/MarvinPerformanceWindow.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/performance/package.html b/bin/marvin/performance/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/performance/package.html
rename to bin/marvin/performance/package.html
diff --git a/bin/marvin/plugin/MarvinAbstractAlgorithmPlugin.class b/bin/marvin/plugin/MarvinAbstractAlgorithmPlugin.class
new file mode 100644
index 0000000..a89b1b9
Binary files /dev/null and b/bin/marvin/plugin/MarvinAbstractAlgorithmPlugin.class differ
diff --git a/bin/marvin/plugin/MarvinAbstractImagePlugin.class b/bin/marvin/plugin/MarvinAbstractImagePlugin.class
new file mode 100644
index 0000000..f6bd276
Binary files /dev/null and b/bin/marvin/plugin/MarvinAbstractImagePlugin.class differ
diff --git a/bin/marvin/plugin/MarvinAbstractPlugin.class b/bin/marvin/plugin/MarvinAbstractPlugin.class
new file mode 100644
index 0000000..599deec
Binary files /dev/null and b/bin/marvin/plugin/MarvinAbstractPlugin.class differ
diff --git a/bin/marvin/plugin/MarvinAbstractToolPlugin.class b/bin/marvin/plugin/MarvinAbstractToolPlugin.class
new file mode 100644
index 0000000..fdd3b82
Binary files /dev/null and b/bin/marvin/plugin/MarvinAbstractToolPlugin.class differ
diff --git a/bin/marvin/plugin/MarvinAlgorithmPlugin.class b/bin/marvin/plugin/MarvinAlgorithmPlugin.class
new file mode 100644
index 0000000..b44eb2e
Binary files /dev/null and b/bin/marvin/plugin/MarvinAlgorithmPlugin.class differ
diff --git a/bin/marvin/plugin/MarvinImagePlugin.class b/bin/marvin/plugin/MarvinImagePlugin.class
new file mode 100644
index 0000000..aeaae5a
Binary files /dev/null and b/bin/marvin/plugin/MarvinImagePlugin.class differ
diff --git a/bin/marvin/plugin/MarvinPlugin.class b/bin/marvin/plugin/MarvinPlugin.class
new file mode 100644
index 0000000..1351c9e
Binary files /dev/null and b/bin/marvin/plugin/MarvinPlugin.class differ
diff --git a/bin/marvin/plugin/MarvinToolPlugin.class b/bin/marvin/plugin/MarvinToolPlugin.class
new file mode 100644
index 0000000..934c77f
Binary files /dev/null and b/bin/marvin/plugin/MarvinToolPlugin.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/package.html b/bin/marvin/plugin/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/package.html
rename to bin/marvin/plugin/package.html
diff --git a/bin/marvin/statistic/MarvinBarChart.class b/bin/marvin/statistic/MarvinBarChart.class
new file mode 100644
index 0000000..361b433
Binary files /dev/null and b/bin/marvin/statistic/MarvinBarChart.class differ
diff --git a/bin/marvin/statistic/MarvinBarChartEntry.class b/bin/marvin/statistic/MarvinBarChartEntry.class
new file mode 100644
index 0000000..4d0c05b
Binary files /dev/null and b/bin/marvin/statistic/MarvinBarChartEntry.class differ
diff --git a/bin/marvin/statistic/MarvinHistogram.class b/bin/marvin/statistic/MarvinHistogram.class
new file mode 100644
index 0000000..0e65e63
Binary files /dev/null and b/bin/marvin/statistic/MarvinHistogram.class differ
diff --git a/bin/marvin/statistic/MarvinHistogramEntry.class b/bin/marvin/statistic/MarvinHistogramEntry.class
new file mode 100644
index 0000000..60f7930
Binary files /dev/null and b/bin/marvin/statistic/MarvinHistogramEntry.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/statistic/package.html b/bin/marvin/statistic/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/statistic/package.html
rename to bin/marvin/statistic/package.html
diff --git a/bin/marvin/test/MarvinTestCase.class b/bin/marvin/test/MarvinTestCase.class
new file mode 100644
index 0000000..79d9e81
Binary files /dev/null and b/bin/marvin/test/MarvinTestCase.class differ
diff --git a/bin/marvin/thread/MarvinThread$PluginType.class b/bin/marvin/thread/MarvinThread$PluginType.class
new file mode 100644
index 0000000..c648e72
Binary files /dev/null and b/bin/marvin/thread/MarvinThread$PluginType.class differ
diff --git a/bin/marvin/thread/MarvinThread.class b/bin/marvin/thread/MarvinThread.class
new file mode 100644
index 0000000..87fff08
Binary files /dev/null and b/bin/marvin/thread/MarvinThread.class differ
diff --git a/bin/marvin/thread/MarvinThreadEvent.class b/bin/marvin/thread/MarvinThreadEvent.class
new file mode 100644
index 0000000..1c20420
Binary files /dev/null and b/bin/marvin/thread/MarvinThreadEvent.class differ
diff --git a/bin/marvin/thread/MarvinThreadListener.class b/bin/marvin/thread/MarvinThreadListener.class
new file mode 100644
index 0000000..babb1a5
Binary files /dev/null and b/bin/marvin/thread/MarvinThreadListener.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/thread/package.html b/bin/marvin/thread/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/thread/package.html
rename to bin/marvin/thread/package.html
diff --git a/bin/marvin/util/MarvinAttributes.class b/bin/marvin/util/MarvinAttributes.class
new file mode 100644
index 0000000..a54672a
Binary files /dev/null and b/bin/marvin/util/MarvinAttributes.class differ
diff --git a/bin/marvin/util/MarvinBoundingBox.class b/bin/marvin/util/MarvinBoundingBox.class
new file mode 100644
index 0000000..e3bfa69
Binary files /dev/null and b/bin/marvin/util/MarvinBoundingBox.class differ
diff --git a/bin/marvin/util/MarvinErrorHandler$TYPE.class b/bin/marvin/util/MarvinErrorHandler$TYPE.class
new file mode 100644
index 0000000..70a350a
Binary files /dev/null and b/bin/marvin/util/MarvinErrorHandler$TYPE.class differ
diff --git a/bin/marvin/util/MarvinErrorHandler.class b/bin/marvin/util/MarvinErrorHandler.class
new file mode 100644
index 0000000..4fa6fa4
Binary files /dev/null and b/bin/marvin/util/MarvinErrorHandler.class differ
diff --git a/bin/marvin/util/MarvinFileChooser.class b/bin/marvin/util/MarvinFileChooser.class
new file mode 100644
index 0000000..c43a037
Binary files /dev/null and b/bin/marvin/util/MarvinFileChooser.class differ
diff --git a/bin/marvin/util/MarvinFileUtils.class b/bin/marvin/util/MarvinFileUtils.class
new file mode 100644
index 0000000..9a14cb4
Binary files /dev/null and b/bin/marvin/util/MarvinFileUtils.class differ
diff --git a/bin/marvin/util/MarvinImageUtils.class b/bin/marvin/util/MarvinImageUtils.class
new file mode 100644
index 0000000..6c5a829
Binary files /dev/null and b/bin/marvin/util/MarvinImageUtils.class differ
diff --git a/bin/marvin/util/MarvinJarLoader.class b/bin/marvin/util/MarvinJarLoader.class
new file mode 100644
index 0000000..7926d21
Binary files /dev/null and b/bin/marvin/util/MarvinJarLoader.class differ
diff --git a/bin/marvin/util/MarvinPluginHistory$ExportButtonHandler.class b/bin/marvin/util/MarvinPluginHistory$ExportButtonHandler.class
new file mode 100644
index 0000000..5acaf50
Binary files /dev/null and b/bin/marvin/util/MarvinPluginHistory$ExportButtonHandler.class differ
diff --git a/bin/marvin/util/MarvinPluginHistory.class b/bin/marvin/util/MarvinPluginHistory.class
new file mode 100644
index 0000000..2d14e3d
Binary files /dev/null and b/bin/marvin/util/MarvinPluginHistory.class differ
diff --git a/bin/marvin/util/MarvinPluginLoader.class b/bin/marvin/util/MarvinPluginLoader.class
new file mode 100644
index 0000000..0cbf0e7
Binary files /dev/null and b/bin/marvin/util/MarvinPluginLoader.class differ
diff --git a/bin/marvin/util/MarvinStringParser.class b/bin/marvin/util/MarvinStringParser.class
new file mode 100644
index 0000000..fa9af4c
Binary files /dev/null and b/bin/marvin/util/MarvinStringParser.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/package.html b/bin/marvin/util/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/package.html
rename to bin/marvin/util/package.html
diff --git a/bin/marvin/video/MarvinJavaCVAdapter$MODE.class b/bin/marvin/video/MarvinJavaCVAdapter$MODE.class
new file mode 100644
index 0000000..aa8bb09
Binary files /dev/null and b/bin/marvin/video/MarvinJavaCVAdapter$MODE.class differ
diff --git a/bin/marvin/video/MarvinJavaCVAdapter.class b/bin/marvin/video/MarvinJavaCVAdapter.class
new file mode 100644
index 0000000..8403822
Binary files /dev/null and b/bin/marvin/video/MarvinJavaCVAdapter.class differ
diff --git a/bin/marvin/video/MarvinVideoInterface.class b/bin/marvin/video/MarvinVideoInterface.class
new file mode 100644
index 0000000..7451acb
Binary files /dev/null and b/bin/marvin/video/MarvinVideoInterface.class differ
diff --git a/bin/marvin/video/MarvinVideoInterfaceException.class b/bin/marvin/video/MarvinVideoInterfaceException.class
new file mode 100644
index 0000000..e021f0a
Binary files /dev/null and b/bin/marvin/video/MarvinVideoInterfaceException.class differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/video/package.html b/bin/marvin/video/package.html
similarity index 100%
rename from marvinproject/dev/MarvinFramework/src/marvin/video/package.html
rename to bin/marvin/video/package.html
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..f0b4c1c
--- /dev/null
+++ b/build.bat
@@ -0,0 +1 @@
+mvn clean package
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinEditor/marvin/framework/lib/junit-4.7.jar b/lib/junit-4.7.jar
similarity index 100%
rename from marvinproject/dev/MarvinEditor/marvin/framework/lib/junit-4.7.jar
rename to lib/junit-4.7.jar
diff --git a/marvinproject/dev/MarvinEditor/.classpath b/marvinproject/dev/MarvinEditor/.classpath
deleted file mode 100644
index 6a876a7..0000000
--- a/marvinproject/dev/MarvinEditor/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/marvinproject/dev/MarvinEditor/.project b/marvinproject/dev/MarvinEditor/.project
deleted file mode 100644
index cf8aa5d..0000000
--- a/marvinproject/dev/MarvinEditor/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- MarvinEditor
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- net.sourceforge.metrics.builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- net.sourceforge.metrics.nature
-
-
diff --git a/marvinproject/dev/MarvinEditor/conf/conf.xml b/marvinproject/dev/MarvinEditor/conf/conf.xml
deleted file mode 100644
index 0213476..0000000
--- a/marvinproject/dev/MarvinEditor/conf/conf.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
diff --git a/marvinproject/dev/MarvinEditor/marvin/framework/marvin_1.4.0.jar b/marvinproject/dev/MarvinEditor/marvin/framework/marvin_1.4.0.jar
deleted file mode 100644
index 1575d1d..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/framework/marvin_1.4.0.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar
deleted file mode 100644
index cf9294b..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.artistic.television.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.artistic.television.jar
deleted file mode 100644
index 38bfeb9..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.artistic.television.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar
deleted file mode 100644
index 3773018..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar
deleted file mode 100644
index cfc75e2..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar
deleted file mode 100644
index 0e2abad..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.emboss.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.emboss.jar
deleted file mode 100644
index be8ef7c..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.emboss.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar
deleted file mode 100644
index ec9717b..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.invert.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.invert.jar
deleted file mode 100644
index 827f7bd..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.invert.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.sepia.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.sepia.jar
deleted file mode 100644
index 77805e8..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.sepia.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar
deleted file mode 100644
index fb91a5e..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar
deleted file mode 100644
index 9eb3c6c..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar
deleted file mode 100644
index af6bc96..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar
deleted file mode 100644
index 10e1d9a..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.convolution.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.convolution.jar
deleted file mode 100644
index de37a13..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.convolution.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar
deleted file mode 100644
index f01b8e6..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar
deleted file mode 100644
index 40f9679..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar
deleted file mode 100644
index c8278e8..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar
deleted file mode 100644
index 7123cb0..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar
deleted file mode 100644
index ef2a2ef..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar
deleted file mode 100644
index ea09b31..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar
deleted file mode 100644
index c5d2728..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar
deleted file mode 100644
index d2f9daa..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar
deleted file mode 100644
index 92a3af4..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar
deleted file mode 100644
index aa1a4f4..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar
deleted file mode 100644
index 76370e0..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar
deleted file mode 100644
index b2abee3..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar
deleted file mode 100644
index 8e3d9bd..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar
deleted file mode 100644
index 2cae9d1..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar
deleted file mode 100644
index c6c3f32..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar
deleted file mode 100644
index f82b0d7..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar
deleted file mode 100644
index 36e5136..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar
deleted file mode 100644
index 97a1c95..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar
deleted file mode 100644
index 8679c8b..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar
deleted file mode 100644
index 57c4099..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar
deleted file mode 100644
index d9fd252..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar
deleted file mode 100644
index f5ca0ae..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar
deleted file mode 100644
index 8bea94a..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar
deleted file mode 100644
index 67ddd04..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar
deleted file mode 100644
index 2990a7d..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar
deleted file mode 100644
index 222020f..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar
deleted file mode 100644
index 3315777..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar
deleted file mode 100644
index 6d04f43..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar
deleted file mode 100644
index 6e35959..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.marvinLogo.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.marvinLogo.jar
deleted file mode 100644
index 657a766..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.marvinLogo.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.text.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.text.jar
deleted file mode 100644
index 8018868..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.render.text.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar
deleted file mode 100644
index 2b8c9ad..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar
deleted file mode 100644
index 42c56ac..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar
deleted file mode 100644
index 26a232a..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar
deleted file mode 100644
index ad5bcd3..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.median.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.median.jar
deleted file mode 100644
index ab5d130..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.median.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar
deleted file mode 100644
index f7e4c4c..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar
deleted file mode 100644
index 7ad3ec4..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.steganography.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.steganography.jar
deleted file mode 100644
index 4c4989c..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.steganography.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.subtract.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.subtract.jar
deleted file mode 100644
index 7f81aec..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.subtract.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar
deleted file mode 100644
index f18fb95..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.erode.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.erode.jar
deleted file mode 100644
index a34c7f4..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.erode.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.findObjects.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.findObjects.jar
deleted file mode 100644
index b04ba7e..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.findObjects.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.mw.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.mw.jar
deleted file mode 100644
index 4ee0575..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.mw.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.plugin.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.plugin.jar
deleted file mode 100644
index fa68662..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.test.plugin.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar
deleted file mode 100644
index d025ce1..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.flip.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.flip.jar
deleted file mode 100644
index edffea9..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.flip.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar
deleted file mode 100644
index cca9ee3..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.scale.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.scale.jar
deleted file mode 100644
index e32e7ab..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.scale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.skew.jar b/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.skew.jar
deleted file mode 100644
index cf9b99d..0000000
Binary files a/marvinproject/dev/MarvinEditor/marvin/plugins/image/org.marvinproject.image.transform.skew.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/about.png b/marvinproject/dev/MarvinEditor/res/icons/application/about.png
deleted file mode 100644
index e968ace..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/about.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/exit.png b/marvinproject/dev/MarvinEditor/res/icons/application/exit.png
deleted file mode 100644
index 17ea900..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/exit.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/history.png b/marvinproject/dev/MarvinEditor/res/icons/application/history.png
deleted file mode 100644
index f40d084..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/history.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/newFile.png b/marvinproject/dev/MarvinEditor/res/icons/application/newFile.png
deleted file mode 100644
index 4133ed2..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/newFile.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/open.png b/marvinproject/dev/MarvinEditor/res/icons/application/open.png
deleted file mode 100644
index 3dcd68c..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/open.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/reset.png b/marvinproject/dev/MarvinEditor/res/icons/application/reset.png
deleted file mode 100644
index c98194d..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/reset.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/save.png b/marvinproject/dev/MarvinEditor/res/icons/application/save.png
deleted file mode 100644
index 63eac2b..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/save.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/application/saveas.png b/marvinproject/dev/MarvinEditor/res/icons/application/saveas.png
deleted file mode 100644
index 0a8fdd0..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/application/saveas.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/artistic.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/artistic.png
deleted file mode 100644
index 2913ab9..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/artistic.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/brightnessContrast.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/brightnessContrast.png
deleted file mode 100644
index 84cfe79..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/brightnessContrast.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/circles.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/circles.png
deleted file mode 100644
index f295ba8..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/circles.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/colorHistogram.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/colorHistogram.png
deleted file mode 100644
index 77cd38f..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/colorHistogram.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/combine.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/combine.png
deleted file mode 100644
index d22e59a..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/combine.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/difference.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/difference.png
deleted file mode 100644
index 66a7206..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/difference.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/dithering.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/dithering.png
deleted file mode 100644
index d8f82c5..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/dithering.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/edgeDetector.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/edgeDetector.png
deleted file mode 100644
index 86c483f..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/edgeDetector.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/errorDiffusion.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/errorDiffusion.png
deleted file mode 100644
index 15dae05..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/errorDiffusion.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/flip.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/flip.png
deleted file mode 100644
index 656a213..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/flip.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/gaussianBlur.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/gaussianBlur.png
deleted file mode 100644
index ca3f8b4..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/gaussianBlur.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/gray.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/gray.png
deleted file mode 100644
index e6079db..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/gray.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/grayGradient.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/grayGradient.png
deleted file mode 100644
index a241089..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/grayGradient.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/imageSlicer.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/imageSlicer.png
deleted file mode 100644
index c61c8bb..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/imageSlicer.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/mosaic.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/mosaic.png
deleted file mode 100644
index fa7dfd1..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/mosaic.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/negative - Copy.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/negative - Copy.png
deleted file mode 100644
index eafa606..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/negative - Copy.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/negative.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/negative.png
deleted file mode 100644
index fffb324..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/negative.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/noiseReduction.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/noiseReduction.png
deleted file mode 100644
index d0e0bf9..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/noiseReduction.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/pixelize.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/pixelize.png
deleted file mode 100644
index 1406c4e..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/pixelize.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/rotate.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/rotate.png
deleted file mode 100644
index ec06434..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/rotate.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/rylanders.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/rylanders.png
deleted file mode 100644
index c9884f3..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/rylanders.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/scale.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/scale.png
deleted file mode 100644
index 7f24189..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/scale.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/skew.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/skew.png
deleted file mode 100644
index 8e36eeb..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/skew.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/steganography.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/steganography.png
deleted file mode 100644
index 80467cf..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/steganography.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/television.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/television.png
deleted file mode 100644
index 969004d..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/television.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/icons/plugins/thresholding.png b/marvinproject/dev/MarvinEditor/res/icons/plugins/thresholding.png
deleted file mode 100644
index 7358d8f..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/icons/plugins/thresholding.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/about.png b/marvinproject/dev/MarvinEditor/res/images/about.png
deleted file mode 100644
index 95b00f7..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/about.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/arara.jpg b/marvinproject/dev/MarvinEditor/res/images/arara.jpg
deleted file mode 100644
index a2f1eb7..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/arara.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/gisele.jpg b/marvinproject/dev/MarvinEditor/res/images/gisele.jpg
deleted file mode 100644
index 31a719c..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/gisele.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/landscape.jpg b/marvinproject/dev/MarvinEditor/res/images/landscape.jpg
deleted file mode 100644
index 4dc6772..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/landscape.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/penelope.jpg b/marvinproject/dev/MarvinEditor/res/images/penelope.jpg
deleted file mode 100644
index ccfd8f3..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/penelope.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/senna.jpg b/marvinproject/dev/MarvinEditor/res/images/senna.jpg
deleted file mode 100644
index f9a20cf..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/senna.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/res/images/tucano.jpg b/marvinproject/dev/MarvinEditor/res/images/tucano.jpg
deleted file mode 100644
index dd68788..0000000
Binary files a/marvinproject/dev/MarvinEditor/res/images/tucano.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinEditor/src/AboutDialog.java b/marvinproject/dev/MarvinEditor/src/AboutDialog.java
deleted file mode 100644
index 33cbcb4..0000000
--- a/marvinproject/dev/MarvinEditor/src/AboutDialog.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-import java.awt.Frame;
-
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JTextArea;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinPluginLoader;
-
-/**
- * Project´s about dialog.
- * @version 1.0 29/01/09
- * @author Fabio Andrijaukas
- * @author Gabriel Ambrósio Archanjo
- * @author Danilo Rosetto Muńoz
- */
-public class AboutDialog extends JDialog implements Runnable{
- private Thread thread;
- private MarvinImagePlugin[] arrPlugin;
- private MarvinImagePanel imagePanel;
- private MarvinImage imageIn,
- imageOut;
- private int currentPlugin;
-
- /**
- * Constructs a new AboutDialog with the specified Frame as its owner.
- * @param owner the Frame from which the dialog is displayed
- */
- public AboutDialog(Frame a_owner){
- super(a_owner);
- setTitle("MARVIN - About");
-
- imageIn = MarvinImageIO.loadImage("./res/images/about.png");
- imageOut = new MarvinImage(imageIn.getWidth(), imageIn.getHeight());
-
- imagePanel = new MarvinImagePanel();
- imagePanel.setImage(imageIn);
-
- arrPlugin = new MarvinImagePlugin[7];
- arrPlugin[0] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.invert.jar");
- arrPlugin[1] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.sepia.jar");
- arrPlugin[2] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.halftone.errorDiffusion.jar");
- arrPlugin[3] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.statistical.Median.jar");
- arrPlugin[4] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.grayScale.jar");
- arrPlugin[4].setAttribute("size", 1);
- arrPlugin[5] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.edge.EdgeDetector.jar");
- arrPlugin[6] = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.transform.flip.jar");
- add(imagePanel);
-
- setSize(imageIn.getWidth(),imageIn.getHeight()+40);
- setVisible(true);
-
- thread = new Thread(this);
- thread.start();
-
- /*
- setSize(550, 360);
- setLayout(new BorderLayout());
- setLocationRelativeTo(getOwner());
-
- Container container = getContentPane();
-
- //Marvin banner
- lblBannerMarvin = new JLabel();
- lblBannerMarvin.setBackground(container.getBackground());
-
- File l_fileMarvinBanner = new File("./rsc/marvinBanner.png");
-
- if (l_fileMarvinBanner.exists()){
- try {
- lblBannerMarvin.setIcon(new ImageIcon(l_fileMarvinBanner.getCanonicalPath()));
- } catch (IOException e1) {
- //Error while loading the Marvin banner. Let show about dialog without banner
- }
- }
- //Top text
- String l_strText = "";
- l_strText += " MARVIN Project\n\n";
- l_strText += " Initial version by:\n";
- l_strText += " Danilo Rosetto Muńoz\n";
- l_strText += " Fabio Andrijauskas\n";
- l_strText += " Gabriel Ambrósio Archanjo\n\n";
-
- l_strText += " site: http://marvinproject.sourceforge.net\n";
- l_strText += " \n\n";
-
- l_strText += " Marvin Copyright (C) 2007\n";
- l_strText += " Marvin comes with ABSOLUTELY NO WARRANTY;\n";
- l_strText += " This is free software, and you are welcome to redistribute it\n";
- l_strText += " under certain conditions.";
-
- //GPL text
- txtAbout = new JTextArea(l_strText);
- txtAbout.setEditable(false);
- txtAbout.setBackground(container.getBackground());
- txtAbout.setAlignmentX(JTextArea.CENTER_ALIGNMENT);
- txtAbout.setAlignmentY(JTextArea.CENTER_ALIGNMENT);
-
- container.add(lblBannerMarvin, BorderLayout.WEST);
- container.add(txtAbout, BorderLayout.CENTER);
- */
- }
-
- public void run(){
- while(true){
-
- if(currentPlugin == 0){
- MarvinImage.copyColorArray(imageIn, imageOut);
- }
- else{
- arrPlugin[currentPlugin-1].process(imageIn,imageOut,null,MarvinImageMask.NULL_MASK, false);
- }
- imageOut.update();
- imagePanel.setImage(imageOut);
-
- currentPlugin++;
- if(currentPlugin == arrPlugin.length+1){
- currentPlugin = 0;
- }
-
- try{
- Thread.sleep(700);
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinEditor/src/MarvinEditor.java b/marvinproject/dev/MarvinEditor/src/MarvinEditor.java
deleted file mode 100644
index 9353d25..0000000
--- a/marvinproject/dev/MarvinEditor/src/MarvinEditor.java
+++ /dev/null
@@ -1 +0,0 @@
-/**
Marvin Project <2007-2013>
http://www.marvinproject.org
License information:
http://marvinproject.sourceforge.net/en/license.html
Discussion group:
https://groups.google.com/forum/#!forum/marvin-project
*/
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.border.TitledBorder;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import marvin.gui.MarvinFilterWindow;
import marvin.gui.MarvinImagePanel;
import marvin.image.MarvinImage;
import marvin.io.MarvinImageIO;
import marvin.performance.MarvinPerformanceMeter;
import marvin.plugin.MarvinImagePlugin;
import marvin.util.MarvinErrorHandler;
import marvin.util.MarvinFileChooser;
import marvin.util.MarvinPluginLoader;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* Marvin Image Editor Application.
* @version 1.0 29/01/09
* @author Fabio Andrijaukas
* @author Gabriel Ambrósio Archanjo
* @author Danilo Rosetto Muńoz
*/
public class MarvinEditor extends JFrame {
// Constants
private final static String ICONS_PLUGINS_PATH = "./res/icons/plugins/";
private final static String ICONS_APPLICATION_PATH = "./res/icons/application/";
private final static String INITIAL_IMAGE = "./res/images/tucano.jpg";
private final static String PATH_FILTERS = "./marvin/plugins/image";
private final static String PATH_ANALYSES = "./lib/plugins/analyses";
private final static String MARVIN_EDITOR_VERSION = "1.3.1";
// GUI's components
private JPanel panelMain;
private TitledBorder titlep;
private ImageIcon imageIcon;
//private JLabel lblImage;
private MarvinImagePanel imagePanel;
private JScrollPane imageScrollPane;
JMenuBar menuBar;
// Menu
JMenu jmnFile,
jmnHelp,
jmnEdit,
jmnFilters,
jmnAnalyses,
jmnHistory;
// MenuItens
JMenuItem jmiNew,
jmiOpen,
jmiSave,
jmiSaveAs,
jmiExit,
jmiShowHistory,
jmiReset,
jmiJavadoc,
jmiAbout;
// Access to the files and filters
private File imgway;
// Reflection receiving class
private Class> myClass;
private MarvinImage image, originalImage; // Control and image manipulating class
private String currentFilePath;
private MarvinPerformanceMeter performanceMeter; // Marvin plug-in progress
private MarvinEditor marvin; // Pointer to itself
private NewFileDialog newFileDialog;
private MenuHandler menuHandler;
/**
* Constructs Marvin main class with arguments
*
* @param a_args Arguments
*
* NOTE: Marvin supports 2 arguments at initialization:
* {@code windowBounds(x, y, width, height)} and {@code windowState(state)}.
*
* These arguments are useful when it's working with 2 screens.
* Assume second screen is set like "LEFT" and it has 1024x768 resolution.
* It's possible opening Marvin directly to the second screen:
*
* java -cp ".";"./bin" kernel.Marvin windowBounds(-1024,0,800,600) windowState(max)
*
* This way could help in working source code and IDE with the main screen and testing Marvin in other one.
*/
public MarvinEditor(String a_args[]) {
super("MARVIN");
loadMenuBar(); // Menu bars
panelMain = new JPanel();
titlep = BorderFactory.createTitledBorder("Image");
panelMain.setBorder(titlep);
panelMain.setSize(600, 600);
panelMain.setLayout(new BorderLayout());
add(panelMain);
imagePanel = new MarvinImagePanel();
imagePanel.enableHistory();
imagePanel.setImage(image);
imageScrollPane = new JScrollPane(imagePanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panelMain.add(imageScrollPane);
// loads the File Chooser class.
new JFileChooser();
//performanceMeter = new MarvinPerformanceMeter();
//add(performanceMeter.getPanel(), BorderLayout.SOUTH);
newImage(500,500);
treatArgs(a_args);
marvin = this;
setSize(800,600); // Default size
setVisible(true);
}
private void loadPluginMenu(String a_tag, JMenuItem a_menuItem, ActionListener a_listener){
try{
File file = new File("./conf/conf.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeLst = doc.getElementsByTagName(a_tag);
nodeLst = ((Element)nodeLst.item(0)).getElementsByTagName("item");
NodeList l_listEntries;
JMenu l_currentMenu;
JMenuItem l_currentMenuItem;
String l_icon;
for(int s = 0; s < nodeLst.getLength(); s++){
Node fstNode = nodeLst.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE){
Element fstElmnt = (Element) fstNode;
l_currentMenu = new JMenu(fstElmnt.getAttribute("name"));
l_currentMenu.add(new JSeparator(JSeparator.VERTICAL));
a_menuItem.add(l_currentMenu);
l_listEntries = fstElmnt.getElementsByTagName("entry");
for(int w=0; w
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-
-
-public class NewFileDialog extends JDialog{
-
- private JLabel labelWidth,
- labelHeight;
-
- private JTextField textWidth,
- textHeight;
-
- private JButton buttonOk;
-
- private MarvinEditor marvinEditor;
-
-
- public NewFileDialog(MarvinEditor parent, String title){
- super(parent, title, JDialog.ModalityType.APPLICATION_MODAL);
- this.marvinEditor = parent;
- loadGUI();
- }
-
- private void loadGUI(){
- labelWidth = new JLabel("width:");
- labelHeight = new JLabel("height:");
-
- textWidth = new JTextField(5);
- textHeight = new JTextField(5);
-
- buttonOk = new JButton("OK");
-
- JPanel panelNorth = new JPanel();
- panelNorth.setLayout(new FlowLayout());
- panelNorth.add(labelWidth);
- panelNorth.add(textWidth);
- panelNorth.add(labelHeight);
- panelNorth.add(textHeight);
-
- JPanel panelSouth = new JPanel();
- panelSouth.setLayout(new FlowLayout(FlowLayout.CENTER));
- panelSouth.add(buttonOk);
-
-
- Container c = getContentPane();
- c.setLayout(new BorderLayout());
- c.add(panelNorth, BorderLayout.NORTH);
- c.add(panelSouth, BorderLayout.SOUTH);
-
-
- // button Listener
- buttonOk.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- boolean success = false;
- try{
- int width = Integer.parseInt(textWidth.getText());
- int height = Integer.parseInt(textHeight.getText());
-
- if(width >= 0 && height >= 0){
- marvinEditor.newImage(width, height);
- getDialog().dispose();
- success = true;
- }
-
- }
- catch(Exception ex){
- success = false;
- }
-
- if(!success){
- JOptionPane.showMessageDialog(null, "Invalid width or height",
- "Marvin", JOptionPane.ERROR_MESSAGE);
- }
- }
- });
-
-
- setSize(300,100);
- setVisible(true);
- }
-
- public JDialog getDialog(){
- return this;
- }
-}
-
diff --git a/marvinproject/dev/MarvinFramework/.classpath b/marvinproject/dev/MarvinFramework/.classpath
deleted file mode 100644
index 9143fd3..0000000
--- a/marvinproject/dev/MarvinFramework/.classpath
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/marvinproject/dev/MarvinFramework/.gitignore b/marvinproject/dev/MarvinFramework/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/marvinproject/dev/MarvinFramework/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target
diff --git a/marvinproject/dev/MarvinFramework/.settings/org.eclipse.jdt.core.prefs b/marvinproject/dev/MarvinFramework/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6249222..0000000
--- a/marvinproject/dev/MarvinFramework/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/marvinproject/dev/MarvinFramework/lib/junit-4.7.jar b/marvinproject/dev/MarvinFramework/lib/junit-4.7.jar
deleted file mode 100644
index 700ad69..0000000
Binary files a/marvinproject/dev/MarvinFramework/lib/junit-4.7.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar
deleted file mode 100644
index 0dc4c7e..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.artistic.television.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.artistic.television.jar
deleted file mode 100644
index bad8cc5..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.artistic.television.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar
deleted file mode 100644
index 9dce87f..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar
deleted file mode 100644
index a51fb09..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar
deleted file mode 100644
index a385e9b..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar
deleted file mode 100644
index ec0bf27..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar
deleted file mode 100644
index 954f7ae..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar
deleted file mode 100644
index fded99d..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar
deleted file mode 100644
index 09737ff..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar
deleted file mode 100644
index 2146373..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.emboss.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.emboss.jar
deleted file mode 100644
index 040db78..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.emboss.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar
deleted file mode 100644
index a5f6774..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.invert.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.invert.jar
deleted file mode 100644
index 605c581..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.invert.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.sepia.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.sepia.jar
deleted file mode 100644
index 22bb3e0..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.sepia.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar
deleted file mode 100644
index 0639b08..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar
deleted file mode 100644
index 62bcff3..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar
deleted file mode 100644
index 9c0dbe2..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar
deleted file mode 100644
index 817297c..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar
deleted file mode 100644
index 1b6d2c3..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar
deleted file mode 100644
index 24235cb..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.convolution.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.convolution.jar
deleted file mode 100644
index 3bd7250..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.convolution.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.harris.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.harris.jar
deleted file mode 100644
index 0180e38..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.harris.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar
deleted file mode 100644
index c6a9ef1..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.susan.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.susan.jar
deleted file mode 100644
index 4f77778..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.corner.susan.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar
deleted file mode 100644
index 969d023..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar
deleted file mode 100644
index 79c834a..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar
deleted file mode 100644
index 74c0caa..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar
deleted file mode 100644
index c29526e..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar
deleted file mode 100644
index 59e68ed..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar
deleted file mode 100644
index f506570..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar
deleted file mode 100644
index 9780a63..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar
deleted file mode 100644
index 8faf166..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar
deleted file mode 100644
index 426b5bb..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar
deleted file mode 100644
index 3000cc3..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar
deleted file mode 100644
index 09ebd47..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar
deleted file mode 100644
index 81d5ab0..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar
deleted file mode 100644
index c209e93..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar
deleted file mode 100644
index 91ee401..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar
deleted file mode 100644
index 6e59c5d..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar
deleted file mode 100644
index 60e0ed6..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar
deleted file mode 100644
index 6882aca..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar
deleted file mode 100644
index 680ef40..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar
deleted file mode 100644
index ad104e4..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar
deleted file mode 100644
index 2ce6d97..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar
deleted file mode 100644
index 0679e16..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar
deleted file mode 100644
index d90b58d..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar
deleted file mode 100644
index 662f4ee..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar
deleted file mode 100644
index ceed1ff..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar
deleted file mode 100644
index 78e858a..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar
deleted file mode 100644
index 15c8b0b..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar
deleted file mode 100644
index 8d403ec..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar
deleted file mode 100644
index 6758bb4..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar
deleted file mode 100644
index af7f531..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar
deleted file mode 100644
index 397ce83..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar
deleted file mode 100644
index 9768a44..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar
deleted file mode 100644
index 618ceba..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar
deleted file mode 100644
index 63c0f5a..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar
deleted file mode 100644
index 0809cf0..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.text.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.text.jar
deleted file mode 100644
index cd2a577..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.render.text.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar
deleted file mode 100644
index 6a45cd9..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar
deleted file mode 100644
index 15cf0ae..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar
deleted file mode 100644
index a199a31..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar
deleted file mode 100644
index bdb9964..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar
deleted file mode 100644
index c11bc8d..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.median.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.median.jar
deleted file mode 100644
index fca64a5..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.median.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar
deleted file mode 100644
index 1f9f0cf..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar
deleted file mode 100644
index 1b80da9..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.steganography.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.steganography.jar
deleted file mode 100644
index a8c702d..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.steganography.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.subtract.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.subtract.jar
deleted file mode 100644
index 9b3a9a0..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.subtract.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar
deleted file mode 100644
index 6d452d6..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.test.plugin.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.test.plugin.jar
deleted file mode 100644
index fb7cd45..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.test.plugin.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar
deleted file mode 100644
index 09a6d52..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.flip.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.flip.jar
deleted file mode 100644
index a2be3d6..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.flip.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar
deleted file mode 100644
index 0bc69b6..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.scale.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.scale.jar
deleted file mode 100644
index fd4a422..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.scale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.skew.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.skew.jar
deleted file mode 100644
index 517d35b..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.skew.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar
deleted file mode 100644
index d95f204..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.ml.kmeans.jar b/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.ml.kmeans.jar
deleted file mode 100644
index 4e5ac8a..0000000
Binary files a/marvinproject/dev/MarvinFramework/marvin/plugins/image/org.marvinproject.ml.kmeans.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/res/arara.jpg b/marvinproject/dev/MarvinFramework/res/arara.jpg
deleted file mode 100644
index a2f1eb7..0000000
Binary files a/marvinproject/dev/MarvinFramework/res/arara.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/res/arara.png b/marvinproject/dev/MarvinFramework/res/arara.png
deleted file mode 100644
index cc337b8..0000000
Binary files a/marvinproject/dev/MarvinFramework/res/arara.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/res/senna.jpg b/marvinproject/dev/MarvinFramework/res/senna.jpg
deleted file mode 100644
index f9a20cf..0000000
Binary files a/marvinproject/dev/MarvinFramework/res/senna.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/res/tucano.jpg b/marvinproject/dev/MarvinFramework/res/tucano.jpg
deleted file mode 100644
index 8a27237..0000000
Binary files a/marvinproject/dev/MarvinFramework/res/tucano.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/MarvinPluginCollection.java b/marvinproject/dev/MarvinFramework/src/marvin/MarvinPluginCollection.java
deleted file mode 100644
index 8b382ab..0000000
--- a/marvinproject/dev/MarvinFramework/src/marvin/MarvinPluginCollection.java
+++ /dev/null
@@ -1,1241 +0,0 @@
-package marvin;
-
-import java.awt.Color;
-import java.util.List;
-
-import marvin.image.MarvinBlobSegment;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.image.MarvinSegment;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.util.MarvinPluginLoader;
-
-//public class MarvinPluginCollection {
-//
-// private static MarvinImagePlugin alphaBoundary,
-// blackAndWhite,
-// brightnessAndContrast,
-// boundaryFill,
-// colorChannel,
-// combineByMask,
-// combineByTransparency,
-// convolution,
-// crop,
-// determineSceneBackground,
-// emboss,
-// findSubimage,
-// findTextRegions,
-// flip,
-// floodfillSegmentation,
-// gaussianBlur,
-// grayScale,
-// harris,
-// histogramEqualization,
-// halftoneCircles,
-// halftoneDithering,
-// halftoneErrorDiffusion,
-// halftoneRylanders,
-// imageSlicer,
-// invertColors,
-// iteratedFuncionSystems,
-// juliaSet,
-// lindenmayer,
-// mandelbrot,
-// mergePhotos,
-// moravec,
-// morphologicalBoundary,
-// morphologicalClosing,
-// morphologicalDilation,
-// morphologicalErosion,
-// morphologicalOpening,
-// morphologicalThinning,
-// mosaic,
-// pixelize,
-// prewitt,
-// quantizationGrayScale,
-// roberts,
-// rotate,
-// scale,
-// sobel,
-// skew,
-// sepia,
-// statisticalMaximum,
-// statisticalMedian,
-// statisticalMinimum,
-// statisticalMode,
-// subtract,
-// susan,
-// skinColorDetection,
-// television,
-// tileTexture,
-// thresholding,
-// thresholdingNeighborhood,
-// watershed;
-//
-// private static boolean[][] boolean_3x3 = new boolean[][]{
-// {true,true,true},
-// {true,true,true},
-// {true,true,true}
-// };
-//
-// /*==============================================================================================
-// | ALPHA BOUNDARY
-// ==============================================================================================*/
-// /**
-// * Applies a gradient transparency to boundary pixels
-// * @param imageIn input image
-// * @param radius transparency radius
-// */
-// public static void alphaBoundary(MarvinImage imageIn, int radius){
-// alphaBoundary(imageIn.clone(), imageIn, radius);
-// }
-//
-// /**
-// * Applies a gradient transparency to boundary pixels
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param radius transparency radius
-// */
-// public static void alphaBoundary(MarvinImage imageIn, MarvinImage imageOut, int radius){
-// alphaBoundary = checkAndLoadImagePlugin(alphaBoundary, "org.marvinproject.image.color.alphaBoundary");
-// alphaBoundary.setAttribute("radius", radius);
-// alphaBoundary.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | BLACK AND WHITE
-// ==============================================================================================*/
-//
-// /**
-// * Converts image to black and white.
-// * @param imageIn input image
-// * @param level black and white level
-// */
-// public static void blackAndWhite(MarvinImage image, int level){
-// blackAndWhite(image, image, level);
-// }
-//
-// /**
-// * Converts image to black and white.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param level black and white level
-// */
-// public static void blackAndWhite(MarvinImage imageIn, MarvinImage imageOut, int level){
-// blackAndWhite(imageIn, imageOut, level, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Converts image to black and white.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param level black and white level
-// * @param mask pixel mask
-// */
-// public static void blackAndWhite(MarvinImage imageIn, MarvinImage imageOut, int level, MarvinImageMask mask){
-// blackAndWhite = checkAndLoadImagePlugin(blackAndWhite, "org.marvinproject.image.color.blackAndWhite");
-// blackAndWhite.setAttribute("level", level);
-// blackAndWhite.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | BOUNDARY FILL
-// ==============================================================================================*/
-// /**
-// * Fills a closed region of an image, given a start x,y coordinate. The region might be filled with a color or a texture tile.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param x fill start X
-// * @param y fill start Y
-// * @param color color
-// */
-// public static void boundaryFill(MarvinImage imageIn, MarvinImage imageOut, int x, int y, Color color){
-// boundaryFill(imageIn, imageOut, x, y, color, null, 0);
-// }
-//
-// /**
-// * Fills a closed region of an image, given a start x,y coordinate. The region might be filled with a color or a texture tile.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param x fill start X
-// * @param y fill start Y
-// * @param color color
-// * @param threshold accepted threshold to the specified color.
-// */
-// public static void boundaryFill(MarvinImage imageIn, MarvinImage imageOut, int x, int y, Color color, int threshold){
-// boundaryFill(imageIn, imageOut, x, y, color, null, threshold);
-// }
-//
-// /**
-// * Fills a closed region of an image, given a start x,y coordinate. The region might be filled with a color or a texture tile.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param x fill start X
-// * @param y fill start Y
-// * @param color color
-// * @param tile tile image for texture based filling
-// * @param threshold accepted threshold to the specified color.
-// */
-// public static void boundaryFill(MarvinImage imageIn, MarvinImage imageOut, int x, int y, Color color, MarvinImage tile, int threshold){
-// boundaryFill = checkAndLoadImagePlugin(boundaryFill, "org.marvinproject.image.fill.boundaryFill");
-// boundaryFill.setAttribute("x", x);
-// boundaryFill.setAttribute("y", y);
-// boundaryFill.setAttribute("color", color);
-// boundaryFill.setAttribute("tile", tile);
-// boundaryFill.setAttribute("threshold", threshold);
-// boundaryFill.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | BRIGHTNESS AND CONTRAST
-// ==============================================================================================*/
-// /**
-// * Manipulate image brightness and contrast
-// * @param imageIn input image
-// * @param brightness brightness variation [-127, 127]
-// * @param contrast contrast variation [-127, 127]
-// */
-// public static void brightnessAndContrast(MarvinImage image, int brightness, int contrast){
-// brightnessAndContrast(image, image, brightness, contrast);
-// }
-//
-// /**
-// * Manipulate image brightness and contrast
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param brightness brightness variation [-127, 127]
-// * @param contrast contrast variation [-127, 127]
-// */
-// public static void brightnessAndContrast(MarvinImage imageIn, MarvinImage imageOut, int brightness, int contrast){
-// brightnessAndContrast(imageIn, imageOut, brightness, contrast, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Manipulate image brightness and contrast
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param brightness brightness variation [-127, 127]
-// * @param contrast contrast variation [-127, 127]
-// * @param mask pixel mask
-// */
-// public static void brightnessAndContrast(MarvinImage imageIn, MarvinImage imageOut, int brightness, int contrast, MarvinImageMask mask){
-// brightnessAndContrast = checkAndLoadImagePlugin(brightnessAndContrast, "org.marvinproject.image.color.brightnessAndContrast");
-// brightnessAndContrast.setAttribute("brightness", brightness);
-// brightnessAndContrast.setAttribute("contrast", contrast);
-// brightnessAndContrast.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | COMBINE BY MASK
-// ==============================================================================================*/
-// /**
-// * Combine two images considering a given color as transparency.
-// * @param imageA input image A
-// * @param imageB input image B
-// * @param imageOut output image
-// * @param x position x of image B on image A
-// * @param y position y of image B on image A
-// * @param colorMask Transparent color
-// */
-// public static void combineByMask(MarvinImage imageA, MarvinImage imageB, MarvinImage imageOut, int x, int y, Color colorMask){
-// combineByMask = checkAndLoadImagePlugin(combineByMask, "org.marvinproject.image.combine.combineByMask");
-// combineByMask.setAttribute("xi", x);
-// combineByMask.setAttribute("yi", y);
-// combineByMask.setAttribute("combinationImage", imageB);
-// combineByMask.setAttribute("colorMask", colorMask);
-// combineByMask.process(imageA, imageOut);
-// }
-//
-// /*==============================================================================================
-// | COMBINE BY TRANSPARENCY
-// ==============================================================================================*/
-// /**
-// * Combine two images having transparency.
-// * @param imageA input image A
-// * @param imageB input image B
-// * @param imageOut output image
-// * @param x position x of image B on image A
-// * @param y position y of image B on image A
-// * @param transparency
-// */
-// public static void combineByTransparency(MarvinImage imageA, MarvinImage imageB, MarvinImage imageOut, int x, int y, int transparency){
-// combineByTransparency = checkAndLoadImagePlugin(combineByTransparency, "org.marvinproject.image.combine.combineByTransparency");
-// combineByTransparency.setAttribute("xi", x);
-// combineByTransparency.setAttribute("yi", y);
-// combineByTransparency.setAttribute("combinationImage", imageB);
-// combineByTransparency.setAttribute("transparency", transparency);
-// combineByTransparency.process(imageA, imageOut);
-// }
-//
-// /*==============================================================================================
-// | CONVOLUTION
-// ==============================================================================================*/
-// /**
-// * Convolution
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrix convolution matrix
-// */
-// public static void convolution(MarvinImage imageIn, MarvinImage imageOut, double[][] matrix){
-// convolution = checkAndLoadImagePlugin(convolution, "org.marvinproject.image.convolution");
-// convolution.setAttribute("matrix", matrix);
-// convolution.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | COLOR CHANNEL
-// ==============================================================================================*/
-//
-// /**
-// * Manipulates image color channels
-// * @param imageIn input image
-// * @param red red manipulation [-100, 100]
-// * @param green green manipulation [-100, 100]
-// * @param blue blue manipulation [-100, 100]
-// */
-// public static void colorChannel(MarvinImage image, int red, int green, int blue){
-// colorChannel(image, image, red, green, blue);
-// }
-//
-// /**
-// * Manipulates image color channels
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param red red manipulation [-100, 100]
-// * @param green green manipulation [-100, 100]
-// * @param blue blue manipulation [-100, 100]
-// */
-// public static void colorChannel(MarvinImage imageIn, MarvinImage imageOut, int red, int green, int blue){
-// colorChannel(imageIn, imageOut, red, green, blue, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Manipulates image color channels
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param red red manipulation [-100, 100]
-// * @param green green manipulation [-100, 100]
-// * @param blue blue manipulation [-100, 100]
-// * @param mask pixel mask
-// */
-// public static void colorChannel(MarvinImage imageIn, MarvinImage imageOut, int red, int green, int blue, MarvinImageMask mask){
-// colorChannel = checkAndLoadImagePlugin(colorChannel, "org.marvinproject.image.color.colorChannel");
-// colorChannel.setAttribute("red", red);
-// colorChannel.setAttribute("green", green);
-// colorChannel.setAttribute("blue", blue);
-// colorChannel.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | CROP
-// ==============================================================================================*/
-// /**
-// * Image cropping
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param x subimage x
-// * @param y subimage y
-// * @param width subimage width
-// * @param height subimage height
-// */
-// public static void crop(MarvinImage imageIn, MarvinImage imageOut, int x, int y, int width, int height){
-//
-// x = Math.min(Math.max(x, 0), imageIn.getWidth());
-// y = Math.min(Math.max(y, 0), imageIn.getHeight());
-//
-// if(x + width > imageIn.getWidth()){
-// width = imageIn.getWidth() - x;
-// }
-// if(y + height > imageIn.getHeight()){
-// height = imageIn.getHeight() - y;
-// }
-//
-// crop = checkAndLoadImagePlugin(crop, "org.marvinproject.image.segmentation.crop");
-// crop.setAttribute("x", x);
-// crop.setAttribute("y", y);
-// crop.setAttribute("width", width);
-// crop.setAttribute("height", height);
-// crop.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | DETERMINE SCENE BACKGROUND
-// ==============================================================================================*/
-// /**
-// * Estimate the background from a set of images from the same scene.
-// * @param images list of images from the same scene
-// * @param imageOut estimated background
-// * @param threshold threshold considered by the pixel comparison.
-// */
-// public static void determineSceneBackground(List images, MarvinImage imageOut, int threshold){
-// determineSceneBackground = checkAndLoadImagePlugin(determineSceneBackground, "org.marvinproject.image.background.determineSceneBackground");
-// determineSceneBackground.setAttribute("threshold", threshold);
-// determineSceneBackground.process(images, imageOut);
-// }
-//
-// /*==============================================================================================
-// | FIND SUBIMAGE
-// ==============================================================================================*/
-// /**
-// * Find instances of a given image in another image with perfect matching (exactly the same pixels value).
-// * @param subimage image to be found
-// * @param original input image
-// * @return list of image segments.
-// */
-// public static List findAllSubimages(MarvinImage subimage, MarvinImage original){
-// return findAllSubimages(subimage, original, 1.0);
-// }
-//
-// /**
-// * Find instances of a given image in another image.
-// * @param subimage image to be found
-// * @param original input image
-// * @param similarity match percentage [0.0, 1.0]
-// * @return list of image segments.
-// */
-// public static List findAllSubimages(MarvinImage subimage, MarvinImage original, double similarity){
-// findSubimage = checkAndLoadImagePlugin(flip, "org.marvinproject.image.pattern.findSubimage");
-// findSubimage.setAttribute("subimage", subimage);
-// findSubimage.setAttribute("similarity", similarity);
-// MarvinAttributes output = new MarvinAttributes();
-// findSubimage.process(original, null, output);
-// return (List)output.get("matches");
-// }
-//
-// /**
-// * Find the first instance of a given image in another image.
-// * @param subimage image to be found
-// * @param original input image
-// * @param startX search start x
-// * @param startY search start y
-// * @return the image segment of the first instance found.
-// */
-// public static MarvinSegment findSubimage(MarvinImage subimage, MarvinImage original, int startX, int startY){
-// return findSubimage(subimage, original, startX, startY, 1.0);
-// }
-//
-// /**
-// * Find the first instance of a given image in another image.
-// * @param subimage image to be found
-// * @param original input image
-// * @param startX search start x
-// * @param startY search start y
-// * @param similarity match percentage [0.0, 1.0]
-// * @return the image segment of the first instance found.
-// */
-// public static MarvinSegment findSubimage(MarvinImage subimage, MarvinImage original, int startX, int startY, double similarity){
-// findSubimage = checkAndLoadImagePlugin(flip, "org.marvinproject.image.pattern.findSubimage");
-// findSubimage.setAttribute("subimage", subimage);
-// findSubimage.setAttribute("similarity", similarity);
-// findSubimage.setAttribute("findAll", false);
-// findSubimage.setAttribute("startX", startX);
-// findSubimage.setAttribute("startY", startY);
-// MarvinAttributes output = new MarvinAttributes();
-// findSubimage.process(original, null, output);
-//
-// List ret = (List)output.get("matches");
-// if(ret.size() > 0){
-// return ret.get(0);
-// }
-// return null;
-// }
-//
-// /*==============================================================================================
-// | FIND TEXT REGIONS
-// ==============================================================================================*/
-// /**
-// * Find text regions in a given image.
-// * @param imageIn input image
-// * @param maxWhiteSpace max number of white pixels in the text pattern
-// * @param maxFontLineWidth max number of black pixels in the text pattern
-// * @param minTextWidth min text width in pixels
-// * @param grayScaleThreshold gray scale threshold for conveting image to black and white
-// * @return list of image segments containing texts.
-// */
-// public static List findTextRegions(MarvinImage imageIn, int maxWhiteSpace, int maxFontLineWidth, int minTextWidth, int grayScaleThreshold){
-// findTextRegions = checkAndLoadImagePlugin(findTextRegions, "org.marvinproject.image.pattern.findTextRegions");
-// findTextRegions.setAttribute("maxWhiteSpace", maxWhiteSpace);
-// findTextRegions.setAttribute("maxFontLineWidth", maxFontLineWidth);
-// findTextRegions.setAttribute("minTextWidth", minTextWidth);
-// findTextRegions.setAttribute("grayScaleThreshold", grayScaleThreshold);
-// MarvinAttributes output = new MarvinAttributes();
-// findTextRegions.process(imageIn, null, output);
-// return (List)output.get("matches");
-// }
-//
-// /*==============================================================================================
-// | EMBOSS
-// ==============================================================================================*/
-// /**
-// * Emboss filter
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void emboss(MarvinImage imageIn, MarvinImage imageOut){
-// emboss(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Emboss filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void emboss(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// emboss = checkAndLoadImagePlugin(emboss, "org.marvinproject.image.color.emboss");
-// emboss.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | FLIP
-// ==============================================================================================*/
-// /**
-// * Flips the image horizontally
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void flipHorizontally(MarvinImage imageIn, MarvinImage imageOut){
-// flip = checkAndLoadImagePlugin(flip, "org.marvinproject.image.transform.flip");
-// flip.setAttribute("flip", "horizontal");
-// flip.process(imageIn, imageOut);
-// }
-//
-// /**
-// * Flips the image vertically
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void flipVertically(MarvinImage imageIn, MarvinImage imageOut){
-// flip = checkAndLoadImagePlugin(flip, "org.marvinproject.image.transform.flip");
-// flip.setAttribute("flip", "vertical");
-// flip.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | FLOODFILL SEGMENTATION
-// ==============================================================================================*/
-// public static MarvinSegment[] floodfillSegmentation(MarvinImage imageIn){
-// floodfillSegmentation = checkAndLoadImagePlugin(floodfillSegmentation, "org.marvinproject.image.segmentation.floodfillSegmentation");
-// floodfillSegmentation.setAttribute("returnType", "MarvinSegment");
-// MarvinAttributes output = new MarvinAttributes();
-// floodfillSegmentation.process(imageIn, null, output);
-// return (MarvinSegment[])output.get("segments");
-// }
-//
-// public static MarvinBlobSegment[] floodfillSegmentationBlob(MarvinImage imageIn){
-// floodfillSegmentation = checkAndLoadImagePlugin(floodfillSegmentation, "org.marvinproject.image.segmentation.floodfillSegmentation");
-// floodfillSegmentation.setAttribute("returnType", "MarvinBlobSegment");
-// MarvinAttributes output = new MarvinAttributes();
-// floodfillSegmentation.process(imageIn, null, output);
-// return (MarvinBlobSegment[])output.get("blobSegments");
-// }
-//
-// /*==============================================================================================
-// | GAUSSIAN BLUR
-// ==============================================================================================*/
-// /**
-// * Gaussian blur filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param radius blur radius
-// */
-// public static void gaussianBlur(MarvinImage imageIn, MarvinImage imageOut, int radius){
-// gaussianBlur(imageIn, imageOut, radius, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Gaussian blur filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param radius blur radius
-// * @param mask pixel mask
-// */
-// public static void gaussianBlur(MarvinImage imageIn, MarvinImage imageOut, int radius, MarvinImageMask mask){
-// gaussianBlur = checkAndLoadImagePlugin(gaussianBlur, "org.marvinproject.image.blur.gaussianBlur");
-// gaussianBlur.setAttribute("radius", radius);
-// gaussianBlur.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | GRAY SCALE
-// ==============================================================================================*/
-// /**
-// * Gray scale filter
-// * @param imageIn input image
-// */
-// public static void grayScale(MarvinImage image){
-// grayScale(image, image);
-// }
-//
-// /**
-// * Gray scale filter
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void grayScale(MarvinImage imageIn, MarvinImage imageOut){
-// grayScale(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Gray scale filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void grayScale(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// grayScale = checkAndLoadImagePlugin(grayScale, "org.marvinproject.image.color.grayScale");
-// grayScale.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | HALFTONE CIRCLES
-// ==============================================================================================*/
-// /**
-// * Image halftone using circles approach
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param circleWidth circle max width
-// * @param shift circle shift
-// * @param circlesDistance circles minimum distance
-// * @param mask pixel mask
-// */
-// public static void halftoneCircles(MarvinImage imageIn, MarvinImage imageOut, int circleWidth, int shift, int circlesDistance, MarvinImageMask mask){
-// halftoneCircles = checkAndLoadImagePlugin(halftoneCircles, "org.marvinproject.image.halftone.circles");
-// halftoneCircles.setAttribute("circleWidth", circleWidth);
-// halftoneCircles.setAttribute("shift", shift);
-// halftoneCircles.setAttribute("circlesDistance", circlesDistance);
-// halftoneCircles.process(imageIn, imageOut, mask);
-// }
-//
-// /**
-// * Image halftone using circles approach
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param circleWidth circle max width
-// * @param shift circle shift
-// * @param circlesDistance circles minimum distance
-// */
-// public static void halftoneCircles(MarvinImage imageIn, MarvinImage imageOut, int circleWidth, int shift, int circlesDistance){
-// halftoneCircles(imageIn, imageOut, circleWidth, shift, circlesDistance, MarvinImageMask.NULL_MASK);
-// }
-//
-// /*==============================================================================================
-// | HALFTONE DITHERING
-// ==============================================================================================*/
-// /**
-// * Image halftone using dithering approach
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void halftoneDithering(MarvinImage imageIn, MarvinImage imageOut){
-// halftoneDithering = checkAndLoadImagePlugin(halftoneDithering, "org.marvinproject.image.halftone.dithering");
-// halftoneDithering.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | HALFTONE ERROR DIFFUSION
-// ==============================================================================================*/
-// /**
-// * Image halftone using error diffusion approach
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void halftoneErrorDiffusion(MarvinImage imageIn, MarvinImage imageOut){
-// halftoneErrorDiffusion = checkAndLoadImagePlugin(halftoneErrorDiffusion, "org.marvinproject.image.halftone.errorDiffusion");
-// halftoneErrorDiffusion.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | HALFTONE RAYLANDERS
-// ==============================================================================================*/
-// /**
-// * Image halftone using raylander's approach
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void halftoneRaylanders(MarvinImage imageIn, MarvinImage imageOut){
-// halftoneRylanders = checkAndLoadImagePlugin(halftoneRylanders, "org.marvinproject.image.halftone.rylanders");
-// halftoneRylanders.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | HARRIS CORNER
-// ==============================================================================================*/
-// /**
-// * Harris corner detector
-// * @param imageIn input image
-// * @param matrixSize matrix size
-// * @param threshold corners estimation threshold
-// * @param k param k
-// */
-// public static void harrisCorner(MarvinImage imageIn, int matrixSize, int threshold, double k){
-// harris = checkAndLoadImagePlugin(harris, "org.marvinproject.image.corner.harris");
-// harris.setAttribute("matrixSize", matrixSize);
-// harris.setAttribute("threshold", threshold);
-// harris.setAttribute("k", k);
-// harris.process(imageIn, imageIn);
-// }
-//
-// /*==============================================================================================
-// | HISTOGRAM EQUALIZATION
-// ==============================================================================================*/
-// /**
-// * Histogram based image equalization.
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void histogramEqualization(MarvinImage imageIn, MarvinImage imageOut){
-// histogramEqualization = checkAndLoadImagePlugin(histogramEqualization, "org.marvinproject.image.equalization.histogramEqualization");
-// histogramEqualization.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | INVERT COLORS
-// ==============================================================================================*/
-// /**
-// * Inverts image colors.
-// * @param imageIn input image
-// */
-// public static void invertColors(MarvinImage image){
-// invertColors(image, image);
-// }
-//
-// /**
-// * Inverts image colors.
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void invertColors(MarvinImage imageIn, MarvinImage imageOut){
-// invertColors(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Inverts image colors.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void invertColors(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// invertColors = checkAndLoadImagePlugin(invertColors, "org.marvinproject.image.color.invert");
-// invertColors.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | MERGE PHOTOS
-// ==============================================================================================*/
-// /**
-// * Merge multiple photos from the same scene.
-// * @param images input image
-// * @param imageOut output image
-// * @param threshold threshold considering in pixel comparison.
-// */
-// public static void mergePhotos(List images, MarvinImage imageOut, int threshold){
-// mergePhotos = checkAndLoadImagePlugin(mergePhotos, "org.marvinproject.image.combine.mergePhotos");
-// mergePhotos.setAttribute("threshold", threshold);
-// mergePhotos.process(images, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MORAVEC
-// ==============================================================================================*/
-// /**
-// * Moravec corner detection
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrixSize matrix size
-// * @param threshold corners estimation threshold
-// * @return cornerness map
-// */
-// public static int[][] moravec(MarvinImage imageIn, MarvinImage imageOut, int matrixSize, int threshold){
-// moravec = checkAndLoadImagePlugin(moravec, "org.marvinproject.image.corner.moravec");
-// moravec.setAttribute("matrixSize", matrixSize);
-// moravec.setAttribute("threshold", threshold);
-// MarvinAttributes ret = new MarvinAttributes();
-// moravec.process(imageIn, imageOut, ret);
-// return (int[][])ret.get("cornernessMap");
-// }
-//
-// /*==============================================================================================
-// | MORPHOLOCIAL BOUNDARY
-// ==============================================================================================*/
-// /**
-// * Morphological boundary operation
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void morphologicalBoundary(MarvinImage imageIn, MarvinImage imageOut){
-// morphologicalBoundary = checkAndLoadImagePlugin(morphologicalBoundary, "org.marvinproject.image.morphological.boundary");
-// morphologicalBoundary.setAttribute("matrix", boolean_3x3);
-// morphologicalBoundary.process(imageIn, imageOut);
-// }
-//
-// /**
-// * Morphological boundary operation
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrix operation matrix.
-// */
-// public static void morphologicalBoundary(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
-// morphologicalBoundary = checkAndLoadImagePlugin(morphologicalBoundary, "org.marvinproject.image.morphological.boundary");
-// morphologicalBoundary.setAttribute("matrix", matrix);
-// morphologicalBoundary.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MORPHOLOCIAL CLOSING
-// ==============================================================================================*/
-// /**
-// * Morphological closing operation
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrix matrix
-// */
-// public static void morphologicalClosing(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
-// morphologicalClosing = checkAndLoadImagePlugin(morphologicalClosing, "org.marvinproject.image.morphological.closing");
-// morphologicalClosing.setAttribute("matrix", matrix);
-// morphologicalClosing.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MORPHOLOCIAL DILATION
-// ==============================================================================================*/
-// /**
-// * Morphological dilation operation
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrix matrix
-// */
-// public static void morphologicalDilation(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
-// morphologicalDilation = checkAndLoadImagePlugin(morphologicalDilation, "org.marvinproject.image.morphological.dilation");
-// morphologicalDilation.setAttribute("matrix", matrix);
-// morphologicalDilation.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MORPHOLOCIAL EROSION
-// ==============================================================================================*/
-// /**
-// * Morphological erosion operation
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrix matrix
-// */
-// public static void morphologicalErosion(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
-// morphologicalErosion = checkAndLoadImagePlugin(morphologicalErosion, "org.marvinproject.image.morphological.erosion");
-// morphologicalErosion.setAttribute("matrix", matrix);
-// morphologicalErosion.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MORPHOLOCIAL OPENING
-// ==============================================================================================*/
-// /**
-// * Morphological opening operation
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param matrix matrix
-// */
-// public static void morphologicalOpening(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
-// morphologicalOpening = checkAndLoadImagePlugin(morphologicalOpening, "org.marvinproject.image.morphological.opening");
-// morphologicalOpening.setAttribute("matrix", matrix);
-// morphologicalOpening.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MORPHOLOCIAL THINNING
-// ==============================================================================================*/
-// /**
-// * Morphological thinning operation
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void morphologicalThinning(MarvinImage imageIn, MarvinImage imageOut){
-// morphologicalThinning = checkAndLoadImagePlugin(morphologicalThinning, "org.marvinproject.image.morphological.thinning");
-// morphologicalThinning.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | MOSAIC
-// ==============================================================================================*/
-// /**
-// * Mosaic artistic filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param shape shape ("squares", "triangles")
-// * @param width mosaic width
-// * @param border has border?
-// */
-// public static void mosaic(MarvinImage imageIn, MarvinImage imageOut, String shape, int width, boolean border){
-// mosaic = checkAndLoadImagePlugin(mosaic, "org.marvinproject.image.artistic.mosaic");
-// mosaic.setAttribute("shape", shape);
-// mosaic.setAttribute("width", width);
-// mosaic.setAttribute("border", border);
-// mosaic.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | PIXELIZE
-// ==============================================================================================*/
-// public static void pixelize(MarvinImage imageIn, MarvinImage imageOut, int squareSide){
-// pixelize(imageIn, imageOut, squareSide, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Pixelize filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param squareSide square side
-// * @param mask pixel mask
-// */
-// public static void pixelize(MarvinImage imageIn, MarvinImage imageOut, int squareSide, MarvinImageMask mask){
-// pixelize = checkAndLoadImagePlugin(pixelize, "org.marvinproject.image.blur.pixelize");
-// pixelize.setAttribute("squareSide", squareSide);
-// pixelize.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | PREWITT
-// ==============================================================================================*/
-// public static void prewitt(MarvinImage imageIn, MarvinImage imageOut){
-// prewitt(imageIn, imageOut, 1, MarvinImageMask.NULL_MASK);
-// }
-//
-// public static void prewitt(MarvinImage imageIn, MarvinImage imageOut, double intensity){
-// prewitt(imageIn, imageOut, intensity, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Edge detection using prewitt approach
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param intensity edge intensity
-// * @param mask pixel mask
-// */
-// public static void prewitt(MarvinImage imageIn, MarvinImage imageOut, double intensity, MarvinImageMask mask){
-// prewitt = checkAndLoadImagePlugin(prewitt, "org.marvinproject.image.edge.prewitt");
-// prewitt.setAttribute("intensity", intensity);
-// prewitt.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | QUANTIZATION GRAY SCALE
-// ==============================================================================================*/
-// /**
-// * Gray scale color quantization
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param shades number of shades of gray
-// */
-// public static void quantizationGrayScale(MarvinImage imageIn, MarvinImage imageOut, int shades){
-// quantizationGrayScale = checkAndLoadImagePlugin(quantizationGrayScale, "org.marvinproject.image.quantization.grayScaleQuantization");
-// quantizationGrayScale.setAttributes("shades", shades);
-// quantizationGrayScale.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | ROBERTS
-// ==============================================================================================*/
-// /**
-// * Edge detection using roberts approach
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void roberts(MarvinImage imageIn, MarvinImage imageOut){
-// roberts(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Edge detection using roberts approach
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void roberts(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// roberts = checkAndLoadImagePlugin(roberts, "org.marvinproject.image.edge.roberts");
-// roberts.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | SCALE
-// ==============================================================================================*/
-// /**
-// * Scale image.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param width new width
-// * @param height new height
-// */
-// public static void scale(MarvinImage imageIn, MarvinImage imageOut, int width, int height){
-// scale = checkAndLoadImagePlugin(roberts, "org.marvinproject.image.transform.scale");
-// scale.setAttribute("newWidth", width);
-// scale.setAttribute("newHeight", height);
-// scale.process(imageIn, imageOut);
-// }
-//
-// /**
-// * Scale image.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param width new width. Height is set to be proportional to the original image aspect.
-// */
-// public static void scale(MarvinImage imageIn, MarvinImage imageOut, int width){
-// int cWidth = imageIn.getWidth();
-// int cHeight = imageIn.getHeight();
-// double cFactor = (double)cHeight/cWidth;
-// int newHeight= (int)Math.ceil(cFactor*width);
-// scale(imageIn, imageOut, width, newHeight);
-// }
-//
-//
-// /*==============================================================================================
-// | SEPIA
-// ==============================================================================================*/
-//
-// /**
-// * Sepia filter
-// * @param imageIn input image
-// * @param intensity filter intensity
-// */
-// public static void sepia(MarvinImage image, int intensity){
-// sepia(image, image, intensity);
-// }
-//
-// /**
-// * Sepia filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param intensity filter intensity
-// */
-// public static void sepia(MarvinImage imageIn, MarvinImage imageOut, int intensity){
-// sepia(imageIn, imageOut, intensity, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Sepia filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param intensity filter intensity
-// * @param mask pixel mask.
-// */
-// public static void sepia(MarvinImage imageIn, MarvinImage imageOut, int intensity, MarvinImageMask mask){
-// sepia = checkAndLoadImagePlugin(sepia, "org.marvinproject.image.color.sepia");
-// sepia.setAttribute("intensity", intensity);
-// sepia.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | SOBEL
-// ==============================================================================================*/
-// /**
-// * Edge detection using sobel approach
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void sobel(MarvinImage imageIn, MarvinImage imageOut){
-// sobel(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Edge detection using sobel approach
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void sobel(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// sobel = checkAndLoadImagePlugin(sobel, "org.marvinproject.image.edge.sobel");
-// sobel.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | SKIN COLOR DETECTION
-// ==============================================================================================*/
-//
-// /**
-// * Human skin color filter.
-// * @param imageIn input image
-// */
-// public static void skinColorDetection(MarvinImage image){
-// skinColorDetection(image, image);
-// }
-//
-// /**
-// * Human skin color filter.
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void skinColorDetection(MarvinImage imageIn, MarvinImage imageOut){
-// skinColorDetection(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Human skin color filter.
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void skinColorDetection(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// skinColorDetection = checkAndLoadImagePlugin(skinColorDetection, "org.marvinproject.image.color.skinColorDetection");
-// skinColorDetection.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | SUSAN CORNER
-// ==============================================================================================*/
-// /**
-// * Corner detection using susan approach
-// * @param imageIn input image
-// * @param matrixSize matrix size
-// * @param threshold corner estimation threshold
-// */
-// public static void susanCorner(MarvinImage imageIn, int matrixSize, int threshold){
-// susan = checkAndLoadImagePlugin(susan, "org.marvinproject.image.corner.susan");
-// susan.setAttribute("matrixSize", matrixSize);
-// susan.setAttribute("threshold", threshold);
-// susan.process(imageIn, imageIn);
-// }
-//
-// /*==============================================================================================
-// | TELEVISION
-// ==============================================================================================*/
-// /**
-// * Television artisic filter
-// * @param imageIn input image
-// */
-// public static void television(MarvinImage image){
-// television(image, image);
-// }
-//
-// /**
-// * Television artisic filter
-// * @param imageIn input image
-// * @param imageOut output image
-// */
-// public static void television(MarvinImage imageIn, MarvinImage imageOut){
-// television(imageIn, imageOut, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Television artisic filter
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param mask pixel mask
-// */
-// public static void television(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
-// television = checkAndLoadImagePlugin(television, "org.marvinproject.image.artistic.television");
-// television.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | THRESHOLDING
-// ==============================================================================================*/
-// /**
-// * Converts pixels to black and white given a threshold
-// * @param imageIn input image
-// * @param threshold threshold
-// */
-// public static void thresholding(MarvinImage image, int threshold){
-// thresholding(image, image, threshold);
-// }
-//
-// /**
-// * Converts pixels to black and white given a threshold
-// * @param imageIn input image
-// * @param threshold threshold
-// * @param thresholdRange threshold values range
-// */
-// public static void thresholding(MarvinImage image, int threshold, int thresholdRange){
-// thresholding(image, image, threshold, thresholdRange);
-// }
-//
-// /**
-// * Converts pixels to black and white given a threshold
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param threshold threshold
-// */
-// public static void thresholding(MarvinImage imageIn, MarvinImage imageOut, int threshold){
-// thresholding(imageIn, imageOut, threshold, -1);
-// }
-//
-// /**
-// * Converts pixels to black and white given a threshold
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param threshold threshold
-// * @param thresholdRange threshold values range
-// */
-// public static void thresholding(MarvinImage imageIn, MarvinImage imageOut, int threshold, int thresholdRange){
-// thresholding(imageIn, imageOut, threshold, thresholdRange, MarvinImageMask.NULL_MASK);
-// }
-//
-// /**
-// * Converts pixels to black and white given a threshold
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param threshold threshold
-// * @param thresholdRange threshold values range
-// * @param mask pixel mask
-// */
-// public static void thresholding(MarvinImage imageIn, MarvinImage imageOut, int threshold, int thresholdRange, MarvinImageMask mask){
-// thresholding = checkAndLoadImagePlugin(thresholding, "org.marvinproject.image.color.thresholding");
-// thresholding.setAttribute("threshold",threshold);
-// thresholding.setAttribute("thresholdRange",thresholdRange);
-// thresholding.process(imageIn, imageOut, mask);
-// }
-//
-// /*==============================================================================================
-// | THRESHOLDING NEIGHBORHOOD
-// ==============================================================================================*/
-// /**
-// * Converts pixels to black and white considering a threshold to the average intensity of pixel neighbors
-// * @param imageIn input image
-// * @param imageOut output image
-// * @param thresholdPercentageOfAverage threshold percentage of average intensity [0, 1.0]
-// * @param neighborhoodSide side of the neighborhood square
-// * @param samplingPixelDistance 1 to process every pixel, higher values to skip pixels in the sampling process.
-// */
-// public static void thresholdingNeighborhood(MarvinImage imageIn, MarvinImage imageOut, double thresholdPercentageOfAverage, int neighborhoodSide, int samplingPixelDistance){
-// thresholdingNeighborhood = checkAndLoadImagePlugin(thresholding, "org.marvinproject.image.color.thresholdingNeighborhood");
-// thresholdingNeighborhood.setAttribute("thresholdPercentageOfAverage",thresholdPercentageOfAverage);
-// thresholdingNeighborhood.setAttribute("neighborhoodSide",neighborhoodSide);
-// thresholdingNeighborhood.setAttribute("samplingPixelDistance",samplingPixelDistance);
-// thresholdingNeighborhood.process(imageIn, imageOut);
-// }
-//
-// /*==============================================================================================
-// | THUMBNAIL
-// ==============================================================================================*/
-// public static void thumbnailByWidth(MarvinImage imageIn, MarvinImage imageOut, int newWidth){
-// scale(imageIn, imageOut, newWidth);
-// }
-//
-// public static void thumbnailByHeight(MarvinImage imageIn, MarvinImage imageOut, int newHeight){
-// double factor = (double)imageIn.getWidth()/imageIn.getHeight();
-// int newWidth = (int)(newHeight * factor);
-// scale(imageIn, imageOut, newWidth);
-// }
-//
-// /*==============================================================================================
-// | WATERSHED
-// ==============================================================================================*/
-// /**
-// * Watershed transform
-// * @param imageIn input image
-// * @return
-// */
-// public static int[][] watershed(MarvinImage imageIn){
-// watershed = checkAndLoadImagePlugin(watershed, "org.marvinproject.image.transform.watershed");
-// MarvinAttributes attr = new MarvinAttributes();
-// thresholding.process(imageIn, imageIn, attr);
-// return (int[][])attr.get("labels");
-// }
-//
-// private static MarvinImagePlugin checkAndLoadImagePlugin(MarvinImagePlugin ref, String pluginCanonicalName){
-// // Plug-in already loaded
-// if(ref != null){
-// return ref;
-// }
-// return MarvinPluginLoader.loadImagePlugin(pluginCanonicalName);
-// }
-//}
diff --git a/marvinproject/dev/MarvinPlugins/.gitignore b/marvinproject/dev/MarvinPlugins/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/marvinproject/dev/MarvinPlugins/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target
diff --git a/marvinproject/dev/MarvinPlugins/.project b/marvinproject/dev/MarvinPlugins/.project
deleted file mode 100644
index 35cb0b4..0000000
--- a/marvinproject/dev/MarvinPlugins/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- MarvinPlugins
-
-
- MarvinFramework
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- net.sourceforge.metrics.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- net.sourceforge.metrics.nature
-
-
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar
deleted file mode 100644
index 0dc4c7e..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.artistic.television.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.artistic.television.jar
deleted file mode 100644
index bad8cc5..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.artistic.television.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar
deleted file mode 100644
index 9dce87f..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar
deleted file mode 100644
index a51fb09..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar
deleted file mode 100644
index a385e9b..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar
deleted file mode 100644
index ec0bf27..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar
deleted file mode 100644
index 954f7ae..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar
deleted file mode 100644
index fded99d..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar
deleted file mode 100644
index 09737ff..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar
deleted file mode 100644
index 2146373..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.emboss.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.emboss.jar
deleted file mode 100644
index 040db78..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.emboss.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar
deleted file mode 100644
index a5f6774..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.invert.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.invert.jar
deleted file mode 100644
index 605c581..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.invert.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.sepia.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.sepia.jar
deleted file mode 100644
index 22bb3e0..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.sepia.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar
deleted file mode 100644
index 0639b08..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar
deleted file mode 100644
index 62bcff3..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar
deleted file mode 100644
index 9c0dbe2..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar
deleted file mode 100644
index 817297c..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar
deleted file mode 100644
index 1b6d2c3..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar
deleted file mode 100644
index 24235cb..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.convolution.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.convolution.jar
deleted file mode 100644
index 3bd7250..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.convolution.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.harris.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.harris.jar
deleted file mode 100644
index 0180e38..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.harris.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar
deleted file mode 100644
index c6a9ef1..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.susan.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.susan.jar
deleted file mode 100644
index 4f77778..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.corner.susan.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar
deleted file mode 100644
index 969d023..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar
deleted file mode 100644
index 79c834a..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar
deleted file mode 100644
index 74c0caa..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar
deleted file mode 100644
index c29526e..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar
deleted file mode 100644
index 59e68ed..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar
deleted file mode 100644
index f506570..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar
deleted file mode 100644
index 9780a63..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar
deleted file mode 100644
index 8faf166..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar
deleted file mode 100644
index 426b5bb..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar
deleted file mode 100644
index 3000cc3..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar
deleted file mode 100644
index 09ebd47..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar
deleted file mode 100644
index 81d5ab0..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar
deleted file mode 100644
index c209e93..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar
deleted file mode 100644
index 91ee401..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar
deleted file mode 100644
index 6e59c5d..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar
deleted file mode 100644
index 60e0ed6..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar
deleted file mode 100644
index 6882aca..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar
deleted file mode 100644
index 680ef40..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar
deleted file mode 100644
index ad104e4..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar
deleted file mode 100644
index 2ce6d97..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar
deleted file mode 100644
index 0679e16..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar
deleted file mode 100644
index d90b58d..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar
deleted file mode 100644
index 662f4ee..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar
deleted file mode 100644
index ceed1ff..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar
deleted file mode 100644
index 78e858a..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar
deleted file mode 100644
index 15c8b0b..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar
deleted file mode 100644
index 8d403ec..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar
deleted file mode 100644
index 6758bb4..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar
deleted file mode 100644
index af7f531..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar
deleted file mode 100644
index 397ce83..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar
deleted file mode 100644
index 9768a44..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar
deleted file mode 100644
index 618ceba..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar
deleted file mode 100644
index 63c0f5a..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar
deleted file mode 100644
index 0809cf0..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.text.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.text.jar
deleted file mode 100644
index cd2a577..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.render.text.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar
deleted file mode 100644
index 6a45cd9..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar
deleted file mode 100644
index 15cf0ae..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar
deleted file mode 100644
index a199a31..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar
deleted file mode 100644
index bdb9964..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar
deleted file mode 100644
index c11bc8d..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.median.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.median.jar
deleted file mode 100644
index fca64a5..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.median.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar
deleted file mode 100644
index 1f9f0cf..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar
deleted file mode 100644
index 1b80da9..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.steganography.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.steganography.jar
deleted file mode 100644
index a8c702d..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.steganography.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.subtract.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.subtract.jar
deleted file mode 100644
index 9b3a9a0..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.subtract.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar
deleted file mode 100644
index 6d452d6..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.test.plugin.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.test.plugin.jar
deleted file mode 100644
index fb7cd45..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.test.plugin.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar
deleted file mode 100644
index 09a6d52..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.flip.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.flip.jar
deleted file mode 100644
index a2be3d6..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.flip.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar
deleted file mode 100644
index 0bc69b6..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.scale.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.scale.jar
deleted file mode 100644
index fd4a422..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.scale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.skew.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.skew.jar
deleted file mode 100644
index 517d35b..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.skew.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar
deleted file mode 100644
index d95f204..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.ml.kmeans.jar b/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.ml.kmeans.jar
deleted file mode 100644
index 4e5ac8a..0000000
Binary files a/marvinproject/dev/MarvinPlugins/marvin/plugins/image/org.marvinproject.ml.kmeans.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/pom.xml b/marvinproject/dev/MarvinPlugins/pom.xml
deleted file mode 100644
index bafa76f..0000000
--- a/marvinproject/dev/MarvinPlugins/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
- 4.0.0
- MarvinPlugins
- MarvinPlugins
- 1
-
- src
-
-
- maven-compiler-plugin
- 3.1
-
- 1.7
- 1.7
-
-
-
-
-
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/res/senna.jpg b/marvinproject/dev/MarvinPlugins/res/senna.jpg
deleted file mode 100644
index f9a20cf..0000000
Binary files a/marvinproject/dev/MarvinPlugins/res/senna.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/res/tucano.jpg b/marvinproject/dev/MarvinPlugins/res/tucano.jpg
deleted file mode 100644
index 8a27237..0000000
Binary files a/marvinproject/dev/MarvinPlugins/res/tucano.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinPlugins/src/marvinplugins/MarvinPluginCollection.java b/marvinproject/dev/MarvinPlugins/src/marvinplugins/MarvinPluginCollection.java
deleted file mode 100644
index fd49144..0000000
--- a/marvinproject/dev/MarvinPlugins/src/marvinplugins/MarvinPluginCollection.java
+++ /dev/null
@@ -1,1296 +0,0 @@
-package marvinplugins;
-
-import java.awt.Color;
-import java.util.List;
-
-import marvin.image.MarvinBlobSegment;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.image.MarvinSegment;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.artistic.mosaic.Mosaic;
-import org.marvinproject.image.artistic.television.Television;
-import org.marvinproject.image.background.determineSceneBackground.DetermineSceneBackground;
-import org.marvinproject.image.blur.gaussianBlur.GaussianBlur;
-import org.marvinproject.image.blur.pixelize.Pixelize;
-import org.marvinproject.image.color.alphaBoundary.AlphaBoundary;
-import org.marvinproject.image.color.blackAndWhite.BlackAndWhite;
-import org.marvinproject.image.color.brightnessAndContrast.BrightnessAndContrast;
-import org.marvinproject.image.color.colorChannel.ColorChannel;
-import org.marvinproject.image.color.emboss.Emboss;
-import org.marvinproject.image.color.grayScale.GrayScale;
-import org.marvinproject.image.color.invert.Invert;
-import org.marvinproject.image.color.sepia.Sepia;
-import org.marvinproject.image.color.skinColorDetection.SkinColorDetection;
-import org.marvinproject.image.color.thresholding.Thresholding;
-import org.marvinproject.image.color.thresholdingNeighborhood.ThresholdingNeighborhood;
-import org.marvinproject.image.combine.combineByMask.CombineByMask;
-import org.marvinproject.image.combine.combineByTransparency.CombineByTransparency;
-import org.marvinproject.image.combine.mergePhotos.MergePhotos;
-import org.marvinproject.image.convolution.Convolution;
-import org.marvinproject.image.corner.harris.Harris;
-import org.marvinproject.image.corner.moravec.Moravec;
-import org.marvinproject.image.corner.susan.Susan;
-import org.marvinproject.image.edge.prewitt.Prewitt;
-import org.marvinproject.image.edge.roberts.Roberts;
-import org.marvinproject.image.edge.sobel.Sobel;
-import org.marvinproject.image.equalization.histogramEqualization.HistogramEqualization;
-import org.marvinproject.image.fill.boundaryFill.BoundaryFill;
-import org.marvinproject.image.halftone.circles.Circles;
-import org.marvinproject.image.halftone.dithering.Dithering;
-import org.marvinproject.image.halftone.errorDiffusion.ErrorDiffusion;
-import org.marvinproject.image.halftone.rylanders.Rylanders;
-import org.marvinproject.image.morphological.boundary.Boundary;
-import org.marvinproject.image.morphological.closing.Closing;
-import org.marvinproject.image.morphological.dilation.Dilation;
-import org.marvinproject.image.morphological.erosion.Erosion;
-import org.marvinproject.image.morphological.opening.Opening;
-import org.marvinproject.image.morphological.thinning.Thinning;
-import org.marvinproject.image.pattern.findSubimage.FindSubimage;
-import org.marvinproject.image.pattern.findTextRegions.FindTextRegions;
-import org.marvinproject.image.quantization.grayScaleQuantization.GrayScaleQuantization;
-import org.marvinproject.image.segmentation.crop.Crop;
-import org.marvinproject.image.segmentation.floodfillSegmentation.FloodfillSegmentation;
-import org.marvinproject.image.transform.flip.Flip;
-import org.marvinproject.image.transform.scale.Scale;
-import org.marvinproject.image.transform.watershed.Watershed;
-
-public class MarvinPluginCollection {
-
- private static MarvinImagePlugin alphaBoundary,
- blackAndWhite,
- brightnessAndContrast,
- boundaryFill,
- colorChannel,
- combineByMask,
- combineByTransparency,
- convolution,
- crop,
- determineSceneBackground,
- emboss,
- findSubimage,
- findTextRegions,
- flip,
- floodfillSegmentation,
- gaussianBlur,
- grayScale,
- harris,
- histogramEqualization,
- halftoneCircles,
- halftoneDithering,
- halftoneErrorDiffusion,
- halftoneRylanders,
- imageSlicer,
- invertColors,
- iteratedFuncionSystems,
- juliaSet,
- lindenmayer,
- mandelbrot,
- mergePhotos,
- moravec,
- morphologicalBoundary,
- morphologicalClosing,
- morphologicalDilation,
- morphologicalErosion,
- morphologicalOpening,
- morphologicalThinning,
- mosaic,
- pixelize,
- prewitt,
- quantizationGrayScale,
- roberts,
- rotate,
- scale,
- sobel,
- skew,
- sepia,
- statisticalMaximum,
- statisticalMedian,
- statisticalMinimum,
- statisticalMode,
- subtract,
- susan,
- skinColorDetection,
- television,
- tileTexture,
- thresholding,
- thresholdingNeighborhood,
- watershed;
-
- private static boolean[][] boolean_3x3 = new boolean[][]{
- {true,true,true},
- {true,true,true},
- {true,true,true}
- };
-
- /*==============================================================================================
- | ALPHA BOUNDARY
- ==============================================================================================*/
- /**
- * Applies a gradient transparency to boundary pixels
- * @param imageIn input image
- * @param radius transparency radius
- */
- public static void alphaBoundary(MarvinImage imageIn, int radius){
- alphaBoundary(imageIn.clone(), imageIn, radius);
- }
-
- /**
- * Applies a gradient transparency to boundary pixels
- * @param imageIn input image
- * @param imageOut output image
- * @param radius transparency radius
- */
- public static void alphaBoundary(MarvinImage imageIn, MarvinImage imageOut, int radius){
- alphaBoundary = checkAndLoadImagePlugin(alphaBoundary, AlphaBoundary.class);
- alphaBoundary.setAttribute("radius", radius);
- alphaBoundary.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | BLACK AND WHITE
- ==============================================================================================*/
-
- /**
- * Converts image to black and white.
- * @param imageIn input image
- * @param level black and white level
- */
- public static void blackAndWhite(MarvinImage image, int level){
- blackAndWhite(image, image, level);
- }
-
- /**
- * Converts image to black and white.
- * @param imageIn input image
- * @param imageOut output image
- * @param level black and white level
- */
- public static void blackAndWhite(MarvinImage imageIn, MarvinImage imageOut, int level){
- blackAndWhite(imageIn, imageOut, level, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Converts image to black and white.
- * @param imageIn input image
- * @param imageOut output image
- * @param level black and white level
- * @param mask pixel mask
- */
- public static void blackAndWhite(MarvinImage imageIn, MarvinImage imageOut, int level, MarvinImageMask mask){
- blackAndWhite = checkAndLoadImagePlugin(blackAndWhite, BlackAndWhite.class);
- blackAndWhite.setAttribute("level", level);
- blackAndWhite.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | BOUNDARY FILL
- ==============================================================================================*/
- /**
- * Fills a closed region of an image, given a start x,y coordinate. The region might be filled with a color or a texture tile.
- * @param imageIn input image
- * @param imageOut output image
- * @param x fill start X
- * @param y fill start Y
- * @param color color
- */
- public static void boundaryFill(MarvinImage imageIn, MarvinImage imageOut, int x, int y, Color color){
- boundaryFill(imageIn, imageOut, x, y, color, null, 0);
- }
-
- /**
- * Fills a closed region of an image, given a start x,y coordinate. The region might be filled with a color or a texture tile.
- * @param imageIn input image
- * @param imageOut output image
- * @param x fill start X
- * @param y fill start Y
- * @param color color
- * @param threshold accepted threshold to the specified color.
- */
- public static void boundaryFill(MarvinImage imageIn, MarvinImage imageOut, int x, int y, Color color, int threshold){
- boundaryFill(imageIn, imageOut, x, y, color, null, threshold);
- }
-
- /**
- * Fills a closed region of an image, given a start x,y coordinate. The region might be filled with a color or a texture tile.
- * @param imageIn input image
- * @param imageOut output image
- * @param x fill start X
- * @param y fill start Y
- * @param color color
- * @param tile tile image for texture based filling
- * @param threshold accepted threshold to the specified color.
- */
- public static void boundaryFill(MarvinImage imageIn, MarvinImage imageOut, int x, int y, Color color, MarvinImage tile, int threshold){
- boundaryFill = checkAndLoadImagePlugin(boundaryFill, BoundaryFill.class);
- boundaryFill.setAttribute("x", x);
- boundaryFill.setAttribute("y", y);
- boundaryFill.setAttribute("color", color);
- boundaryFill.setAttribute("tile", tile);
- boundaryFill.setAttribute("threshold", threshold);
- boundaryFill.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | BRIGHTNESS AND CONTRAST
- ==============================================================================================*/
- /**
- * Manipulate image brightness and contrast
- * @param imageIn input image
- * @param brightness brightness variation [-127, 127]
- * @param contrast contrast variation [-127, 127]
- */
- public static void brightnessAndContrast(MarvinImage image, int brightness, int contrast){
- brightnessAndContrast(image, image, brightness, contrast);
- }
-
- /**
- * Manipulate image brightness and contrast
- * @param imageIn input image
- * @param imageOut output image
- * @param brightness brightness variation [-127, 127]
- * @param contrast contrast variation [-127, 127]
- */
- public static void brightnessAndContrast(MarvinImage imageIn, MarvinImage imageOut, int brightness, int contrast){
- brightnessAndContrast(imageIn, imageOut, brightness, contrast, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Manipulate image brightness and contrast
- * @param imageIn input image
- * @param imageOut output image
- * @param brightness brightness variation [-127, 127]
- * @param contrast contrast variation [-127, 127]
- * @param mask pixel mask
- */
- public static void brightnessAndContrast(MarvinImage imageIn, MarvinImage imageOut, int brightness, int contrast, MarvinImageMask mask){
- brightnessAndContrast = checkAndLoadImagePlugin(brightnessAndContrast, BrightnessAndContrast.class);
- brightnessAndContrast.setAttribute("brightness", brightness);
- brightnessAndContrast.setAttribute("contrast", contrast);
- brightnessAndContrast.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | COMBINE BY MASK
- ==============================================================================================*/
- /**
- * Combine two images considering a given color as transparency.
- * @param imageA input image A
- * @param imageB input image B
- * @param imageOut output image
- * @param x position x of image B on image A
- * @param y position y of image B on image A
- * @param colorMask Transparent color
- */
- public static void combineByMask(MarvinImage imageA, MarvinImage imageB, MarvinImage imageOut, int x, int y, Color colorMask){
- combineByMask = checkAndLoadImagePlugin(combineByMask, CombineByMask.class);
- combineByMask.setAttribute("xi", x);
- combineByMask.setAttribute("yi", y);
- combineByMask.setAttribute("combinationImage", imageB);
- combineByMask.setAttribute("colorMask", colorMask);
- combineByMask.process(imageA, imageOut);
- }
-
- /*==============================================================================================
- | COMBINE BY TRANSPARENCY
- ==============================================================================================*/
- /**
- * Combine two images having transparency.
- * @param imageA input image A
- * @param imageB input image B
- * @param imageOut output image
- * @param x position x of image B on image A
- * @param y position y of image B on image A
- * @param transparency
- */
- public static void combineByTransparency(MarvinImage imageA, MarvinImage imageB, MarvinImage imageOut, int x, int y, int transparency){
- combineByTransparency = checkAndLoadImagePlugin(combineByTransparency, CombineByTransparency.class);
- combineByTransparency.setAttribute("xi", x);
- combineByTransparency.setAttribute("yi", y);
- combineByTransparency.setAttribute("combinationImage", imageB);
- combineByTransparency.setAttribute("transparency", transparency);
- combineByTransparency.process(imageA, imageOut);
- }
-
- /*==============================================================================================
- | CONVOLUTION
- ==============================================================================================*/
- /**
- * Convolution
- * @param imageIn input image
- * @param imageOut output image
- * @param matrix convolution matrix
- */
- public static void convolution(MarvinImage imageIn, MarvinImage imageOut, double[][] matrix){
- convolution = checkAndLoadImagePlugin(convolution, Convolution.class);
- convolution.setAttribute("matrix", matrix);
- convolution.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | COLOR CHANNEL
- ==============================================================================================*/
-
- /**
- * Manipulates image color channels
- * @param imageIn input image
- * @param red red manipulation [-100, 100]
- * @param green green manipulation [-100, 100]
- * @param blue blue manipulation [-100, 100]
- */
- public static void colorChannel(MarvinImage image, int red, int green, int blue){
- colorChannel(image, image, red, green, blue);
- }
-
- /**
- * Manipulates image color channels
- * @param imageIn input image
- * @param imageOut output image
- * @param red red manipulation [-100, 100]
- * @param green green manipulation [-100, 100]
- * @param blue blue manipulation [-100, 100]
- */
- public static void colorChannel(MarvinImage imageIn, MarvinImage imageOut, int red, int green, int blue){
- colorChannel(imageIn, imageOut, red, green, blue, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Manipulates image color channels
- * @param imageIn input image
- * @param imageOut output image
- * @param red red manipulation [-100, 100]
- * @param green green manipulation [-100, 100]
- * @param blue blue manipulation [-100, 100]
- * @param mask pixel mask
- */
- public static void colorChannel(MarvinImage imageIn, MarvinImage imageOut, int red, int green, int blue, MarvinImageMask mask){
- colorChannel = checkAndLoadImagePlugin(colorChannel, ColorChannel.class);
- colorChannel.setAttribute("red", red);
- colorChannel.setAttribute("green", green);
- colorChannel.setAttribute("blue", blue);
- colorChannel.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | CROP
- ==============================================================================================*/
- /**
- * Image cropping
- * @param imageIn input image
- * @param imageOut output image
- * @param x subimage x
- * @param y subimage y
- * @param width subimage width
- * @param height subimage height
- */
- public static void crop(MarvinImage imageIn, MarvinImage imageOut, int x, int y, int width, int height){
-
- x = Math.min(Math.max(x, 0), imageIn.getWidth());
- y = Math.min(Math.max(y, 0), imageIn.getHeight());
-
- if(x + width > imageIn.getWidth()){
- width = imageIn.getWidth() - x;
- }
- if(y + height > imageIn.getHeight()){
- height = imageIn.getHeight() - y;
- }
-
- crop = checkAndLoadImagePlugin(crop, Crop.class);
- crop.setAttribute("x", x);
- crop.setAttribute("y", y);
- crop.setAttribute("width", width);
- crop.setAttribute("height", height);
- crop.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | DETERMINE SCENE BACKGROUND
- ==============================================================================================*/
- /**
- * Estimate the background from a set of images from the same scene.
- * @param images list of images from the same scene
- * @param imageOut estimated background
- * @param threshold threshold considered by the pixel comparison.
- */
- public static void determineSceneBackground(List images, MarvinImage imageOut, int threshold){
- determineSceneBackground = checkAndLoadImagePlugin(determineSceneBackground, DetermineSceneBackground.class);
- determineSceneBackground.setAttribute("threshold", threshold);
- determineSceneBackground.process(images, imageOut);
- }
-
- /*==============================================================================================
- | FIND SUBIMAGE
- ==============================================================================================*/
- /**
- * Find instances of a given image in another image with perfect matching (exactly the same pixels value).
- * @param subimage image to be found
- * @param original input image
- * @return list of image segments.
- */
- public static List findAllSubimages(MarvinImage subimage, MarvinImage original){
- return findAllSubimages(subimage, original, 1.0);
- }
-
- /**
- * Find instances of a given image in another image.
- * @param subimage image to be found
- * @param original input image
- * @param similarity match percentage [0.0, 1.0]
- * @return list of image segments.
- */
- public static List findAllSubimages(MarvinImage subimage, MarvinImage original, double similarity){
- findSubimage = checkAndLoadImagePlugin(flip, FindSubimage.class);
- findSubimage.setAttribute("subimage", subimage);
- findSubimage.setAttribute("similarity", similarity);
- MarvinAttributes output = new MarvinAttributes();
- findSubimage.process(original, null, output);
- return (List)output.get("matches");
- }
-
- /**
- * Find the first instance of a given image in another image.
- * @param subimage image to be found
- * @param original input image
- * @param startX search start x
- * @param startY search start y
- * @return the image segment of the first instance found.
- */
- public static MarvinSegment findSubimage(MarvinImage subimage, MarvinImage original, int startX, int startY){
- return findSubimage(subimage, original, startX, startY, 1.0);
- }
-
- /**
- * Find the first instance of a given image in another image.
- * @param subimage image to be found
- * @param original input image
- * @param startX search start x
- * @param startY search start y
- * @param similarity match percentage [0.0, 1.0]
- * @return the image segment of the first instance found.
- */
- public static MarvinSegment findSubimage(MarvinImage subimage, MarvinImage original, int startX, int startY, double similarity){
- findSubimage = checkAndLoadImagePlugin(flip, FindSubimage.class);
- findSubimage.setAttribute("subimage", subimage);
- findSubimage.setAttribute("similarity", similarity);
- findSubimage.setAttribute("findAll", false);
- findSubimage.setAttribute("startX", startX);
- findSubimage.setAttribute("startY", startY);
- MarvinAttributes output = new MarvinAttributes();
- findSubimage.process(original, null, output);
-
- List ret = (List)output.get("matches");
- if(ret.size() > 0){
- return ret.get(0);
- }
- return null;
- }
-
- /*==============================================================================================
- | FIND TEXT REGIONS
- ==============================================================================================*/
- /**
- * Find text regions in a given image.
- * @param imageIn input image
- * @param maxWhiteSpace max number of white pixels in the text pattern
- * @param maxFontLineWidth max number of black pixels in the text pattern
- * @param minTextWidth min text width in pixels
- * @param grayScaleThreshold gray scale threshold for conveting image to black and white
- * @return list of image segments containing texts.
- */
- public static List findTextRegions(MarvinImage imageIn, int maxWhiteSpace, int maxFontLineWidth, int minTextWidth, int grayScaleThreshold){
- findTextRegions = checkAndLoadImagePlugin(findTextRegions, FindTextRegions.class);
- findTextRegions.setAttribute("maxWhiteSpace", maxWhiteSpace);
- findTextRegions.setAttribute("maxFontLineWidth", maxFontLineWidth);
- findTextRegions.setAttribute("minTextWidth", minTextWidth);
- findTextRegions.setAttribute("grayScaleThreshold", grayScaleThreshold);
- MarvinAttributes output = new MarvinAttributes();
- findTextRegions.process(imageIn, null, output);
- return (List)output.get("matches");
- }
-
- /*==============================================================================================
- | EMBOSS
- ==============================================================================================*/
- /**
- * Emboss filter
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void emboss(MarvinImage imageIn, MarvinImage imageOut){
- emboss(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Emboss filter
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void emboss(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- emboss = checkAndLoadImagePlugin(emboss, Emboss.class);
- emboss.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | FLIP
- ==============================================================================================*/
- /**
- * Flips the image horizontally
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void flipHorizontally(MarvinImage imageIn, MarvinImage imageOut){
- flip = checkAndLoadImagePlugin(flip, Flip.class);
- flip.setAttribute("flip", "horizontal");
- flip.process(imageIn, imageOut);
- }
-
- /**
- * Flips the image vertically
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void flipVertically(MarvinImage imageIn, MarvinImage imageOut){
- flip = checkAndLoadImagePlugin(flip, Flip.class);
- flip.setAttribute("flip", "vertical");
- flip.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | FLOODFILL SEGMENTATION
- ==============================================================================================*/
- public static MarvinSegment[] floodfillSegmentation(MarvinImage imageIn){
- floodfillSegmentation = checkAndLoadImagePlugin(floodfillSegmentation, FloodfillSegmentation.class);
- floodfillSegmentation.setAttribute("returnType", "MarvinSegment");
- MarvinAttributes output = new MarvinAttributes();
- floodfillSegmentation.process(imageIn, null, output);
- return (MarvinSegment[])output.get("segments");
- }
-
- public static MarvinBlobSegment[] floodfillSegmentationBlob(MarvinImage imageIn){
- floodfillSegmentation = checkAndLoadImagePlugin(floodfillSegmentation, FloodfillSegmentation.class);
- floodfillSegmentation.setAttribute("returnType", "MarvinBlobSegment");
- MarvinAttributes output = new MarvinAttributes();
- floodfillSegmentation.process(imageIn, null, output);
- return (MarvinBlobSegment[])output.get("blobSegments");
- }
-
- /*==============================================================================================
- | GAUSSIAN BLUR
- ==============================================================================================*/
- /**
- * Gaussian blur filter
- * @param imageIn input image
- * @param imageOut output image
- * @param radius blur radius
- */
- public static void gaussianBlur(MarvinImage imageIn, MarvinImage imageOut, int radius){
- gaussianBlur(imageIn, imageOut, radius, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Gaussian blur filter
- * @param imageIn input image
- * @param imageOut output image
- * @param radius blur radius
- * @param mask pixel mask
- */
- public static void gaussianBlur(MarvinImage imageIn, MarvinImage imageOut, int radius, MarvinImageMask mask){
- gaussianBlur = checkAndLoadImagePlugin(gaussianBlur, GaussianBlur.class);
- gaussianBlur.setAttribute("radius", radius);
- gaussianBlur.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | GRAY SCALE
- ==============================================================================================*/
- /**
- * Gray scale filter
- * @param imageIn input image
- */
- public static void grayScale(MarvinImage image){
- grayScale(image, image);
- }
-
- /**
- * Gray scale filter
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void grayScale(MarvinImage imageIn, MarvinImage imageOut){
- grayScale(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Gray scale filter
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void grayScale(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- grayScale = checkAndLoadImagePlugin(grayScale, GrayScale.class);
- grayScale.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | HALFTONE CIRCLES
- ==============================================================================================*/
- /**
- * Image halftone using circles approach
- * @param imageIn input image
- * @param imageOut output image
- * @param circleWidth circle max width
- * @param shift circle shift
- * @param circlesDistance circles minimum distance
- * @param mask pixel mask
- */
- public static void halftoneCircles(MarvinImage imageIn, MarvinImage imageOut, int circleWidth, int shift, int circlesDistance, MarvinImageMask mask){
- halftoneCircles = checkAndLoadImagePlugin(halftoneCircles, Circles.class);
- halftoneCircles.setAttribute("circleWidth", circleWidth);
- halftoneCircles.setAttribute("shift", shift);
- halftoneCircles.setAttribute("circlesDistance", circlesDistance);
- halftoneCircles.process(imageIn, imageOut, mask);
- }
-
- /**
- * Image halftone using circles approach
- * @param imageIn input image
- * @param imageOut output image
- * @param circleWidth circle max width
- * @param shift circle shift
- * @param circlesDistance circles minimum distance
- */
- public static void halftoneCircles(MarvinImage imageIn, MarvinImage imageOut, int circleWidth, int shift, int circlesDistance){
- halftoneCircles(imageIn, imageOut, circleWidth, shift, circlesDistance, MarvinImageMask.NULL_MASK);
- }
-
- /*==============================================================================================
- | HALFTONE DITHERING
- ==============================================================================================*/
- /**
- * Image halftone using dithering approach
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void halftoneDithering(MarvinImage imageIn, MarvinImage imageOut){
- halftoneDithering = checkAndLoadImagePlugin(halftoneDithering, Dithering.class);
- halftoneDithering.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | HALFTONE ERROR DIFFUSION
- ==============================================================================================*/
- /**
- * Image halftone using error diffusion approach
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void halftoneErrorDiffusion(MarvinImage imageIn, MarvinImage imageOut){
- halftoneErrorDiffusion = checkAndLoadImagePlugin(halftoneErrorDiffusion, ErrorDiffusion.class);
- halftoneErrorDiffusion.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | HALFTONE RAYLANDERS
- ==============================================================================================*/
- /**
- * Image halftone using raylander's approach
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void halftoneRaylanders(MarvinImage imageIn, MarvinImage imageOut){
- halftoneRylanders = checkAndLoadImagePlugin(halftoneRylanders, Rylanders.class);
- halftoneRylanders.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | HARRIS CORNER
- ==============================================================================================*/
- /**
- * Harris corner detector
- * @param imageIn input image
- * @param matrixSize matrix size
- * @param threshold corners estimation threshold
- * @param k param k
- */
- public static void harrisCorner(MarvinImage imageIn, int matrixSize, int threshold, double k){
- harris = checkAndLoadImagePlugin(harris, Harris.class);
- harris.setAttribute("matrixSize", matrixSize);
- harris.setAttribute("threshold", threshold);
- harris.setAttribute("k", k);
- harris.process(imageIn, imageIn);
- }
-
- /*==============================================================================================
- | HISTOGRAM EQUALIZATION
- ==============================================================================================*/
- /**
- * Histogram based image equalization.
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void histogramEqualization(MarvinImage imageIn, MarvinImage imageOut){
- histogramEqualization = checkAndLoadImagePlugin(histogramEqualization, HistogramEqualization.class);
- histogramEqualization.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | INVERT COLORS
- ==============================================================================================*/
- /**
- * Inverts image colors.
- * @param imageIn input image
- */
- public static void invertColors(MarvinImage image){
- invertColors(image, image);
- }
-
- /**
- * Inverts image colors.
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void invertColors(MarvinImage imageIn, MarvinImage imageOut){
- invertColors(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Inverts image colors.
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void invertColors(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- invertColors = checkAndLoadImagePlugin(invertColors, Invert.class);
- invertColors.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | MERGE PHOTOS
- ==============================================================================================*/
- /**
- * Merge multiple photos from the same scene.
- * @param images input image
- * @param imageOut output image
- * @param threshold threshold considering in pixel comparison.
- */
- public static void mergePhotos(List images, MarvinImage imageOut, int threshold){
- mergePhotos = checkAndLoadImagePlugin(mergePhotos, MergePhotos.class);
- mergePhotos.setAttribute("threshold", threshold);
- mergePhotos.process(images, imageOut);
- }
-
- /*==============================================================================================
- | MORAVEC
- ==============================================================================================*/
- /**
- * Moravec corner detection
- * @param imageIn input image
- * @param imageOut output image
- * @param matrixSize matrix size
- * @param threshold corners estimation threshold
- * @return cornerness map
- */
- public static int[][] moravec(MarvinImage imageIn, MarvinImage imageOut, int matrixSize, int threshold){
- moravec = checkAndLoadImagePlugin(moravec, Moravec.class);
- moravec.setAttribute("matrixSize", matrixSize);
- moravec.setAttribute("threshold", threshold);
- MarvinAttributes ret = new MarvinAttributes();
- moravec.process(imageIn, imageOut, ret);
- return (int[][])ret.get("cornernessMap");
- }
-
- /*==============================================================================================
- | MORPHOLOCIAL BOUNDARY
- ==============================================================================================*/
- /**
- * Morphological boundary operation
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void morphologicalBoundary(MarvinImage imageIn, MarvinImage imageOut){
- morphologicalBoundary = checkAndLoadImagePlugin(morphologicalBoundary, Boundary.class);
- morphologicalBoundary.setAttribute("matrix", boolean_3x3);
- morphologicalBoundary.process(imageIn, imageOut);
- }
-
- /**
- * Morphological boundary operation
- * @param imageIn input image
- * @param imageOut output image
- * @param matrix operation matrix.
- */
- public static void morphologicalBoundary(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
- morphologicalBoundary = checkAndLoadImagePlugin(morphologicalBoundary, Boundary.class);
- morphologicalBoundary.setAttribute("matrix", matrix);
- morphologicalBoundary.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | MORPHOLOCIAL CLOSING
- ==============================================================================================*/
- /**
- * Morphological closing operation
- * @param imageIn input image
- * @param imageOut output image
- * @param matrix matrix
- */
- public static void morphologicalClosing(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
- morphologicalClosing = checkAndLoadImagePlugin(morphologicalClosing, Closing.class);
- morphologicalClosing.setAttribute("matrix", matrix);
- morphologicalClosing.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | MORPHOLOCIAL DILATION
- ==============================================================================================*/
- /**
- * Morphological dilation operation
- * @param imageIn input image
- * @param imageOut output image
- * @param matrix matrix
- */
- public static void morphologicalDilation(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
- morphologicalDilation = checkAndLoadImagePlugin(morphologicalDilation, Dilation.class);
- morphologicalDilation.setAttribute("matrix", matrix);
- morphologicalDilation.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | MORPHOLOCIAL EROSION
- ==============================================================================================*/
- /**
- * Morphological erosion operation
- * @param imageIn input image
- * @param imageOut output image
- * @param matrix matrix
- */
- public static void morphologicalErosion(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
- morphologicalErosion = checkAndLoadImagePlugin(morphologicalErosion, Erosion.class);
- morphologicalErosion.setAttribute("matrix", matrix);
- morphologicalErosion.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | MORPHOLOCIAL OPENING
- ==============================================================================================*/
- /**
- * Morphological opening operation
- * @param imageIn input image
- * @param imageOut output image
- * @param matrix matrix
- */
- public static void morphologicalOpening(MarvinImage imageIn, MarvinImage imageOut, boolean[][] matrix){
- morphologicalOpening = checkAndLoadImagePlugin(morphologicalOpening, Opening.class);
- morphologicalOpening.setAttribute("matrix", matrix);
- morphologicalOpening.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | MORPHOLOCIAL THINNING
- ==============================================================================================*/
- /**
- * Morphological thinning operation
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void morphologicalThinning(MarvinImage imageIn, MarvinImage imageOut){
- morphologicalThinning = checkAndLoadImagePlugin(morphologicalThinning, Thinning.class);
- morphologicalThinning.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | MOSAIC
- ==============================================================================================*/
- /**
- * Mosaic artistic filter
- * @param imageIn input image
- * @param imageOut output image
- * @param shape shape ("squares", "triangles")
- * @param width mosaic width
- * @param border has border?
- */
- public static void mosaic(MarvinImage imageIn, MarvinImage imageOut, String shape, int width, boolean border){
- mosaic = checkAndLoadImagePlugin(mosaic, Mosaic.class);
- mosaic.setAttribute("shape", shape);
- mosaic.setAttribute("width", width);
- mosaic.setAttribute("border", border);
- mosaic.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | PIXELIZE
- ==============================================================================================*/
- public static void pixelize(MarvinImage imageIn, MarvinImage imageOut, int squareSide){
- pixelize(imageIn, imageOut, squareSide, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Pixelize filter
- * @param imageIn input image
- * @param imageOut output image
- * @param squareSide square side
- * @param mask pixel mask
- */
- public static void pixelize(MarvinImage imageIn, MarvinImage imageOut, int squareSide, MarvinImageMask mask){
- pixelize = checkAndLoadImagePlugin(pixelize, Pixelize.class);
- pixelize.setAttribute("squareSide", squareSide);
- pixelize.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | PREWITT
- ==============================================================================================*/
- public static void prewitt(MarvinImage imageIn, MarvinImage imageOut){
- prewitt(imageIn, imageOut, 1, MarvinImageMask.NULL_MASK);
- }
-
- public static void prewitt(MarvinImage imageIn, MarvinImage imageOut, double intensity){
- prewitt(imageIn, imageOut, intensity, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Edge detection using prewitt approach
- * @param imageIn input image
- * @param imageOut output image
- * @param intensity edge intensity
- * @param mask pixel mask
- */
- public static void prewitt(MarvinImage imageIn, MarvinImage imageOut, double intensity, MarvinImageMask mask){
- prewitt = checkAndLoadImagePlugin(prewitt, Prewitt.class);
- prewitt.setAttribute("intensity", intensity);
- prewitt.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | QUANTIZATION GRAY SCALE
- ==============================================================================================*/
- /**
- * Gray scale color quantization
- * @param imageIn input image
- * @param imageOut output image
- * @param shades number of shades of gray
- */
- public static void quantizationGrayScale(MarvinImage imageIn, MarvinImage imageOut, int shades){
- quantizationGrayScale = checkAndLoadImagePlugin(quantizationGrayScale, GrayScaleQuantization.class);
- quantizationGrayScale.setAttributes("shades", shades);
- quantizationGrayScale.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | ROBERTS
- ==============================================================================================*/
- /**
- * Edge detection using roberts approach
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void roberts(MarvinImage imageIn, MarvinImage imageOut){
- roberts(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Edge detection using roberts approach
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void roberts(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- roberts = checkAndLoadImagePlugin(roberts, Roberts.class);
- roberts.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | SCALE
- ==============================================================================================*/
- /**
- * Scale image.
- * @param imageIn input image
- * @param imageOut output image
- * @param width new width
- * @param height new height
- */
- public static void scale(MarvinImage imageIn, MarvinImage imageOut, int width, int height){
- scale = checkAndLoadImagePlugin(roberts, Scale.class);
- scale.setAttribute("newWidth", width);
- scale.setAttribute("newHeight", height);
- scale.process(imageIn, imageOut);
- }
-
- /**
- * Scale image.
- * @param imageIn input image
- * @param imageOut output image
- * @param width new width. Height is set to be proportional to the original image aspect.
- */
- public static void scale(MarvinImage imageIn, MarvinImage imageOut, int width){
- int cWidth = imageIn.getWidth();
- int cHeight = imageIn.getHeight();
- double cFactor = (double)cHeight/cWidth;
- int newHeight= (int)Math.ceil(cFactor*width);
- scale(imageIn, imageOut, width, newHeight);
- }
-
-
- /*==============================================================================================
- | SEPIA
- ==============================================================================================*/
-
- /**
- * Sepia filter
- * @param imageIn input image
- * @param intensity filter intensity
- */
- public static void sepia(MarvinImage image, int intensity){
- sepia(image, image, intensity);
- }
-
- /**
- * Sepia filter
- * @param imageIn input image
- * @param imageOut output image
- * @param intensity filter intensity
- */
- public static void sepia(MarvinImage imageIn, MarvinImage imageOut, int intensity){
- sepia(imageIn, imageOut, intensity, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Sepia filter
- * @param imageIn input image
- * @param imageOut output image
- * @param intensity filter intensity
- * @param mask pixel mask.
- */
- public static void sepia(MarvinImage imageIn, MarvinImage imageOut, int intensity, MarvinImageMask mask){
- sepia = checkAndLoadImagePlugin(sepia, Sepia.class);
- sepia.setAttribute("intensity", intensity);
- sepia.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | SOBEL
- ==============================================================================================*/
- /**
- * Edge detection using sobel approach
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void sobel(MarvinImage imageIn, MarvinImage imageOut){
- sobel(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Edge detection using sobel approach
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void sobel(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- sobel = checkAndLoadImagePlugin(sobel, Sobel.class);
- sobel.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | SKIN COLOR DETECTION
- ==============================================================================================*/
-
- /**
- * Human skin color filter.
- * @param imageIn input image
- */
- public static void skinColorDetection(MarvinImage image){
- skinColorDetection(image, image);
- }
-
- /**
- * Human skin color filter.
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void skinColorDetection(MarvinImage imageIn, MarvinImage imageOut){
- skinColorDetection(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Human skin color filter.
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void skinColorDetection(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- skinColorDetection = checkAndLoadImagePlugin(skinColorDetection, SkinColorDetection.class);
- skinColorDetection.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | SUSAN CORNER
- ==============================================================================================*/
- /**
- * Corner detection using susan approach
- * @param imageIn input image
- * @param matrixSize matrix size
- * @param threshold corner estimation threshold
- */
- public static void susanCorner(MarvinImage imageIn, int matrixSize, int threshold){
- susan = checkAndLoadImagePlugin(susan, Susan.class);
- susan.setAttribute("matrixSize", matrixSize);
- susan.setAttribute("threshold", threshold);
- susan.process(imageIn, imageIn);
- }
-
- /*==============================================================================================
- | TELEVISION
- ==============================================================================================*/
- /**
- * Television artisic filter
- * @param imageIn input image
- */
- public static void television(MarvinImage image){
- television(image, image);
- }
-
- /**
- * Television artisic filter
- * @param imageIn input image
- * @param imageOut output image
- */
- public static void television(MarvinImage imageIn, MarvinImage imageOut){
- television(imageIn, imageOut, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Television artisic filter
- * @param imageIn input image
- * @param imageOut output image
- * @param mask pixel mask
- */
- public static void television(MarvinImage imageIn, MarvinImage imageOut, MarvinImageMask mask){
- television = checkAndLoadImagePlugin(television, Television.class);
- television.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | THRESHOLDING
- ==============================================================================================*/
- /**
- * Converts pixels to black and white given a threshold
- * @param imageIn input image
- * @param threshold threshold
- */
- public static void thresholding(MarvinImage image, int threshold){
- thresholding(image, image, threshold);
- }
-
- /**
- * Converts pixels to black and white given a threshold
- * @param imageIn input image
- * @param threshold threshold
- * @param thresholdRange threshold values range
- */
- public static void thresholding(MarvinImage image, int threshold, int thresholdRange){
- thresholding(image, image, threshold, thresholdRange);
- }
-
- /**
- * Converts pixels to black and white given a threshold
- * @param imageIn input image
- * @param imageOut output image
- * @param threshold threshold
- */
- public static void thresholding(MarvinImage imageIn, MarvinImage imageOut, int threshold){
- thresholding(imageIn, imageOut, threshold, -1);
- }
-
- /**
- * Converts pixels to black and white given a threshold
- * @param imageIn input image
- * @param imageOut output image
- * @param threshold threshold
- * @param thresholdRange threshold values range
- */
- public static void thresholding(MarvinImage imageIn, MarvinImage imageOut, int threshold, int thresholdRange){
- thresholding(imageIn, imageOut, threshold, thresholdRange, MarvinImageMask.NULL_MASK);
- }
-
- /**
- * Converts pixels to black and white given a threshold
- * @param imageIn input image
- * @param imageOut output image
- * @param threshold threshold
- * @param thresholdRange threshold values range
- * @param mask pixel mask
- */
- public static void thresholding(MarvinImage imageIn, MarvinImage imageOut, int threshold, int thresholdRange, MarvinImageMask mask){
- thresholding = checkAndLoadImagePlugin(thresholding, Thresholding.class);
- thresholding.setAttribute("threshold",threshold);
- thresholding.setAttribute("thresholdRange",thresholdRange);
- thresholding.process(imageIn, imageOut, mask);
- }
-
- /*==============================================================================================
- | THRESHOLDING NEIGHBORHOOD
- ==============================================================================================*/
- /**
- * Converts pixels to black and white considering a threshold to the average intensity of pixel neighbors
- * @param imageIn input image
- * @param imageOut output image
- * @param thresholdPercentageOfAverage threshold percentage of average intensity [0, 1.0]
- * @param neighborhoodSide side of the neighborhood square
- * @param samplingPixelDistance 1 to process every pixel, higher values to skip pixels in the sampling process.
- */
- public static void thresholdingNeighborhood(MarvinImage imageIn, MarvinImage imageOut, double thresholdPercentageOfAverage, int neighborhoodSide, int samplingPixelDistance){
- thresholdingNeighborhood = checkAndLoadImagePlugin(thresholding, ThresholdingNeighborhood.class);
- thresholdingNeighborhood.setAttribute("thresholdPercentageOfAverage",thresholdPercentageOfAverage);
- thresholdingNeighborhood.setAttribute("neighborhoodSide",neighborhoodSide);
- thresholdingNeighborhood.setAttribute("samplingPixelDistance",samplingPixelDistance);
- thresholdingNeighborhood.process(imageIn, imageOut);
- }
-
- /*==============================================================================================
- | THUMBNAIL
- ==============================================================================================*/
- public static void thumbnailByWidth(MarvinImage imageIn, MarvinImage imageOut, int newWidth){
- scale(imageIn, imageOut, newWidth);
- }
-
- public static void thumbnailByHeight(MarvinImage imageIn, MarvinImage imageOut, int newHeight){
- double factor = (double)imageIn.getWidth()/imageIn.getHeight();
- int newWidth = (int)(newHeight * factor);
- scale(imageIn, imageOut, newWidth);
- }
-
- /*==============================================================================================
- | WATERSHED
- ==============================================================================================*/
- /**
- * Watershed transform
- * @param imageIn input image
- * @return
- */
- public static int[][] watershed(MarvinImage imageIn){
- watershed = checkAndLoadImagePlugin(watershed, Watershed.class);
- MarvinAttributes attr = new MarvinAttributes();
- thresholding.process(imageIn, imageIn, attr);
- return (int[][])attr.get("labels");
- }
-
-
- private static MarvinImagePlugin checkAndLoadImagePlugin(MarvinImagePlugin ref, Class extends MarvinImagePlugin> clazz){
- // Plug-in already loaded
- if(ref != null){
- return ref;
- }
- try{
- MarvinImagePlugin plugin = clazz.getConstructor().newInstance();
- plugin.load();
- return plugin;
- } catch(Exception e){
- /* Not expected to get here */
- e.printStackTrace();
- return null;
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/artistic/mosaic/Mosaic.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/artistic/mosaic/Mosaic.java
deleted file mode 100644
index 0a77d88..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/artistic/mosaic/Mosaic.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.artistic.mosaic;
-
-
-import java.awt.Color;
-import java.awt.Graphics;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Mosaic implementation
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 03/01/2008
- */
-public class Mosaic extends MarvinAbstractImagePlugin
-{
- private final static String SQUARES = "squares";
- private final static String TRIANGLES = "triangles";
-
- private int width;
- private String shape;
- private boolean border;
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private MarvinPerformanceMeter performanceMeter;
-
- public void load()
- {
- // Attributes
- attributes = getAttributes();
- attributes.set("width", 6);
- attributes.set("shape", SQUARES);
- attributes.set("border", true);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Tile witdh:");
- attributesPanel.addTextField("txtwidth", "width", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblWidth", "Format:");
- attributesPanel.addComboBox("combShape", "shape", new Object[]{SQUARES, TRIANGLES}, attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblWidth", "Edge:");
- attributesPanel.addComboBox("combBorder", "border", new Object[]{true, false}, attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean a_previewMode
- )
- {
- width = (Integer)attributes.get("width");
- shape = (String)attributes.get("shape");
- border = (Boolean)attributes.get("border");
-
- Graphics l_graphics = imageOut.getBufferedImage().getGraphics();
-
- performanceMeter.enableProgressBar("Mosaic", imageIn.getHeight()*width);
-
- if(shape.equals(SQUARES)){
- squaresMosaic(width, border, l_graphics, imageIn);
- }
- else if(shape.equals(TRIANGLES)){
- trianglesMosaic(width, border, l_graphics, imageIn);
- }
-
- imageOut.updateColorArray();
- performanceMeter.finish();
- }
-
- private void squaresMosaic(int width, boolean border, Graphics graphics, MarvinImage image){
- Color l_color;
-
- for (int y = 0; y < image.getHeight(); y+=width) {
- for (int x = 0; x < image.getWidth(); x+=width) {
- l_color = getSquareColor(x,y,image);
- graphics.setColor(l_color);
- graphics.fillRect((int)(x), (int)(y), (int)((width)), (int)((width)));
-
- if(border){
- graphics.setColor(Color.black);
- graphics.drawRect((int)(x), (int)(y), (int)((width)), (int)((width)));
- }
- }
- performanceMeter.stepsFinished(image.getWidth());
- }
- }
-
- private void trianglesMosaic(int width, boolean border, Graphics graphics, MarvinImage image){
- Color l_colorT1;
- Color l_colorT2;
- int t=-1;
- boolean l_aux=true;
-
- if
- (
- ((image.getWidth()/width)%2 == 0 && image.getWidth()%width==0) ||
- ((image.getWidth()/width)%2 == 1 && image.getWidth()%width!=0)
- )
- {
- l_aux=false;
- }
-
- for (int y = 0; y < image.getHeight(); y+=width) {
- for (int x = 0; x < image.getWidth(); x+=width) {
- if(t ==-1)
- {
- l_colorT1 = getTriangleColor(x,y,0, image);
- l_colorT2 = getTriangleColor(x,y,1, image);
-
- graphics.setColor(l_colorT1);
- graphics.fillPolygon(new int[]{x,x+width,x}, new int[]{y,y,y+width},3);
- if(border){
- graphics.setColor(Color.black);
- graphics.drawPolygon(new int[]{x,x+width,x}, new int[]{y,y,y+width},3);
- }
-
-
- graphics.setColor(l_colorT2);
- graphics.fillPolygon(new int[]{x+width,x+width,x}, new int[]{y,y+width,y+width},3);
- if(border){
- graphics.setColor(Color.black);
- graphics.drawPolygon(new int[]{x+width,x+width,x}, new int[]{y,y+width,y+width},3);
- }
- }
- else{
- l_colorT1 = getTriangleColor(x,y,2, image);
- l_colorT2 = getTriangleColor(x,y,3, image);
-
-
- graphics.setColor(l_colorT1);
- graphics.fillPolygon(new int[]{x,x+width,x+width}, new int[]{y,y,y+width},3);
- if(border){
- graphics.setColor(Color.black);
- graphics.drawPolygon(new int[]{x,x+width,x+width}, new int[]{y,y,y+width},3);
- }
-
-
-
- graphics.setColor(l_colorT2);
- graphics.fillPolygon(new int[]{x, x+width,x}, new int[]{y,y+width,y+width},3);
- if(border){
- graphics.setColor(Color.black);
- graphics.drawPolygon(new int[]{x, x+width,x}, new int[]{y,y+width,y+width},3);
- }
- }
- performanceMeter.stepsFinished(image.getWidth());
- t*=-1;
- }
- if(l_aux){
- t*=-1;
- }
- }
- }
-
- private Color getSquareColor(int aX, int aY, MarvinImage image){
- int l_red=-1;
- int l_green=-1;
- int l_blue=-1;
-
- for(int y=0; y 0 && aX+x < image.getWidth() && aY+y> 0 && aY+y < image.getHeight()){
- if(l_red == -1){
- l_red = image.getIntComponent0(aX+x,aY+y);
- l_green = image.getIntComponent1(aX+x,aY+y);
- l_blue = image.getIntComponent2(aX+x,aY+y);
- }
- else{
- l_red = (l_red+image.getIntComponent0(aX+x,aY+y))/2;
- l_green = (l_green+image.getIntComponent1(aX+x,aY+y))/2;
- l_blue = (l_blue+image.getIntComponent2(aX+x,aY+y))/2;
- }
- }
- }
- }
- return new Color(l_red,l_green,l_blue);
- }
-
- private Color getTriangleColor(int aX, int aY, int tringlePos, MarvinImage image){
- int l_red=-1;
- int l_green=-1;
- int l_blue=-1;
-
- int l_xInitial=0;
- int l_xOffSet=0;
- int l_xOffSetInc=0;
- int l_xInitalInc=0;
-
- switch(tringlePos){
- case 0:
- l_xInitial=1;
- l_xOffSet = width;
- l_xOffSetInc=-1;
- l_xInitalInc = 0;
- break;
- case 1:
- l_xInitial = width-1;
- l_xOffSet = width;
- l_xOffSetInc=0;
- l_xInitalInc = -1;
- break;
- case 2:
- l_xInitial=1;
- l_xOffSet = width;
- l_xOffSetInc=0;
- l_xInitalInc = 1;
- break;
- case 3:
- l_xInitial = 1;
- l_xOffSet = 1;
- l_xOffSetInc=1;
- l_xInitalInc = 0;
- break;
-
- }
-
- int x = l_xInitial;
- int y = 0;
-
- for(int w=0; w< width-1; w++){
- while(x < l_xOffSet){
- if(aX+x > 0 && aX+x < image.getWidth() && aY+y> 0 && aY+y < image.getHeight()){
- if(l_red == -1){
- l_red = image.getIntComponent0(aX+x,aY+y);
- l_green = image.getIntComponent1(aX+x,aY+y);
- l_blue = image.getIntComponent2(aX+x,aY+y);
- }
- else{
- l_red = (l_red+image.getIntComponent0(aX+x,aY+y))/2;
- l_green = (l_green+image.getIntComponent1(aX+x,aY+y))/2;
- l_blue = (l_blue+image.getIntComponent2(aX+x,aY+y))/2;
- }
- }
- x++;
- }
- l_xInitial+=l_xInitalInc;
- l_xOffSet+=l_xOffSetInc;
- x = l_xInitial;
- y++;
-
- }
- if(l_red == -1) l_red = 0;
- if(l_green == -1) l_green = 0;
- if(l_blue == -1) l_blue = 0;
- return new Color(l_red,l_green,l_blue);
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/artistic/television/Television.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/artistic/television/Television.java
deleted file mode 100644
index 5404657..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/artistic/television/Television.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.artistic.television;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Represent an image using red, green and blue lines.
- * @author Gabriel Ambrosio Archanjo
- * @version 1.0 02/28/2008
- */
-public class Television extends MarvinAbstractImagePlugin
-{
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- boolean[][] l_arrMask = mask.getMask();
-
- int r,g,b;
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y+=3) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- r=0;
- g=0;
- b=0;
-
- for(int w=0; w<3; w++){
- if(y+w < imageIn.getHeight() ){
- r += (imageIn.getIntComponent0(x, y+w))/2;
- g += (imageIn.getIntComponent1(x, y+w))/2;
- b += (imageIn.getIntComponent2(x, y+w))/2;
- }
- }
- r = getValidInterval(r);
- g = getValidInterval(g);
- b = getValidInterval(b);
-
- for(int w=0; w<3; w++){
- if(y+w < imageOut.getHeight()){
- if(w == 0){
- imageOut.setIntColor(x,y+w,imageIn.getAlphaComponent(x, y), r,0,0);
- }
- else if(w ==1){
- imageOut.setIntColor(x,y+w,imageIn.getAlphaComponent(x, y), 0,g,0);
- }
- else if(w==2){
- imageOut.setIntColor(x,y+w,imageIn.getAlphaComponent(x, y), 0,0,b);
- }
- }
- }
- }
- }
- }
-
- public int getValidInterval(int value){
- if(value < 0) return 0;
- if(value > 255) return 255;
- return value;
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/background/determineFixedCameraBackground/DetermineFixedCameraBackground.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/background/determineFixedCameraBackground/DetermineFixedCameraBackground.java
deleted file mode 100644
index 3fcf8d6..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/background/determineFixedCameraBackground/DetermineFixedCameraBackground.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.marvinproject.image.background.determineFixedCameraBackground;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class DetermineFixedCameraBackground extends MarvinAbstractImagePlugin{
- private int[][][][] weights;
- private boolean initialized=false;
-
- public void load(){
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- private void initialize(MarvinImage imageIn){
- weights = new int[imageIn.getWidth()][imageIn.getHeight()][3][26];
- initialized=true;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- if(!initialized){
- initialize(imageIn);
- }
-
- for(int y=0; y max){
- max = arr[i];
- maxIndex = i;
- }
- }
-
- return maxIndex*10;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/background/determineSceneBackground/DetermineSceneBackground.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/background/determineSceneBackground/DetermineSceneBackground.java
deleted file mode 100644
index 27e230f..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/background/determineSceneBackground/DetermineSceneBackground.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.marvinproject.image.background.determineSceneBackground;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class DetermineSceneBackground extends MarvinAbstractImagePlugin{
-
- private int threshold;
-
- @Override
- public void load() {
- setAttribute("threshold", 30);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview
- ) {}
-
-
- @Override
- public void process
- (
- List images,
- MarvinImage imageOut
- ){
- threshold = (Integer)getAttribute("threshold");
- MarvinImage image0 = images.get(0);
- for(int y=0; y images, int threshold){
- List colors = new ArrayList();
- for(MarvinImage img:images){
-
- Integer[] c = new Integer[4];
- c[0] = img.getIntComponent0(x, y);
- c[1] = img.getIntComponent1(x, y);
- c[2] = img.getIntComponent2(x, y);
- c[3] = 0;
-
- if(colors.isEmpty()){
- colors.add(c);
- }
- else{
- boolean found=false;
- for(Integer[] c2:colors){
-
- if
- (
- Math.abs(c2[0]-c[0]) < threshold*0.3 &&
- Math.abs(c2[1]-c[1]) < threshold*0.3 &&
- Math.abs(c2[2]-c[2]) < threshold*0.3
- ){
- c2[0] = (c2[0]+c[0])/2;
- c2[1] = (c2[1]+c[1])/2;
- c2[2] = (c2[2]+c[2])/2;
- c2[3]++;
- found=true;
- break;
- }
- }
-
- if(!found){
- colors.add(c);
- }
- }
- }
-
- int max=-1;
- int maxIndex=0;
- Integer[] c2 = null;
- for(int i=0; i max){
- max = c2[3];
- maxIndex = i;
- }
- }
- c2 = colors.get(maxIndex);
- return 0xFF + (c2[0] << 16) + (c2[1] << 8) + c2[2];
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/blur/gaussianBlur/GaussianBlur.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/blur/gaussianBlur/GaussianBlur.java
deleted file mode 100644
index ef20f72..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/blur/gaussianBlur/GaussianBlur.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.blur.gaussianBlur;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Gaussian blur implementation. This algorithm can be optimized in many ways.
- * @author Gabriel Ambrósio Archanjo, Martin Mihályi
- * @version 1.0 02/13/2008
- */
-public class GaussianBlur extends MarvinAbstractImagePlugin
-{
- private final static int RED = 0;
- private final static int GREEN = 1;
- private final static int BLUE = 2;
-
- MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
- MarvinPerformanceMeter performanceMeter;
-
- double kernelMatrix[][];
- double resultMatrix[][][];
- double appiledkernelMatrix[][];
- int radius;
- public void load()
- {
- // Attributes
- attributes = getAttributes();
- attributes.set("radius",3);
- performanceMeter = new MarvinPerformanceMeter();
- radius = 3;
- kernelMatrix = getGaussianKernel();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Radius:");
- attributesPanel.addTextField("txtRadius", "radius", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- radius = (Integer)attributes.get("radius");
-
- int l_imageWidth = imageIn.getWidth();
- int l_imageHeight = imageIn.getHeight();
-
- performanceMeter.start("Gaussian Blur");
- performanceMeter.enableProgressBar("Gaussian Blur", (l_imageWidth*l_imageHeight)+l_imageWidth);
-
- int l_pixelColor;
- kernelMatrix = getGaussianKernel();
- resultMatrix = new double[l_imageWidth][l_imageHeight][3];
- appiledkernelMatrix = new double[l_imageWidth][l_imageHeight];
-
- boolean[][] l_arrMask = mask.getMask();
- performanceMeter.startEvent("Apply Kernel");
- for (int x = 0; x < l_imageWidth; x++) {
- for (int y = 0; y < l_imageHeight; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- l_pixelColor = imageIn.getIntColor(x,y);
- applyKernel(x,y,l_pixelColor,imageOut);
- }
- performanceMeter.incProgressBar(l_imageHeight);
- }
- performanceMeter.finishEvent();
-
-
- performanceMeter.startEvent("Apply result");
- for (int x = 0; x < l_imageWidth; x++) {
- for (int y = 0; y < l_imageHeight; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- resultMatrix[x][y][RED] = (short)((resultMatrix[x][y][0]/appiledkernelMatrix[x][y])%256);
- resultMatrix[x][y][GREEN] = (short)((resultMatrix[x][y][1]/appiledkernelMatrix[x][y])%256);
- resultMatrix[x][y][BLUE] = (short)((resultMatrix[x][y][2]/appiledkernelMatrix[x][y])%256);
- imageOut.setIntColor(x,y,imageIn.getAlphaComponent(x, y), (int)resultMatrix[x][y][0], (int)resultMatrix[x][y][1], (int)resultMatrix[x][y][2]);
- }
- performanceMeter.incProgressBar();
- performanceMeter.stepsFinished(l_imageHeight);
- }
- performanceMeter.finishEvent();
-
- performanceMeter.finish();
- }
-
- /*
- * Calc Gaussian Matrix.
- */
- private double[][] getGaussianKernel(){
- double l_matrix[][] = new double[(radius*2)+1][(radius*2)+1];
- double l_q=radius/3.0;
- double l_distance;
- double l_x;
- double l_y;
-
- performanceMeter.startEvent("Generate Gaussian Kernel");
- for(int x=1; x<=(radius*2)+1; x++){
- for(int y=1; y<=(radius*2)+1; y++){
- l_x = Math.abs(x-(radius+1));
- l_y = Math.abs(y-(radius+1));
- l_distance = Math.sqrt((l_x*l_x)+(l_y*l_y));
- l_matrix[y-1][x-1] = ( (1.0/(2.0*Math.PI*l_q*l_q))* Math.exp( (-(l_distance*l_distance)) / (2.0*l_q*l_q) ) );
- }
- performanceMeter.stepsFinished(radius*2);
- }
- performanceMeter.finishEvent();
- return l_matrix;
- }
-
- /*
- * Apply the blur matrix on a image region.
- */
- private void applyKernel(int centerPixel_X, int centerPixel_Y, int pixelColor, MarvinImage image)
- {
- for(int y=centerPixel_Y; y= 0 && x-radius < image.getWidth() && y-radius >= 0 && y-radius < image.getHeight()){
- resultMatrix[x-radius][y-radius][RED]+= (((pixelColor & 0x00FF0000) >>> 16)*kernelMatrix[x-centerPixel_X][y-centerPixel_Y]);
- resultMatrix[x-radius][y-radius][GREEN]+= (((pixelColor & 0x0000FF00) >>> 8)*kernelMatrix[x-centerPixel_X][y-centerPixel_Y]);
- resultMatrix[x-radius][y-radius][BLUE]+= ((pixelColor & 0x000000FF)*kernelMatrix[x-centerPixel_X][y-centerPixel_Y]);
- appiledkernelMatrix[x-radius][y-radius] += kernelMatrix[x-centerPixel_X][y-centerPixel_Y];
- }
- }
- performanceMeter.stepsFinished(radius*2);
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/blur/pixelize/Pixelize.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/blur/pixelize/Pixelize.java
deleted file mode 100644
index ffd5b23..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/blur/pixelize/Pixelize.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.blur.pixelize;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Pixelize
- * @author Gabriel Ambrosio Archanjo
- * @version 1.0 02/28/2008
- */
-public class Pixelize extends MarvinAbstractImagePlugin
-{
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
- private boolean[][] arrMask;
-
- public void load(){
- // Attributes
- attributes = getAttributes();
- attributes.set("squareSide", 10);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblSquareSide", "Square Side");
- attributesPanel.addTextField("txtSquareSide", "squareSide", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- int l_rgb;
-
- int squareSide = (Integer)attributes.get("squareSide");
- arrMask = mask.getMask();
-
- for (int x = 0; x < imageIn.getWidth(); x+=squareSide) {
- for (int y = 0; y < imageIn.getHeight(); y+=squareSide) {
- l_rgb = getPredominantRGB(imageIn, x,y,squareSide);
- fillRect(imageOut, x,y,squareSide, l_rgb);
- }
- }
- }
-
- private int getPredominantRGB(MarvinImage a_image, int a_x, int a_y, int a_squareSide){
- int l_red=-1;
- int l_green=-1;
- int l_blue=-1;
-
- for(int x=a_x; x= 0 && i< image.getWidth() && j >= 0 && j < image.getHeight()){
- totalAlpha += image.getAlphaComponent(i, j);
- totalPixels++;
- }
- }
- }
-
- newAlpha = totalAlpha/totalPixels;
-
- if(newAlpha < oldAlpha)
- image.setAlphaComponent(x, y, newAlpha);
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/blackAndWhite/BlackAndWhite.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/blackAndWhite/BlackAndWhite.java
deleted file mode 100644
index b41a6f2..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/blackAndWhite/BlackAndWhite.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.marvinproject.image.color.blackAndWhite;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-public class BlackAndWhite extends MarvinAbstractImagePlugin{
-
- private final static double MAX_RLEVEL = 0.03;
- private MarvinImagePlugin grayScale;
-
- @Override
- public void load() {
- grayScale = new GrayScale();
- grayScale.load();
- setAttribute("level", 10);
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview
- ) {
- grayScale.process(imageIn, imageOut);
- int level = (Integer)getAttribute("level");
- double rlevel = (level/100.0)*MAX_RLEVEL;
-
- int gray;
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.brightnessAndContrast;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-
-/**
- * Brightness and Constrast manipulation plug-in.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/28/2008
- */
-public class BrightnessAndContrast extends MarvinAbstractImagePlugin
-{
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- public void load(){
- // Attributes
- attributes = getAttributes();
- attributes.set("brightness", 0);
- attributes.set("contrast", 0);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblBrightness", "Brightness");
- attributesPanel.addHorizontalSlider("sliderBrightness", "brightness", -127, 127, 0, attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblContrast", "Contrast");
- attributesPanel.addHorizontalSlider("sliderContrast", "contrast", -127, 127, 0, attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- double r,g,b;
- double l_brightness = (Integer)attributes.get("brightness");
- double l_contrast = (Integer)attributes.get("contrast");
- l_contrast = Math.pow((127 + l_contrast)/127, 2);
-
- // Brightness
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y++) {
- r = imageIn.getIntComponent0(x, y);
- g = imageIn.getIntComponent1(x, y);
- b = imageIn.getIntComponent2(x, y);
-
- r+= (1-(r/255))*l_brightness;
- g+= (1-(g/255))*l_brightness;
- b+= (1-(b/255))*l_brightness;
- if(r < 0) r=0;
- if(r > 255) r=255;
- if(g < 0) g=0;
- if(g > 255) g=255;
- if(b < 0) b=0;
- if(b > 255) b=255;
-
- imageOut.setIntColor(x,y,imageIn.getAlphaComponent(x, y), (int)r,(int)g,(int)b);
- }
- }
-
- // Contrast
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y++) {
- r = imageOut.getIntComponent0(x, y);
- g = imageOut.getIntComponent1(x, y);
- b = imageOut.getIntComponent2(x, y);
-
-
- r /= 255.0;
- r -= 0.5;
- r *= l_contrast;
- r += 0.5;
- r *= 255.0;
-
- g /= 255.0;
- g -= 0.5;
- g *= l_contrast;
- g += 0.5;
- g *= 255.0;
-
- b /= 255.0;
- b -= 0.5;
- b *= l_contrast;
- b += 0.5;
- b *= 255.0;
-
-
- if(r < 0) r=0;
- if(r > 255) r=255;
- if(g < 0) g=0;
- if(g > 255) g=255;
- if(b < 0) b=0;
- if(b > 255) b=255;
-
- imageOut.setIntColor(x,y,imageIn.getAlphaComponent(x, y), (int)r,(int)g,(int)b);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/colorChannel/ColorChannel.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/colorChannel/ColorChannel.java
deleted file mode 100644
index f088980..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/colorChannel/ColorChannel.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.marvinproject.image.color.colorChannel;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class ColorChannel extends MarvinAbstractImagePlugin{
-
- @Override
- public void load() {
- setAttribute("red", 0);
- setAttribute("green", 0);
- setAttribute("blue", 0);
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview
- ) {
-
- int vr = (Integer)getAttribute("red");
- int vg = (Integer)getAttribute("green");
- int vb = (Integer)getAttribute("blue");
-
- double mr = 1+Math.abs((vr/100.0)*2.5);
- double mg = 1+Math.abs((vg/100.0)*2.5);
- double mb = 1+Math.abs((vb/100.0)*2.5);
-
- mr = (vr > 0? mr : 1.0/mr);
- mg = (vg > 0? mg : 1.0/mg);
- mb = (vb > 0? mb : 1.0/mb);
-
- int red,green,blue;
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.emboss;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Invert the pixels color to create an emboss effect.
- * @author Chris Mack
- * @version 1.0 12/07/2011
- */
-public class Emboss extends MarvinAbstractImagePlugin
-{
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < a_imageIn.getWidth(); x++) {
- for (int y = 0; y < a_imageIn.getHeight(); y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- a_imageOut.setIntColor(x, y, 255, a_imageIn.getIntColor(x, y));
- continue;
- }
-
- int rDiff=0;
- int gDiff=0;
- int bDiff=0;
-
- if (y > 0 && x > 0){
-
- // Red component difference between the current and the upperleft pixels
- rDiff = a_imageIn.getIntComponent0(x, y) - a_imageIn.getIntComponent0(x-1, y-1);
-
- // Green component difference between the current and the upperleft pixels
- gDiff = a_imageIn.getIntComponent1(x, y) - a_imageIn.getIntComponent1(x-1, y-1);
-
- // Blue component difference between the current and the upperleft pixels
- bDiff = a_imageIn.getIntComponent2(x, y) - a_imageIn.getIntComponent2(x-1, y-1);
-
- }
- else{
- rDiff = 0;
- gDiff = 0;
- bDiff = 0;
- }
-
- int diff = rDiff;
- if (Math.abs (gDiff) > Math.abs (diff))
- diff = gDiff;
- if (Math.abs (bDiff) > Math.abs (diff))
- diff = bDiff;
-
- int grayLevel = Math.max (Math.min (128 + diff, 255),0);
-
- a_imageOut.setIntColor(x, y, 255, grayLevel, grayLevel, grayLevel);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/grayScale/GrayScale.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/grayScale/GrayScale.java
deleted file mode 100644
index 9605ca6..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/grayScale/GrayScale.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.grayScale;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Represents an image in gray scale.
- * @author Fábio Andrijauskas
- * @version 1.0 02/28/2008
- */
-public class GrayScale extends MarvinAbstractImagePlugin
-{
- MarvinPerformanceMeter performanceMeter;
- MarvinAttributes attributes;
-
- public void load(){
- performanceMeter = new MarvinPerformanceMeter();
- attributes = getAttributes();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- // Mask
- boolean[][] l_arrMask = mask.getMask();
-
- performanceMeter.start("Gray");
- performanceMeter.startEvent("Gray");
- int r,g,b,finalColor;
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- //Red - 30% / Green - 59% / Blue - 11%
- r = imageIn.getIntComponent0(x, y);
- g = imageIn.getIntComponent1(x, y);
- b = imageIn.getIntComponent2(x, y);
- finalColor = (int)((r*0.3)+(g*0.59)+(b*0.11));
- imageOut.setIntColor(x,y,imageIn.getAlphaComponent(x, y), finalColor,finalColor,finalColor);
-
- }
- performanceMeter.stepsFinished(imageIn.getHeight());
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-}
-
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/invert/Invert.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/invert/Invert.java
deleted file mode 100644
index d7c74aa..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/invert/Invert.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.invert;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Invert the pixels color.
- * @author Gabriel Ambrosio Archanjo
- * @version 1.0 02/28/2008
- */
-public class Invert extends MarvinAbstractImagePlugin
-{
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- boolean[][] l_arrMask = mask.getMask();
-
- int r, g, b;
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- r = (255-(int)imageIn.getIntComponent0(x, y));
- g = (255-(int)imageIn.getIntComponent1(x, y));
- b = (255-(int)imageIn.getIntComponent2(x, y));
-
- imageOut.setIntColor(x,y,imageIn.getAlphaComponent(x, y), r,g,b);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/sepia/Sepia.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/sepia/Sepia.java
deleted file mode 100644
index 8347c49..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/sepia/Sepia.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.sepia;
-
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
-import javax.swing.JSlider;
-import javax.swing.JTextField;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-/**
- * Sepia plug-in. Reference: {@link http://forum.java.sun.com/thread.jspa?threadID=728795&messageID=4195478}
- * @author Hugo Henrique Slepicka
- * @version 1.0.2 04/10/2008
- */
-public class Sepia extends MarvinAbstractImagePlugin implements ChangeListener, KeyListener{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private MarvinPerformanceMeter performanceMeter;
-
-
- public void load() {
- attributes = getAttributes();
- attributes.set("txtValue", "20");
- attributes.set("intensity", 20);
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- int r, g, b, depth, corfinal;
-
- //Define a intensidade do filtro...
- depth = Integer.parseInt(attributes.get("intensity").toString());
-
- int width = imageIn.getWidth();
- int height = imageIn.getHeight();
-
- //performanceMeter.enableProgressBar("Filtro de Teste", ((height-2)*(width-2)));
-
- boolean[][] l_arrMask = mask.getMask();
-
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- //Captura o RGB do ponto...
- r = imageIn.getIntComponent0(x, y);
- g = imageIn.getIntComponent1(x, y);
- b = imageIn.getIntComponent2(x, y);
-
- //Define a cor como a média aritmética do pixel...
- corfinal = (r + g + b) / 3;
- r = g = b = corfinal;
-
- r = truncate(r + (depth * 2));
- g = truncate(g + depth);
-
- //Define a nova cor do ponto...
- imageOut.setIntColor(x, y, imageIn.getAlphaComponent(x, y), r, g, b);
- }
- //performanceMeter.incProgressBar(width-2);
- }
- //performanceMeter.finish();
- }
-
- /**
- * Sets the RGB between 0 and 255
- * @param a
- * @return
- */
- public int truncate(int a) {
- if (a < 0) return 0;
- else if (a > 255) return 255;
- else return a;
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblIntensidade", "Intensidade do Filtro");
- attributesPanel.addHorizontalSlider("hsIntensidade", "hsIntensidade", 0, 100, 20, attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addTextField("txtValue", "txtValue",attributes);
-
- JTextField txtValue = (JTextField)(attributesPanel.getComponent("txtValue").getComponent());
- JSlider slider = (JSlider)(attributesPanel.getComponent("hsIntensidade").getComponent());
-
- slider.addChangeListener(this);
- txtValue.addKeyListener(this);
- }
-
- return attributesPanel;
- }
-
- //Manipula as alteraçőes da Horizontal Bar
- //Handles the Horizontal Bar changes
- public void stateChanged(ChangeEvent e) {
- JSlider barra = (JSlider) (e.getSource());
- JTextField lbl = (JTextField)(attributesPanel.getComponent("txtValue").getComponent());
- lbl.setText(""+barra.getValue());
- }
-
- public void keyPressed(KeyEvent e) {
-
- }
-
- public void keyReleased(KeyEvent e) {
- JTextField txtValor = (JTextField) (attributesPanel.getComponent("txtValue").getComponent());
- JSlider barra = (JSlider) (attributesPanel.getComponent("hsIntensidade").getComponent());
- try {
- barra.setValue(Integer.parseInt(txtValor.getText().trim()));
- } catch (Exception exception) {
- barra.setValue(0);
- txtValor.setText("0");
- }
-
- }
-
- public void keyTyped(KeyEvent e) {}
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/skinColorDetection/ColorSpaceConverter.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/skinColorDetection/ColorSpaceConverter.java
deleted file mode 100644
index 1fccbbe..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/skinColorDetection/ColorSpaceConverter.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.skinColorDetection;
-
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-
-/**
- * Locates faces in an image.
- * @author Barry McCullagh
- * @version 23/04/2009
- */
-public class ColorSpaceConverter extends MarvinAbstractImagePlugin
-{
-
- MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- /**
- * Convert the image from RGB to HSV. Conversion formula from
- * http://en.wikipedia.org/wiki/HSL_color_space#Conversion_from_RGB_to_HSL_or_HSV
- * @param MarvinImage - the image to be rotated
- * @param boolean - to display a preview
- */
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- int l_imageWidth = imageIn.getWidth();
- int l_imageHeight = imageIn.getHeight();
-
- for(int l_currentX = 0; l_currentX < l_imageWidth; l_currentX++)
- {
- for(int l_currentY = 0; l_currentY < l_imageHeight; l_currentY++)
- {
- double l_red = (double)(imageIn.getIntComponent0(l_currentX, l_currentY));
- double l_green = (double)(imageIn.getIntComponent1(l_currentX, l_currentY));
- double l_blue = (double)(imageIn.getIntComponent2(l_currentX, l_currentY));
-
- double l_normalisedRed = ( l_red / 255 ); //RGB from 0 to 255
- double l_normalisedGreen = ( l_green / 255 );
- double l_normalisedBlue = ( l_blue / 255 );
-
- double l_currentMin = min3nums( l_normalisedRed, l_normalisedGreen, l_normalisedBlue ); //Min. value of RGB
- double l_currentMax = max3nums( l_normalisedRed, l_normalisedGreen, l_normalisedBlue ) ; //Max. value of RGB
-
-
- double l_hue = 0; //HSV results from 0 to 1
- double l_sat = 0;
- double l_var = 0;
- //calculate the hue value
- if(l_currentMin == l_currentMax)
- {
- l_hue = 0;
- }
- else if(l_normalisedRed == l_currentMax)
- {
- l_hue = (60 * ((l_normalisedGreen - l_normalisedBlue)/(l_currentMax - l_currentMin)) +360 )%360;
- }
- else if(l_normalisedGreen == l_currentMax)
- {
- l_hue = (60 * ((l_normalisedBlue - l_normalisedRed)/(l_currentMax - l_currentMin)) +120 );
- }
- else if(l_normalisedBlue == l_currentMax)
- {
- l_hue = (60 * ((l_normalisedRed - l_normalisedGreen)/(l_currentMax - l_currentMin)) +240 );
- }
-
-
- //calculate the saturation value
- if(l_currentMax == 0)
- {
- l_sat = 0;
- }
- else
- {
- l_sat = 1 - (l_currentMin/l_currentMax);
- }
-
- l_var = l_currentMax;
- //System.out.println(l_hue);
- //l_hue = l_hue*255;
- //System.out.println((int)((l_hue*255)/360) + "\n___________");
- imageOut.setIntColor(l_currentX, l_currentY, (int)((l_hue*255)/360), (int)(l_sat*255), (int)(l_var*255));
- }
- }
- }
- public void process1
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- int l_imageWidth = a_imageIn.getWidth();
- int l_imageHeight = a_imageIn.getHeight();
-
- for(int l_currentX = 0; l_currentX < l_imageWidth; l_currentX++)
- {
- for(int l_currentY = 0; l_currentY < l_imageHeight; l_currentY++)
- {
- double l_red = (double)(a_imageIn.getIntComponent0(l_currentX, l_currentY));
- double l_green = (double)(a_imageIn.getIntComponent1(l_currentX, l_currentY));
- double l_blue = (double)(a_imageIn.getIntComponent2(l_currentX, l_currentY));
-
- double l_varR = ( l_red / 255 ); //RGB from 0 to 255
- double l_varG = ( l_green / 255 );
- double l_varB = ( l_blue / 255 );
-
- double l_varMin = min3nums( l_varR, l_varG, l_varB ); //Min. value of RGB
- double l_varMax = max3nums( l_varR, l_varG, l_varB ) ; //Max. value of RGB
- double l_delMax = l_varMin - l_varMax; //Delta RGB value
-
- double l_var = l_varMax;
-
- double l_hue = 0; //HSV results from 0 to 1
- double l_sat = 0;
- if ( l_delMax != 0 ) //This is a gray, no chroma...
- {
-
- l_sat = l_delMax / l_varMax;
-
- double l_del_R = ( ( ( l_varMax - l_varR ) / 6 ) + ( l_delMax / 2 ) ) / l_delMax;
- double l_del_G = ( ( ( l_varMax - l_varG ) / 6 ) + ( l_delMax / 2 ) ) / l_delMax;
- double l_del_B = ( ( ( l_varMax - l_varB ) / 6 ) + ( l_delMax / 2 ) ) / l_delMax;
-
- if ( l_varR == l_varMax )
- {
- l_hue = l_del_B - l_del_G;
- }
- else if ( l_varG == l_varMax )
- {
- l_hue = ( 1 / 3 ) + l_del_R - l_del_B;
- }
- else if ( l_varB == l_varMax )
- {
- l_hue = ( 2 / 3 ) + l_del_G - l_del_R;
- }
-
- if ( l_hue < 0 )
- {
- l_hue += 1;
- }
- if ( l_hue > 1 )
- {
- l_hue -= 1;
- }
- }
- System.out.println(l_hue);
- l_hue = l_hue*255;
- System.out.println(l_hue + "\n___________");
- a_imageOut.setIntColor(l_currentX, l_currentY, (int)l_hue, (int)l_hue, (int)l_hue);
- }
- }
- }
- public double max3nums(double a_red, double a_green, double a_blue)
- {
- double l_max = 0;
- if(a_red > a_green)
- {
- l_max = a_red;
- }
- else
- {
- l_max = a_green;
-
- }
- if(l_max < a_blue)
- {
- l_max = a_blue;
- }
-
- return l_max;
- }
- public double min3nums(double a_red, double a_green, double a_blue)
- {
- double l_min = 255;
- if(a_red < a_green)
- {
- l_min = a_red;
- }
- else
- {
- l_min = a_green;
- }
- if(l_min < a_blue)
- {
- return l_min;
- }
- else
- {
- return a_blue;
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/skinColorDetection/SkinColorDetection.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/skinColorDetection/SkinColorDetection.java
deleted file mode 100644
index 95a579d..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/skinColorDetection/SkinColorDetection.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.skinColorDetection;
-
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-
-/**
- * Locates skin color pixels in an image.
- * @author Barry McCullagh
- * @version 08/05/2009
- */
-public class SkinColorDetection extends MarvinAbstractImagePlugin
-{
-
- MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- /**
- * Initiate the process of finding skin
- * @param MarvinImage - the image to be rotated
- * @param boolean - to display a preview
- */
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- MarvinImage l_hsvImage = new MarvinImage(imageIn.getWidth(), imageIn.getHeight());
- ColorSpaceConverter l_colorspaceConverter = new ColorSpaceConverter();
- l_colorspaceConverter.process(imageIn, l_hsvImage, attributesOut, mask, false);
-
-
- /*The first step is to determine regions of the scene which
- * have appropriate skin tone.
- */
- findSkinColorPixels(imageIn, l_hsvImage, imageOut);
-
-
-
-
- }
- /**
- * Using heuristics, identify any pixels which may be skin colored.
- * @param imageIn
- * @param a_imageOut
- */
- private void findSkinColorPixels(MarvinImage imageIn, MarvinImage hsvImage, MarvinImage imageOut)
- {
- int l_imageHeight = imageIn.getHeight();
- int l_imageWidth = imageIn.getWidth();
-
-
- boolean[] l_rules = {false, false, false};
-
- for(int xx = 0; xx < l_imageWidth; xx++)
- {
- for(int yy = 0; yy < l_imageHeight; yy++)
- {
- int l_currentHue = hsvImage.getIntComponent0(xx, yy);
- int l_currentSat = hsvImage.getIntComponent1(xx, yy);
- int l_currentVar = hsvImage.getIntComponent2(xx, yy);
-
- if(l_currentHue > 0 && l_currentHue < 23)
- {
- imageOut.setIntColor(xx, yy, imageIn.getIntColor(xx, yy));
- }
- else
- {
- imageOut.setIntColor(xx, yy, 0);
- }
- /* checkRule0(l_currentRed, l_currentGreen, l_currentBlue, l_rules);
- //checkRule1(l_currentRed, l_currentGreen, l_currentBlue, l_rules);
- checkRule2(l_currentRed, l_currentGreen, l_currentBlue, l_rules);
- if(l_rules[0] == true && l_rules[2] == true)
- {
- a_imageOut.setRGB(xx, yy, a_imageIn.getRGB(xx, yy));
- }
- else
- {
- a_imageOut.setRGB(xx, yy, 0);
- }
- */
- }
- }
- }
-
- //rules from http://graphics.cs.msu.ru/en/publications/text/gc2003vsa.pdf
- protected void checkRule2(int currentRed, int currentGreen, int currentBlue, boolean[] a_rules)
- {
- int l_maxCoords = max3nums(currentRed, currentGreen, currentBlue);
- int l_minCoords = min3nums(currentRed, currentGreen, currentBlue);
- if(currentRed > 95 && currentGreen >40 && currentBlue > 20
- && (l_maxCoords - l_minCoords) > 15
- && Math.abs(currentRed - currentGreen) > 15
- && currentRed > currentGreen
- && currentRed > currentBlue)
- {
- a_rules[2] = true;
- }
- else
- {
- a_rules[2] = false;
- }
- }
- public int max3nums(int a_red, int a_green, int a_blue)
- {
- int l_max = 0;
- if(a_red > a_green)
- {
- l_max = a_red;
- }
- else
- {
- l_max = a_green;
-
- }
- if(l_max < a_blue)
- {
- l_max = a_blue;
- }
-
- return l_max;
- }
- public int min3nums(int a_red, int a_green, int a_blue)
- {
- int l_min = 255;
- if(a_red < a_green)
- {
- l_min = a_red;
- }
- else
- {
- l_min = a_green;
- }
- if(l_min < a_blue)
- {
- return l_min;
- }
- else
- {
- return a_blue;
- }
- }
-
- //rules from http://lrv.fri.uni-lj.si/~peterp/publications/eurocon03.pdf
- protected void checkRule1(int currentRed, int currentGreen, int currentBlue, boolean[] rules)
- {
- if(currentRed > 220
- && currentGreen > 210
- && currentBlue > 170
- && Math.abs(currentRed - currentGreen) <= 15
- && currentRed > currentBlue
- && currentGreen > currentBlue)
- {
- rules[1] = true;
- }
- else
- {
- rules[1] = false;
- }
- }
-
- //rules from http://cs-people.bu.edu/ringb/CS585/PA1/source/ImageFunct.html
- protected void checkRule0(int currentRed, int currentGreen, int currentBlue, boolean[] rules)
- {
- int[] l_currentSkintone = new int[2];
- l_currentSkintone[0] = currentRed;
- l_currentSkintone[1] = currentGreen;
- //check the red and green component of the current pixel
- //If it does not fall in between the required values set as black
- if(currentRed < 40 || currentGreen < 40)
- {
- //a_imageOut.setRGB(xx, yy, 0, 0, 0);
- rules[0] = false;
- //System.out.println(a_rule1);
- }
- else
- {
- int[] l_VectorSkintoneA = new int[2];
- int[] l_VectorSkintoneB = new int[2];
- l_VectorSkintoneA[0] = 225;
- l_VectorSkintoneA[1] = 165;
- l_VectorSkintoneB[0] = 125;
- l_VectorSkintoneB[1] = 50;
- double l_angleCurrentSkinVectorA = calculateVectorAngle(l_VectorSkintoneA, l_currentSkintone);
- double l_angleCurrentSkinVectorB = calculateVectorAngle(l_VectorSkintoneB, l_currentSkintone);
-
- if(l_angleCurrentSkinVectorA < .995 && l_angleCurrentSkinVectorB < .995)
- {
- //a_imageOut.setRGB(xx, yy, 0, 0, 0);
- rules[0] = false;
-
- }
- else
- {
- rules[0] = true;
- //System.out.println(a_rule1);
- //a_imageOut.setRGB(xx, yy, a_imageIn.getRGB(xx,yy));
- }
- }
- }
- /**
- * Find the minimum and maximum component of all the R, G and B values in an image.
- * @param imageIn
- * @param minMax
- */
- protected void findMinMax(MarvinImage imageIn, int[] minMax)
- {
- for(int l_currentX = 0; l_currentX < imageIn.getWidth(); l_currentX++)
- {
- for(int l_currentY = 0; l_currentY < imageIn.getHeight(); l_currentY++)
- {
- int l_currentRed = imageIn.getIntComponent0(l_currentX, l_currentY);
- int l_currentGreen = imageIn.getIntComponent1(l_currentX, l_currentY);
- int l_currentBlue = imageIn.getIntComponent2(l_currentX, l_currentY);
- //check red
- if(l_currentRed < minMax[0])
- {
- minMax[0] = l_currentRed;
- }
- if(l_currentRed > minMax[1])
- {
- minMax[1] = l_currentRed;
- }
- //check green
- if(l_currentGreen < minMax[0])
- {
- minMax[0] = l_currentGreen;
- }
- if(l_currentGreen > minMax[1])
- {
- minMax[1] = l_currentGreen;
- }
- //check blue
- if(l_currentBlue < minMax[0])
- {
- minMax[0] = l_currentBlue;
- }
- if(l_currentBlue > minMax[1])
- {
- minMax[1] = l_currentBlue;
- }
- }
- }
- }
- /**
- * The borders may not be continuous so this method examines the pixels
- * around the current pixel of interest. If there is no border pixel neighbouring
- * it, it searches within a 16 connected connected neighbourhood to find a bordering pixel
- * @param l_borderedRegions
- */
-
-/**
- * Get the angle between two, two dimensional vectors
- * @param a_Vector1, a_Vector2 - the vectors who's angle of difference needs to be calculated
- */
- protected double calculateVectorAngle(int[] vector1, int[] vector2)
- {
- if (vector1.length != vector2.length)
- {
- return 0;
- }
- double l_magVector1 = findMagnitude(vector1);
- double l_magVector2 = findMagnitude(vector2);
- double l_dotProduct = dotProduct(vector1, vector2);
-
- return l_dotProduct / (l_magVector1 * l_magVector2);
-
- }
- /**
- * Find the magnitude of a 2 element 'vector'
- * @param vector
- * @return
- */
- protected double findMagnitude(int[] vector)
- {
- if (vector.length != 2)
- {
- return 0;
- }
- else
- {
- return Math.sqrt(vector[0]*vector[0] + vector[1]*vector[1] );
- }
- }
-
- //Static Method that returns the Dot Product of two Vectors
- private double dotProduct(int[] vector1, int[] vector2)
- {
- if (vector1.length != vector2.length && vector1.length != 2)
- {
- return 0;
- }
- return vector1[0]*vector2[0] + vector1[1]*vector2[1];
- }
-
-
-
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/thresholding/Thresholding.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/thresholding/Thresholding.java
deleted file mode 100644
index 28d68dc..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/thresholding/Thresholding.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.color.thresholding;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- * Thresholding
- * @author Gabriel Ambrosio Archanjo
- */
-public class Thresholding extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private int threshold,
- thresholdRange,
- neighborhood,
- range;
-
- private MarvinImagePlugin pluginGray;
-
- public void load(){
-
- // Attributes
- attributes = getAttributes();
- attributes.set("threshold", 125);
- attributes.set("thresholdRange", -1);
- attributes.set("neighborhood", -1);
- attributes.set("range", -1);
-
- pluginGray = new GrayScale();
- pluginGray.load();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblThreshold", "Threshold");
- attributesPanel.addTextField("txtThreshold", "threshold", attributes);
- attributesPanel.addLabel("lblNeighborhood", "Neighborhood");
- attributesPanel.addTextField("txtNeighborhood", "neighborhood", attributes);
- attributesPanel.addLabel("lblRange", "Range");
- attributesPanel.addTextField("txtRange", "range", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- threshold = (Integer)attributes.get("threshold");
- thresholdRange = (Integer)attributes.get("thresholdRange");
- neighborhood = (Integer)attributes.get("neighborhood");
- range = (Integer)attributes.get("range");
-
- if(thresholdRange == -1){
- thresholdRange = 255-threshold;
- }
-
- pluginGray.process(imageIn, imageOut, attributesOut, mask, previewMode);
-
- boolean[][] bmask = mask.getMask();
-
- if(neighborhood == -1 && range == -1){
- hardThreshold(imageIn, imageOut, bmask);
- }
- else{
- contrastThreshold(imageIn, imageOut);
- }
-
- }
-
- private void hardThreshold(MarvinImage imageIn, MarvinImage imageOut, boolean[][] mask){
- for(int y=0; y threshold+thresholdRange){
- imageOut.setIntColor(x, y, imageIn.getAlphaComponent(x,y), 0,0,0);
- }
- else{
- imageOut.setIntColor(x, y, imageIn.getAlphaComponent(x,y), 255,255,255);
- }
- }
- }
- }
-
- private void contrastThreshold
- (
- MarvinImage imageIn,
- MarvinImage imageOut
- ){
- range = 1;
- for (int x = 0; x < imageIn.getWidth(); x++) {
- for (int y = 0; y < imageIn.getHeight(); y++) {
- if(checkNeighbors(x,y, neighborhood, neighborhood, imageIn)){
- imageOut.setIntColor(x,y,0,0,0);
- }
- else{
- imageOut.setIntColor(x,y,255,255,255);
- }
- }
- }
- }
-
- private boolean checkNeighbors(int x, int y, int neighborhoodX, int neighborhoodY, MarvinImage img){
-
- int color;
- int z=0;
-
- color = img.getIntComponent0(x, y);
-
- for(int i=0-neighborhoodX; i<=neighborhoodX; i++){
- for(int j=0-neighborhoodY; j<=neighborhoodY; j++){
- if(i == 0 && j == 0){
- continue;
- }
-
- if(color < getSafeColor(x+i,y+j, img)-range && getSafeColor(x+i,y+j, img) != -1){
- z++;
- }
- }
- }
-
- if(z > (neighborhoodX*neighborhoodY)*0.5){
- return true;
- }
-
- return false;
- }
-
- private int getSafeColor(int x, int y, MarvinImage img){
-
- if(x >= 0 && x < img.getWidth() && y >= 0 && y < img.getHeight()){
- return img.getIntComponent0(x, y);
- }
- return -1;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/thresholdingNeighborhood/ThresholdingNeighborhood.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/thresholdingNeighborhood/ThresholdingNeighborhood.java
deleted file mode 100644
index 6c9b1ff..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/color/thresholdingNeighborhood/ThresholdingNeighborhood.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.marvinproject.image.color.thresholdingNeighborhood;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class ThresholdingNeighborhood extends MarvinAbstractImagePlugin{
-
- @Override
- public void load() {
- setAttribute("neighborhoodSide", 10);
- setAttribute("samplingPixelDistance", 1);
- setAttribute("thresholdPercentageOfAverage", 1.0D);
- }
-
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- int neighborhoodSide = (Integer)getAttribute("neighborhoodSide");
- int samplingPixelDistance = (Integer)getAttribute("samplingPixelDistance");
- double thresholdPercentageOfAverage = (Double)getAttribute("thresholdPercentageOfAverage");
-
- for(int y=0; y= 0 && j>= 0 && i < image.getWidth() && j < image.getHeight()){
-
- int color = image.getIntComponent0(i,j);
-
- if(min == -1 || color < min){
- min = color;
- }
- if(max == -1 || color > max){
- max = color;
- }
-
- average+=color;
- pixels++;
- }
- }
- }
-
- average /= pixels;
-
- int color = image.getIntComponent0(x,y);
-
- if(color < average*thresholdPercentageOfAverage || (max-min) <= 30){
- imageOut.setIntColor(x, y, 255, 0, 0, 0);
- } else{
- imageOut.setIntColor(x, y, 255, 255, 255, 255);
- }
-
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/combineByMask/CombineByMask.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/combineByMask/CombineByMask.java
deleted file mode 100644
index dc24f0f..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/combineByMask/CombineByMask.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.combine.combineByMask;
-
-import java.awt.Color;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Combine two images using a mask color.
- * @author Gabriel Ambrosio Archanjo
- */
-public class CombineByMask extends MarvinAbstractImagePlugin{
-
- MarvinAttributes attributes;
-
- MarvinImage combinationImage;
-
- Color colorMask;
-
- private int xi=0,
- yi=0;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("xi", xi);
- attributes.set("yi", yi);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- public void process(MarvinImage imageIn, MarvinImage imageOut, MarvinAttributes attributesOut, MarvinImageMask mask, boolean previewMode){
- xi = (Integer)attributes.get("xi");
- yi = (Integer)attributes.get("yi");
- colorMask = (Color)attributes.get("colorMask");
- combinationImage = (MarvinImage)attributes.get("combinationImage");
-
- int l_xCI,
- l_yCI;
-
- int l_widthCI = combinationImage.getWidth(),
- l_heightCI = combinationImage.getHeight();
-
-
- for(int y=0; y= 0 && l_xCI < l_widthCI && l_yCI >= 0 && l_yCI < l_heightCI){
- if(imageIn.getIntColor(x, y) == colorMask.getRGB()){
- imageOut.setIntColor(x, y, combinationImage.getIntColor(x, y));
- }
- else{
- imageOut.setIntColor(x, y, imageIn.getIntColor(x, y));
- }
- }
- else{
- imageOut.setIntColor(x, y, imageIn.getIntColor(x, y));
- }
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/combineByTransparency/CombineByTransparency.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/combineByTransparency/CombineByTransparency.java
deleted file mode 100644
index b18041d..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/combineByTransparency/CombineByTransparency.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.combine.combineByTransparency;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Combine by transparency plug-in.
- *
- * @author Alan Thiago do Prado
- * @version 1.0 29/01/2009
- */
-public class CombineByTransparency extends MarvinAbstractImagePlugin {
-
- private MarvinAttributes attributes;
-
- private int xi=0,
- yi=0;
-
- private int transparency=10;
-
- private MarvinImage combinationImage;
-
-
- public void load() {
- attributes = getAttributes();
- attributes.set("xi", xi);
- attributes.set("yi", yi);
- attributes.set("transparency", transparency);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- xi = (Integer)attributes.get("xi");
- yi = (Integer)attributes.get("yi");
- combinationImage = (MarvinImage)attributes.get("combinationImage");
- transparency = (Integer)attributes.get("transparency");
-
- double l_factor = (100-transparency)/100.0;
-
- int l_xCI,
- l_yCI;
-
- int l_widthCI = combinationImage.getWidth(),
- l_heightCI = combinationImage.getHeight();
-
- double l_redA,
- l_redB,
- l_greenA,
- l_greenB,
- l_blueA,
- l_blueB;
-
-
- for(int y=0; y= 0 && l_xCI < l_widthCI && l_yCI >= 0 && l_yCI < l_heightCI){
-
- l_redA = imageIn.getIntComponent0(x, y);
- l_greenA = imageIn.getIntComponent1(x, y);
- l_blueA = imageIn.getIntComponent2(x, y);
-
- l_redB = combinationImage.getIntComponent0(l_xCI, l_yCI);
- l_greenB = combinationImage.getIntComponent1(l_xCI, l_yCI);
- l_blueB = combinationImage.getIntComponent2(l_xCI, l_yCI);
-
- imageOut.setIntColor
- (
- x,
- y,
- (int)((l_redA*(1.0-l_factor))+(l_redB*l_factor)),
- (int)((l_greenA*(1.0-l_factor))+(l_greenB*l_factor)),
- (int)((l_blueA*(1.0-l_factor))+(l_blueB*l_factor))
- );
- }
- else{
- imageOut.setIntColor(x, y, imageIn.getIntColor(x, y));
- }
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/mergePhotos/MergePhotos.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/mergePhotos/MergePhotos.java
deleted file mode 100644
index 76cb475..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/combine/mergePhotos/MergePhotos.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.marvinproject.image.combine.mergePhotos;
-
-import java.util.List;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.background.determineSceneBackground.DetermineSceneBackground;
-
-public class MergePhotos extends MarvinAbstractImagePlugin{
-
- private MarvinImagePlugin background;
- private int threshold;
-
- @Override
- public void load() {
- background = new DetermineSceneBackground();
- background.load();
- setAttribute("threshold", 30);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview
- ) {
-
- }
-
- @Override
- public void process
- (
- List images,
- MarvinImage imageOut
- ){
- if(!images.isEmpty()){
- threshold = (Integer)getAttribute("threshold");
- background.setAttribute("threshold", threshold);
- MarvinImage backgroundImage = images.get(0).clone();
- background.process(images, backgroundImage);
- mergePhotos(images, imageOut, backgroundImage, threshold);
- }
- }
-
- private void mergePhotos(List images, MarvinImage imageOut, MarvinImage background, int threshold){
- for(MarvinImage img:images){
- mergePhotos(img, imageOut, background, threshold);
- }
- }
-
- private void mergePhotos(MarvinImage imageA, MarvinImage imageB, MarvinImage imageBackground, int threshold){
-
- int rA, gA, bA, rB, gB, bB;
- for(int y=0; y threshold ||
- Math.abs(gA-gB) > threshold ||
- Math.abs(bA-bB) > threshold
- ){
-
- imageB.setIntColor(x, y, 255, rA, gA, bA);
- }
- }
- }
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/convolution/Convolution.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/convolution/Convolution.java
deleted file mode 100644
index 3a3e817..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/convolution/Convolution.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.convolution;
-
-import javax.imageio.ImageIO;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class Convolution extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- public void load(){
-
- attributes = getAttributes();
- attributes.set("matrix", null);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addMatrixPanel("matrixPanel", "matrix", attributes, 3, 3);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attributesOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- double[][] matrix = (double[][])attributes.get("matrix");
-
- if(matrix != null && matrix.length > 0){
-
- for(int y=0; y= matrix.length/2 && y < imageIn.getHeight()-matrix.length/2 && x >= matrix[0].length/2 && x < imageIn.getWidth()-matrix[0].length/2){
- applyMatrix(x, y, matrix, imageIn, imageOut);
- }
- else{
- imageOut.setIntColor(x, y, 0xFF000000);
- }
- }
- }
- }
- }
-
- private void applyMatrix
- (
- int x,
- int y,
- double[][] matrix,
- MarvinImage imageIn,
- MarvinImage imageOut
- ){
-
- int nx,ny;
- double resultRed=0;
- double resultGreen=0;
- double resultBlue=0;
-
- int xC=matrix[0].length/2;
- int yC=matrix.length/2;
-
- for(int i=0; i= 0 && nx < imageOut.getWidth() && ny >= 0 && ny < imageOut.getHeight()){
-
- resultRed += (matrix[i][j]*(imageIn.getIntComponent0(nx, ny)));
- resultGreen += (matrix[i][j]*(imageIn.getIntComponent1(nx, ny)));
- resultBlue += (matrix[i][j]*(imageIn.getIntComponent2(nx, ny)));
- }
-
-
- }
-
-
-
- }
- }
-
- resultRed = Math.abs(resultRed);
- resultGreen = Math.abs(resultGreen);
- resultBlue = Math.abs(resultBlue);
-
- // allow the combination of multiple applications
- resultRed += imageOut.getIntComponent0(x,y);
- resultGreen += imageOut.getIntComponent1(x,y);
- resultBlue += imageOut.getIntComponent2(x,y);
-
- resultRed = Math.min(resultRed, 255);
- resultGreen = Math.min(resultGreen, 255);
- resultBlue = Math.min(resultBlue, 255);
-
- resultRed = Math.max(resultRed, 0);
- resultGreen = Math.max(resultGreen, 0);
- resultBlue = Math.max(resultBlue, 0);
-
- imageOut.setIntColor(x, y, imageIn.getAlphaComponent(x, y), (int)resultRed, (int)resultGreen, (int)resultBlue);
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/corner/harris/Harris.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/corner/harris/Harris.java
deleted file mode 100644
index d62d63f..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/corner/harris/Harris.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
-Marvin Project <2007-2015>
-http://marvinproject.sourceforge.net
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.corner.harris;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-public class Harris extends MarvinAbstractImagePlugin {
-
- private MarvinImagePlugin gray;
- @Override
- public void load() {
- gray = new GrayScale();
- gray.load();
- setAttribute("matrixSize", 7);
- setAttribute("threshold", 500);
- setAttribute("k", 0.004);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- ) {
-
- double k = (Double)getAttribute("k");
- int threshold = (Integer)getAttribute("threshold");
- int matrixSize = (Integer)getAttribute("matrixSize");
-
- //convert to grayscale
- MarvinImage tempImage = new MarvinImage(imageIn.getWidth(), imageIn.getHeight());
- gray.process(imageIn, tempImage);
-
- //temporary variables for faster processing
- int width = tempImage.getWidth();
- int height = tempImage.getHeight();
-
- //array for founded corners
- int[][] cornernessMapOut = new int[width][height];
-
- //1.step
- //calculate diffx, diffy, diffxy
- double diffx[][] = new double[width][height];
- double diffy[][] = new double[width][height];
- double diffxy[][] = new double[width][height];
-
- // for each line
- for (int y = 1; y < height - 1; y++)
- {
- // for each pixel
- for(int x = 1; x < width - 1; x++)
- {
- // Convolution with horizontal differentiation kernel mask
- float X = ((tempImage.getIntComponent0(x+1, y-1) + tempImage.getIntComponent0(x+1, y) + tempImage.getIntComponent0(x+1, y+1)) - (tempImage.getIntComponent0(x-1, y-1) + tempImage.getIntComponent0(x-1, y) + tempImage.getIntComponent0(x-1, y-1))) * 0.166666667f;
-
- // Convolution vertical differentiation kernel mask
- float Y = ((tempImage.getIntComponent0(x+1, y+1) + tempImage.getIntComponent0(x+1, y) + tempImage.getIntComponent0(x, y+1)) - (tempImage.getIntComponent0(x-1, y-1) + tempImage.getIntComponent0(x-1, y-1) + tempImage.getIntComponent0(x-1, y))) * 0.166666667f;
-
- diffx[x][y]= X*X;
- diffy[x][y]= Y*Y;
- diffxy[x][y]= X*Y;
- }
- }
-
- //2.step
- //gaussian blur
- double diffxGauss[][] = new double[width][height];
- double diffyGauss[][] = new double[width][height];
- double diffxyGauss[][] = new double[width][height];
-
- // for each line
- for (int y = 1; y < height - 1; y++)
- {
- // for each pixel
- for(int x = 1; x < width - 1; x++)
- {
-
- diffxGauss[x][y] = (diffx[x-1][y-1] + diffx[x][y-1] * 2 + diffx[x+1][y-1] + diffx[x-1][y] * 2 + diffx[x][y] * 4 + diffx[x+1][y] * 2 + diffx[x-1][y+1] + diffx[x][y+1] * 2 + diffx[x+1][y+1]) / 16;
-
- diffyGauss[x][y] = (diffy[x-1][y-1] + diffy[x][y-1] * 2 + diffy[x+1][y-1] + diffy[x-1][y] * 2 + diffy[x][y] * 4 + diffy[x+1][y] * 2 + diffy[x-1][y+1] + diffy[x][y+1] * 2 + diffy[x+1][y+1]) / 16;
-
- diffxyGauss[x][y] = (diffxy[x-1][y-1] + diffxy[x][y-1] * 2 + diffxy[x+1][y-1] + diffxy[x-1][y] * 2 + diffxy[x][y] * 4 + diffxy[x+1][y] * 2 + diffxy[x-1][y+1] + diffxy[x][y+1] * 2 + diffxy[x+1][y+1]) / 16;
-
- }
-
- }
-
- //3.step
- double A,B,C,M;
- int cornernessMap[][] = new int[width][height];
- // for each line
- for (int y = 1; y < height - 1; y++)
- {
- // for each pixel
- for(int x = 1; x < width - 1; x++)
- {
- A = diffxGauss[x][y];
- B = diffyGauss[x][y];
- C = diffxyGauss[x][y];
-
-
- M = (A * B - C * C) - (k * (A + B) * (A + B));
-
- if(M> threshold){
- cornernessMap[x][y] = (int)M;
- }
- else{
- cornernessMap[x][y] = 0;
- }
- }
- }
-
- //step 4
- for(int x=0; x 0){
- cornernessMapOut[x][y] = 1;
- }
- }
- }
- if(attrOut != null){
- //return the founded corners
- attrOut.set("cornernessMap", cornernessMapOut);
- }
- }
-
- private int nonmax(int x, int y, int matrixSize, int[][] matrix){
- int s = matrixSize/2;
- if(x-(s+1) >= 0 && x+(s+1) < matrix.length && y-(s+1) >= 0 && y+(s+1) < matrix[0].length){
- for(int i=-s; i<=s; i++){
- for(int j=-s; j<=s; j++){
- if(i != 0 || j != 0){
- if(matrix[x][y] < matrix[x+i][y+j]){
- return 0;
- }
- }
- }
- }
- }
- return matrix[x][y];
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/corner/moravec/Moravec.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/corner/moravec/Moravec.java
deleted file mode 100644
index dc16b91..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/corner/moravec/Moravec.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.corner.moravec;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-public class Moravec extends MarvinAbstractImagePlugin {
-
- private MarvinImagePlugin gray;
-
- @Override
- public void load() {
- gray = new GrayScale();
- gray.load();
- setAttribute("matrixSize", 3);
- setAttribute("threshold", 0);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- ) {
-
- int matrixSize = (Integer)getAttribute("matrixSize");
- int threshold = (Integer)getAttribute("threshold");
-
- MarvinImage tempImage = new MarvinImage(imageIn.getWidth(), imageIn.getHeight());
- gray.process(imageIn, tempImage);
-
- int[][] cornernessMap = new int[tempImage.getWidth()][tempImage.getHeight()];
- int[][] cornernessMapOut = new int[tempImage.getWidth()][tempImage.getHeight()];
-
- for(int y=0; y 0){
- cornernessMapOut[x][y] = 1;
- }
- }
- }
-
- if(attrOut != null){
- attrOut.set("cornernessMap", cornernessMapOut);
- }
- }
-
- private int nonmax(int x, int y, int matrixSize, int[][] matrix){
- int s = matrixSize/2;
- if(x-(s+1) >= 0 && x+(s+1) < matrix.length && y-(s+1) >= 0 && y+(s+1) < matrix[0].length){
- for(int i=-s; i<=s; i++){
- for(int j=-s; j<=s; j++){
- if(i != 0 || j != 0){
- if(matrix[x][y] < matrix[x+i][y+j]){
- return 0;
- }
- }
- }
- }
- }
- return matrix[x][y];
- }
-
- private Integer[][] directions = new Integer[][]{{1,0}, {-1, 0}, {0, 1}, {0,-1}, {-1,-1}, {1, -1}, {-1, 1}, {1,1}};
-
- private int c(int x, int y, int matrixSize, MarvinImage image){
-
- int ret = -1;
- int temp;
- int s = matrixSize/2;
- if(x-(s+1) >= 0 && x+(s+1) < image.getWidth() && y-(s+1) >= 0 && y+(s+1) < image.getHeight()){
-
- for(int d=0; d
-http://marvinproject.sourceforge.net/
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.corner.susan;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-public class Susan extends MarvinAbstractImagePlugin {
-
- private MarvinImagePlugin gray;
- @Override
- public void load() {
- gray = new GrayScale();
- gray.load();
- setAttribute("matrixSize", 7);
- setAttribute("threshold", 100);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- ) {
-
- int threshold = (Integer)getAttribute("threshold");
- int matrixSize = (Integer)getAttribute("matrixSize");
-
- //convert to grayscale
- MarvinImage tempImage = new MarvinImage(imageIn.getWidth(), imageIn.getHeight());
- gray.process(imageIn, tempImage);
-
- //temporary variables for faster processing
- int width = tempImage.getWidth();
- int height = tempImage.getHeight();
-
- //SUSAN specific valuables
- int USAN = 0; //number of pixels in circle
- int[][] usan = new int[width][height]; //every pixels' usan value
-
- //array for founded corners
- int[][] cornernessMapOut = new int[width][height];
- int[][] cornernessMap = new int[width][height];
-
- //1. step
- //generate mask
- boolean[][] circleMask = new boolean[matrixSize][matrixSize];
- USAN = 0;
-
- for (int i = 0; i < matrixSize; i++)
- {
- for (int j = 0; j < matrixSize; j++)
- {
- if (Math.pow(i - (matrixSize/2) , 2) + Math.pow(j - (matrixSize/2), 2) <= Math.pow(((double)(matrixSize)/2.0), 2))
- {
- circleMask[i][j] = true;
- USAN++;
- }
- else
- {
- circleMask[i][j] = false;
- }
- }
- }
-
- //2. step
- //calculate usan values for every pixels
- //in every line
- for (int i = 0; i < width; i += 1)
- {
- //in every row
- for (int j = 0; j < height; j += 1)
- {
- int blockradius = matrixSize / 2;
- //resize the circle if it is too big
- if (i - blockradius < 0) blockradius = i;
- if (j - blockradius < 0) blockradius = j;
- if (i + blockradius > width - 1)blockradius = width - 1 - i;
- if (j + blockradius > height - 1)blockradius = height - 1 - j;
-
- //define the nucleus
-
- int nucleusValue = tempImage.getIntComponent0(i, j);
-
- //iterating through the circle
- for (int BRi = i - blockradius; BRi <= i + blockradius; BRi++)
- {
- for (int BRj = j - blockradius; BRj <= j + blockradius; BRj++)
- {
- if (BRi == i && BRj == j) continue; //do not consider the nucleus
- if (circleMask[BRi - i + blockradius][BRj - j + blockradius] == false) continue; //outside of the mask
-
- if (Math.abs(tempImage.getIntComponent0(BRi, BRj) - nucleusValue) < threshold)
- {
- usan[i][j]++;
- }
- }
- }
-
- }
- }
-
- //3.step
- //find the corner points
- int max = 3 * USAN / 4;
- //in every line
- for (int i = 0; i < width; i += 1)
- {
- //in every row
- for (int j = 0; j < height; j += 1)
- {
- if(Math.abs(max - usan[i][j]) < 2)
- {
- cornernessMap[i][j] = 255 - (Math.abs(max - usan[i][j]));
- }
- }
- }
-
- //4.step
- for(int x=0; x 0){
- cornernessMapOut[x][y] = 1;
- }
- }
- }
-
- if(attrOut != null){
- //return the founded corners
- attrOut.set("cornernessMap", cornernessMapOut);
- }
- }
-
- private int nonmax(int x, int y, int matrixSize, int[][] matrix){
- int s = matrixSize/2;
- if(x-(s+1) >= 0 && x+(s+1) < matrix.length && y-(s+1) >= 0 && y+(s+1) < matrix[0].length){
- for(int i=-s; i<=s; i++){
- for(int j=-s; j<=s; j++){
- if(i != 0 || j != 0){
- if(matrix[x][y] < matrix[x+i][y+j]){
- return 0;
- }
- }
- }
- }
- }
- return matrix[x][y];
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differenceColor/DifferenceColor.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differenceColor/DifferenceColor.java
deleted file mode 100644
index a8164eb..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differenceColor/DifferenceColor.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.difference.differenceColor;
-
-import java.awt.Color;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Find the difference between two images considering the pixel´s color.
- * @author Gabriel
- *
- */
-public class DifferenceColor extends MarvinAbstractImagePlugin{
-
- private MarvinAttributes attributes;
- private MarvinImage imageB;
-
- private int colorRGB;
- private int colorRange;
-
- public void load(){
- setAttribute("colorRange", 30);
- setAttribute("differenceColor", Color.green);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- @Override
- public void process(MarvinImage imgIn, MarvinImage imgOut,
- MarvinAttributes attrOut, MarvinImageMask mask, boolean previewMode) {
-
- int colorRange = (Integer)getAttribute("colorRange");
- diff(imgIn, imgOut, colorRange, attrOut);
- }
-
-
- private void diff(MarvinImage imageA, MarvinImage imageB, int colorRange, MarvinAttributes attrOut){
- int l_redA,
- l_redB,
- l_greenA,
- l_greenB,
- l_blueA,
- l_blueB;
-
- int total=0;
- for(int y=0; y colorRange ||
- Math.abs(l_greenA-l_greenB)> colorRange ||
- Math.abs(l_blueA-l_blueB)> colorRange
- )
- {
- if(imageB != null){
- imageB.setIntColor(x, y, colorRGB);
- }
- total++;
- }
- else{
- if(imageB != null){
- imageB.setIntColor(x, y, imageA.getIntColor(x,y));
- }
- }
- }
- }
-
- if(attrOut != null){
- attrOut.set("total", total);
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differenceGray/DifferenceGray.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differenceGray/DifferenceGray.java
deleted file mode 100644
index cfb853f..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differenceGray/DifferenceGray.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.difference.differenceGray;
-
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-
-import javax.imageio.ImageIO;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.util.MarvinErrorHandler;
-import marvin.util.MarvinFileChooser;
-
-/**
- * Absolute difference between two images considering the gray scale.
- * @author Danilo Rosetto Muńoz
- * @version 1.0 03/28/2008
- */
-
-public class DifferenceGray extends MarvinAbstractImagePlugin{
-
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- //Selects the other image to apply th difference
- String file = null;
- BufferedImage buffImage2=null;
-
- try {
- //Open the file browser dialog
- file = MarvinFileChooser.select(null, true, MarvinFileChooser.OPEN_DIALOG);
- } catch (Exception e) {
- MarvinErrorHandler.handleDialog(MarvinErrorHandler.TYPE.ERROR_FILE_CHOOSE, e);
- return;
- }
-
- if(file == null) return;
-
- //Loads the image to the memory and creates an MarvinImage
- try{
- buffImage2 = ImageIO.read(new File(file));
- }catch (IOException ioe) {
- MarvinErrorHandler.handleDialog(MarvinErrorHandler.TYPE.ERROR_FILE_OPEN, ioe);
- return;
- }
-
- MarvinImage image2 = new MarvinImage(buffImage2);
-
- //Gets the minimum width and height
- int minX = Math.min(a_imageIn.getWidth(), image2.getWidth());
- int minY = Math.min(a_imageIn.getHeight(), image2.getHeight());
-
- for (int x = 0; x < minX; x++) {
- for (int y = 0; y < minY; y++) {
- //Calculate the difference
-
- //Gets the gray scale value
- int gray = (int)((a_imageIn.getIntComponent0(x, y)*0.3) + (a_imageIn.getIntComponent1(x, y)*0.11) + (a_imageIn.getIntComponent2(x, y)*0.59));
- int gray1 = (int)((image2.getIntComponent0(x, y)*0.3) + (image2.getIntComponent1(x, y)*0.11) + (image2.getIntComponent2(x, y)*0.59));
-
- //Makes the absolute difference
- int diff = Math.abs(gray - gray1);
- int v = (diff / 2);
-
- //Sets the value to the new image
- a_imageOut.setIntColor(x, y, v, v, v);
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differentRegions/DifferentRegions.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differentRegions/DifferentRegions.java
deleted file mode 100644
index 42839fd..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/difference/differentRegions/DifferentRegions.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.difference.differentRegions;
-
-import java.util.Vector;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Find the different regions between two images.
- * @author Gabriel Ambrosio Archanjo
- */
-public class DifferentRegions extends MarvinAbstractImagePlugin{
-
- private MarvinAttributes attributes;
- private MarvinImage comparisonImage;
-
- private int[][] arrPixelsPerSubRegion;
- private boolean[][] arrRegionMask;
-
- private int width;
- private int height;
- private int colorRange;
-
- private int subRegionSide=10;
- private boolean initialized = false;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("colorRange", 30);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- public void process(MarvinImage a_imageIn, MarvinImage a_imageOut, MarvinAttributes a_attributesOut, MarvinImageMask a_mask, boolean a_previewMode){
- int l_redA,
- l_redB,
- l_greenA,
- l_greenB,
- l_blueA,
- l_blueB;
-
- comparisonImage = (MarvinImage)attributes.get("comparisonImage");
- colorRange = (Integer)attributes.get("colorRange");
- width = a_imageIn.getWidth();
- height = a_imageIn.getHeight();
-
- if(!initialized){
- arrPixelsPerSubRegion = new int[width/subRegionSide][height/subRegionSide];
- arrRegionMask = new boolean[width/subRegionSide][height/subRegionSide];
- initialized = true;
- }
-
- clearRegions();
-
- for(int y=0; y colorRange ||
- Math.abs(l_greenA-l_greenB)> colorRange ||
- Math.abs(l_blueA-l_blueB)> colorRange
- )
- {
- arrPixelsPerSubRegion[x/subRegionSide][y/subRegionSide]++;
- }
- }
- }
-
- Vector l_vecRegions = new Vector();
- int[] l_rect;
-
- while(true){
- l_rect = new int[4];
- l_rect[0] = -1;
-
- JoinRegions(l_rect);
- if(l_rect[0] != -1){
- l_vecRegions.add(l_rect);
- }
- else{
- break;
- }
- }
- a_attributesOut.set("regions", l_vecRegions);
- }
-
- private boolean JoinRegions(int[] a_rect){
- for(int x=0; x (subRegionSide*subRegionSide/2) && !arrRegionMask[x][y]){
- arrRegionMask[x][y] = true;
- a_rect[0] = x*subRegionSide;
- a_rect[1] = y*subRegionSide;
- a_rect[2] = x*subRegionSide;
- a_rect[3] = y*subRegionSide;
-
- testNeighbors(a_rect, x,y);
- return true;
- }
- }
- }
- return false;
- }
-
- private void testNeighbors(int[] a_rect, int a_x, int a_y){
- for(int x=a_x-5; x 0 && x 0 && y (subRegionSide*subRegionSide/2) && !arrRegionMask[x][y]){
- if(x*subRegionSide < a_rect[0]){
- a_rect[0] = x*subRegionSide;
- }
- if(x*subRegionSide > a_rect[2]){
- a_rect[2] = x*subRegionSide;
- }
-
- if(y*subRegionSide < a_rect[1]){
- a_rect[1] = y*subRegionSide;
- }
- if(y*subRegionSide > a_rect[3]){
- a_rect[3] = y*subRegionSide;
- }
-
- arrRegionMask[x][y] = true;
- testNeighbors(a_rect, x,y);
- }
- }
- }
- }
- }
-
- private void clearRegions(){
- for(int x=0; x
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.edge.edgeDetector;
-
-import java.awt.Color;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Edge detection plug-in. Reference: {@link http://www.cs.princeton.edu/introcs/31datatype/EdgeDetector.java.html}
- * @authors Danilo Rosetto Muńoz, Ivan Francisco Coutinho Costa
- * @version 1.0 02/28/2008
- */
-
-public class EdgeDetector extends MarvinAbstractImagePlugin {
-
- private MarvinPerformanceMeter performanceMeter;
- private Color grayMatrix[] = new Color[256];
-
- public void load() {
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- // Image size
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
- boolean[][] mask = a_mask.getMask();
- //System.out.println("time:"+(System.currentTimeMillis()-time));
-
- performanceMeter.start("EdgeDetector");
- performanceMeter.enableProgressBar("EdgeDetector",
- ((height - 2) * (width - 2)));
- performanceMeter.startEvent("Sobel filter");
-
- //MarvinImage img2 = new MarvinImage(width, height);
-
- // Init gray matrix
- for (int i = 0; i <= 255; i++) {
- grayMatrix[i] = new Color(i, i, i);
- }
-
- int [][] luminance = new int[width][height];
-
- for (int y = 0; y < height ; y++) {
- for (int x = 0; x < width ; x++) {
-
- if(mask != null && !mask[x][y]){
- continue;
- }
-
- luminance[x][y] = (int) luminance(a_imageIn.getIntComponent0(x, y),
- a_imageIn.getIntComponent1(x, y), a_imageIn.getIntComponent2(x, y));
-
- }
- }
-
- //System.out.println("time:"+(System.currentTimeMillis()-time));
-
- int grayX, grayY;
- int magnitude;
- //for (int y = 1; y < height - 1; y++) {
- //for (int x = 1; x < width - 1; x++) {
- for (int y = 1; y < height-1; y++) {
- for (int x = 1; x < width-1; x++) {
-
- if(mask != null && !mask[x][y]){
- continue;
- }
-
- grayX = - luminance[x-1][y-1] + luminance[x-1][y-1+2]
- - 2* luminance[x-1+1][y-1] + 2* luminance[x-1+1][y-1+2]
- - luminance[x-1+2][y-1]+ luminance[x-1+2][y-1+2];
- grayY = luminance[x-1][y-1] + 2* luminance[x-1][y-1+1] + luminance[x-1][y-1+2]
- - luminance[x-1+2][y-1] - 2* luminance[x-1+2][y-1+1] - luminance[x-1+2][y-1+2];
-
- // Magnitudes sum
- grayX=0;
- magnitude = 255 - truncate(Math.abs(grayX)
- + Math.abs(grayY));
-
- Color grayscaleColor = grayMatrix[magnitude];
-
- // Apply the color into a new image
- a_imageOut.setIntColor(x, y, grayscaleColor.getRGB());
- }
- performanceMeter.incProgressBar(width);
- }
-
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- /**
- * Sets the RGB between 0 and 255
- *
- * @param a
- * @return
- */
- private int truncate(int a) {
- if (a < 0)
- return 0;
- else if (a > 255)
- return 255;
- else
- return a;
- }
-
- /**
- * Apply the luminance
- *
- * @param r
- * @param g
- * @param b
- * @return
- */
- private int luminance(int r, int g, int b) {
- // Y = 0.299 r + 0.587g + 0.114b
- return (int) ((0.299 * r) + (0.58 * g) + (0.11 * b));
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/prewitt/Prewitt.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/prewitt/Prewitt.java
deleted file mode 100644
index ff5b097..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/prewitt/Prewitt.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.edge.prewitt;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.math.MarvinMath;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.convolution.Convolution;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class Prewitt extends MarvinAbstractImagePlugin{
-
- // Definitions
- double[][] matrixPrewittX = new double[][]{
- {1, 0, -1},
- {1, 0, -1},
- {1, 0, -1}
- };
-
- double[][] matrixPrewittY = new double[][]{
- {1, 1, 1},
- {0, 0, 0},
- {-1, -1, -1}
- };
-
- private MarvinImagePlugin convolution;
-
- public void load(){
- convolution = new Convolution();
- convolution.load();
- setAttribute("intensity", 1.0);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- double intensity = (Double)getAttribute("intensity");
-
- if(intensity == 1){
- convolution.setAttribute("matrix", matrixPrewittX);
- convolution.process(imageIn, imageOut, null, mask, previewMode);
- convolution.setAttribute("matrix", matrixPrewittY);
- convolution.process(imageIn, imageOut, null, mask, previewMode);
- } else{
- convolution.setAttribute("matrix", MarvinMath.scaleMatrix(matrixPrewittX, intensity));
- convolution.process(imageIn, imageOut, null, mask, previewMode);
- convolution.setAttribute("matrix", MarvinMath.scaleMatrix(matrixPrewittY, intensity));
- convolution.process(imageIn, imageOut, null, mask, previewMode);
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/roberts/Roberts.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/roberts/Roberts.java
deleted file mode 100644
index 2990ed0..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/roberts/Roberts.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.edge.roberts;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.convolution.Convolution;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class Roberts extends MarvinAbstractImagePlugin{
-
- // Definitions
- double[][] matrixRobertsX = new double[][]{
- {1, 0},
- {0, -1}
- };
-
- double[][] matrixRobertsY = new double[][]{
- {0, 1},
- {-1, 0}
- };
-
- private MarvinImagePlugin convolution;
-
- public void load(){
- convolution = new Convolution();
- convolution.load();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- convolution.setAttribute("matrix", matrixRobertsX);
- convolution.process(imageIn, imageOut, null, mask, previewMode);
-
- convolution.setAttribute("matrix", matrixRobertsY);
- convolution.process(imageIn, imageOut, null, mask, previewMode);
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/sobel/Sobel.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/sobel/Sobel.java
deleted file mode 100644
index 8456526..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/edge/sobel/Sobel.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.edge.sobel;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.convolution.Convolution;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class Sobel extends MarvinAbstractImagePlugin{
-
- // Definitions
- double[][] matrixSobelX = new double[][]{
- {1, 0, -1},
- {2, 0, -2},
- {1, 0, -1}
- };
-
- double[][] matrixSobelY = new double[][]{
- {-1, -2, -1},
- {0, 0, 0},
- {1, 2, 1}
- };
-
- private MarvinImagePlugin convolution;
-
- public void load(){
- convolution = new Convolution();
- convolution.load();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- convolution.setAttribute("matrix", matrixSobelX);
- convolution.process(imageIn, imageOut, null, mask, previewMode);
-
- convolution.setAttribute("matrix", matrixSobelY);
- convolution.process(imageIn, imageOut, null, mask, previewMode);
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/equalization/histogramEqualization/HistogramEqualization.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/equalization/histogramEqualization/HistogramEqualization.java
deleted file mode 100644
index c065830..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/equalization/histogramEqualization/HistogramEqualization.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.equalization.histogramEqualization;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class HistogramEqualization extends MarvinAbstractImagePlugin{
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview
- ) {
-
- boolean[][] bmask = mask.getMask();
-
- // histogram
- int[] histRed = new int[256];
- int[] histGreen = new int[256];
- int[] histBlue = new int[256];
- int red, green, blue;
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.fill.boundaryFill;
-
-import java.awt.Color;
-import java.awt.Point;
-import java.util.LinkedList;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.texture.tileTexture.TileTexture;
-
-public class BoundaryFill extends MarvinAbstractImagePlugin{
-
- @Override
- public void load() {
- setAttribute("x", 0);
- setAttribute("y", 0);
- setAttribute("color", Color.red);
- setAttribute("tile", null);
- setAttribute("threshold", 0);
- }
-
- @Override
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- LinkedList l_list = new LinkedList();
- Point l_point,
- l_pointW,
- l_pointE;
-
- //MarvinImage.copyColorArray(imgIn, imgOut);
-
- int x = (Integer)getAttribute("x");
- int y = (Integer)getAttribute("y");
- MarvinImage tileImage = (MarvinImage)(getAttribute("tile"));
- int threshold = (Integer)getAttribute("threshold");
-
- if(!imgOut.isValidPosition(x, y)){
- return;
- }
-
- int targetColor = imgIn.getIntColor(x, y);
- int targetRed = imgIn.getIntComponent0(x, y);
- int targetGreen = imgIn.getIntComponent1(x, y);
- int targetBlue = imgIn.getIntComponent2(x, y);
- Color color = (Color)getAttribute("color");
- int newColor = color.getRGB();
-
- boolean fillMask[][] = new boolean[imgOut.getWidth()][imgOut.getHeight()];
- fillMask[x][y] = true;
-
-
- l_list.add(new Point(x, y));
-
- //for(int l_i=0; l_i 0){
- l_point = l_list.poll();
- l_pointW = new Point(l_point.x, l_point.y);
- l_pointE = new Point(l_point.x, l_point.y);
-
- // west
- while(true){
- if(l_pointW.x-1 >= 0 && match(imgIn, l_pointW.x-1, l_pointW.y, targetRed, targetGreen, targetBlue, threshold) && !fillMask[l_pointW.x-1][l_pointW.y]){
- l_pointW.x--;
- }
- else{
- break;
- }
- }
-
- // east
- while(true){
- if(l_pointE.x+1 < imgIn.getWidth() && match(imgIn, l_pointE.x+1, l_pointE.y, targetRed, targetGreen, targetBlue, threshold) && !fillMask[l_pointE.x+1][l_pointE.y]){
- l_pointE.x++;
- }
- else{
- break;
- }
- }
-
- // set color of pixels between pointW and pointE
- for(int l_px=l_pointW.x; l_px<=l_pointE.x; l_px++){
- //imgOut.setIntColor(l_px, l_point.y, -1);
- //drawPixel(imgOut, l_px, l_point.y, newColor, tileImage);
- fillMask[l_px][l_point.y] = true;
-
- if(l_point.y-1 >= 0 && match(imgIn, l_px, l_point.y-1, targetRed, targetGreen, targetBlue, threshold) && !fillMask[l_px][l_point.y-1]){
- l_list.add(new Point(l_px, l_point.y-1));
- }
- if(l_point.y+1 < imgOut.getHeight() && match(imgIn, l_px, l_point.y+1, targetRed, targetGreen, targetBlue, threshold) && !fillMask[l_px][l_point.y+1]){
- l_list.add(new Point(l_px, l_point.y+1));
- }
- }
- }
-
- if(tileImage != null){
- MarvinImagePlugin p = new TileTexture();
- p.load();
- p.setAttribute("lines", (int)(Math.ceil((double)imgOut.getHeight()/tileImage.getHeight())));
- p.setAttribute("columns", (int)(Math.ceil((double)imgOut.getWidth()/tileImage.getWidth())));
- p.setAttribute("tile", tileImage);
- MarvinImageMask newMask = new MarvinImageMask(fillMask);
- p.process(imgOut, imgOut, null, newMask, false);
- }
- else{
- for(int j=0; j
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.halftone.circles;
-
-
-import java.awt.Color;
-import java.awt.Graphics;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- * Halftone using circles.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/28/2008
- */
-public class Circles extends MarvinAbstractImagePlugin
-{
- private int circleWidth;
- private int shift;
- private int circlesDistance;
-
- MarvinPerformanceMeter performanceMeter;
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("circleWidth", 6);
- attributes.set("shift", 0);
- attributes.set("circlesDistance", 0);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Circle width:");
- attributesPanel.addTextField("txtCircleWidth", "circleWidth", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblShift", "Line Shift:");
- attributesPanel.addTextField("txtShift", "shift", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblDistance", "Circles distance:");
- attributesPanel.addTextField("lblCirclesDistance", "circlesDistance", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- double l_intensity;
-
- circleWidth = (Integer)attributes.get("circleWidth");
- shift = (Integer)attributes.get("shift");
- circlesDistance = (Integer)attributes.get("circlesDistance");
-
- Graphics l_graphics = a_imageOut.getBufferedImage().getGraphics();
-
- // Gray
- MarvinImagePlugin l_filter = new GrayScale();
- l_filter.load();
- l_filter.process(a_imageIn, a_imageIn, a_attributesOut, a_mask, a_previewMode);
-
- performanceMeter.enableProgressBar("Halftone - Circles" , (a_imageIn.getHeight()/(circleWidth+circlesDistance))*(a_imageIn.getWidth()/(circleWidth+circlesDistance)));
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- int l_dif=0;
- for (int y = 0; y < a_imageIn.getHeight(); y+=circleWidth+circlesDistance) {
- for (int x = 0+l_dif; x < a_imageIn.getWidth(); x+=circleWidth+circlesDistance) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- l_intensity = getSquareIntensity(x,y,a_imageIn);
- l_intensity+=1.0/circleWidth;
- l_graphics.setColor(Color.white);
- l_graphics.fillRect(x,y,circleWidth+circlesDistance,circleWidth+circlesDistance);
- l_graphics.setColor(Color.black);
- l_graphics.fillArc((int)(x+(circleWidth-(l_intensity*circleWidth))/2), (int)(y+(circleWidth-(l_intensity*circleWidth))/2), (int)(l_intensity*(circleWidth)), (int)(l_intensity*(circleWidth)),1,360);
- }
- l_dif = (l_dif+shift)%circleWidth;
- performanceMeter.stepsFinished((a_imageIn.getWidth()/(circleWidth+circlesDistance)));
- }
- a_imageOut.updateColorArray();
- performanceMeter.finish();
- }
-
- private double getSquareIntensity(int a_x, int a_y, MarvinImage image){
- double l_totalValue=0;
- for(int y=0; y 0 && a_x+x < image.getWidth() && a_y+y> 0 && a_y+y < image.getHeight()){
- l_totalValue+= 255-(image.getIntComponent0(a_x+x,a_y+y));
- }
- }
- }
- return (l_totalValue/(circleWidth*circleWidth*255));
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/dithering/Dithering.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/dithering/Dithering.java
deleted file mode 100644
index 2872eb5..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/dithering/Dithering.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.halftone.dithering;
-
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- * Halftone dithering implementation.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/28/2008
- */
-public class Dithering extends MarvinAbstractImagePlugin
-{
- private static final int DOT_AREA = 5;
- private static final int arrDither[] = { 167,200,230,216,181,
- 94,72,193,242,232,
- 36,52,222,167,200,
- 181,126,210,94,72,
- 232,153,111,36,52
- };
-
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- // Gray
- MarvinImagePlugin l_filter = new GrayScale();
- l_filter.load();
- l_filter.process(a_imageIn, a_imageIn, a_attributesOut, a_mask, a_previewMode);
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < a_imageIn.getWidth(); x+=DOT_AREA) {
- for (int y = 0; y < a_imageIn.getHeight(); y+=DOT_AREA) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
- drawTone(x,y,a_imageIn, a_imageOut);
- }
- }
- }
-
- private void drawTone(int a_x, int a_y, MarvinImage a_imageIn, MarvinImage a_imageOut){
- int l_grayIntensity;
- int l_x;
- int l_y;
-
- for(int x=0; x arrDither[x]){
- a_imageOut.setIntColor(a_x+l_x, a_y+l_y, a_imageIn.getAlphaComponent(a_x+l_x, a_y+l_y), 0,0,0);
- }
- else{
- a_imageOut.setIntColor(a_x+l_x, a_y+l_y, a_imageIn.getAlphaComponent(a_x+l_x, a_y+l_y), 255,255,255);
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/errorDiffusion/ErrorDiffusion.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/errorDiffusion/ErrorDiffusion.java
deleted file mode 100644
index 76a696b..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/errorDiffusion/ErrorDiffusion.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.halftone.errorDiffusion;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- * Halftone Error Diffusion implementation.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/28/2008
-
- * @author danilo
- *
- */
-public class ErrorDiffusion extends MarvinAbstractImagePlugin
-{
- int threshold;
- private MarvinPerformanceMeter performanceMeter;
-
- public void load(){
- performanceMeter = new MarvinPerformanceMeter();
- threshold = 128;
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- int color;
- double dif;
-
- // Gray
- MarvinImagePlugin l_filter = new GrayScale();
- l_filter.load();
- l_filter.process(a_imageIn, a_imageOut, a_attributesOut, a_mask, a_previewMode);
-
- performanceMeter.start("Halftone - Error Diffusion");
- performanceMeter.enableProgressBar("Halftone - Error Diffusion", a_imageOut.getHeight()*a_imageOut.getWidth());
- performanceMeter.startEvent("Error Diffusion");
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int y = 0; y < a_imageOut.getHeight(); y++) {
- for (int x = 0; x < a_imageOut.getWidth(); x++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- color = a_imageOut.getIntComponent0(x, y);
- if(color > threshold){
- a_imageOut.setIntColor(x,y,a_imageIn.getAlphaComponent(x,y), 255,255,255);
- dif = -(255-color);
- }
- else{
- a_imageOut.setIntColor(x,y,a_imageIn.getAlphaComponent(x,y), 0,0,0);
- dif = color;
- }
-
- // Pixel Right
- if(x+1 < a_imageOut.getWidth()){
- color = a_imageOut.getIntComponent0(x+1,y);
- color+=(int)(0.4375*dif);
- color = getValidGray(color);
- a_imageOut.setIntColor(x+1,y,a_imageIn.getAlphaComponent(x+1,y), color,color,color);
-
- // Pixel Right Down
- if(y+1 < a_imageOut.getHeight()){
- color = a_imageOut.getIntComponent0(x+1,y+1);
- color+=(int)(0.0625*dif);
- color = getValidGray(color);
- a_imageOut.setIntColor(x+1,y+1,a_imageIn.getAlphaComponent(x+1,y+1), color,color,color);
- }
- }
-
- // Pixel Down
- if(y+1 < a_imageOut.getHeight()){
- color = a_imageOut.getIntComponent0(x,y+1);
- color+=(int)(0.3125*dif);
- color = getValidGray(color);
- a_imageOut.setIntColor(x,y+1,a_imageIn.getAlphaComponent(x,y+1), color,color,color);
-
- // Pixel Down Left
- if(x-1 >= 0){
- color = a_imageOut.getIntComponent0(x-1,y+1);
- color+=(int)(0.1875*dif);
- color = getValidGray(color);
- a_imageOut.setIntColor(x-1,y+1,a_imageIn.getAlphaComponent(x-1,y+1), color,color,color);
- }
- }
- }
- performanceMeter.stepsFinished(a_imageOut.getWidth());
- performanceMeter.incProgressBar(a_imageOut.getWidth());
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- private int getValidGray(int a_value){
- if(a_value < 0) return 0;
- if(a_value > 255) return 255;
- return a_value;
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/rylanders/Rylanders.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/rylanders/Rylanders.java
deleted file mode 100644
index bf0f157..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/halftone/rylanders/Rylanders.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.halftone.rylanders;
-
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- * Halftone Rylanders implementation.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/28/2008
- */
-public class Rylanders extends MarvinAbstractImagePlugin
-{
- private static final int DOT_AREA = 4;
- private static final int arrPattern[] = { 1,9,3,11,
- 5,13,7,15,
- 4,12,2,10,
- 8,16,6,14
- };
-
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- double l_intensity;
-
- // Gray
- MarvinImagePlugin l_filter = new GrayScale();
- l_filter.load();
- l_filter.process(a_imageIn, a_imageIn, a_attributesOut, a_mask, a_previewMode);
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < a_imageIn.getWidth(); x+=DOT_AREA) {
- for (int y = 0; y < a_imageIn.getHeight(); y+=DOT_AREA) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- l_intensity = getSquareIntensity(x,y,a_imageIn);
- drawTone(x,y,a_imageIn, a_imageOut, l_intensity);
- }
- }
- }
-
- private void drawTone(int a_x, int a_y, MarvinImage a_imageIn, MarvinImage a_imageOut, double a_intensity){
- double l_factor = 1.0/15;
- int l_toneIntensity = (int)Math.floor(a_intensity/l_factor);
- int l_x;
- int l_y;
-
- for(int x=0; x= arrPattern[x]){
- a_imageOut.setIntColor(a_x+l_x, a_y+l_y, 0,0,0);
- }
- else{
- a_imageOut.setIntColor(a_x+l_x, a_y+l_y, 255,255,255);
- }
- }
- }
- }
-
- private double getSquareIntensity(int a_x, int a_y, MarvinImage image){
- double l_totalValue=0;
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.histogram.colorHistogram;
-
-import java.awt.Color;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinPluginWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.statistic.MarvinHistogram;
-import marvin.statistic.MarvinHistogramEntry;
-import marvin.util.MarvinAttributes;
-
-/**
- * Color histogram is a representation of the RGB colors distribution.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/13/2008
- */
-public class ColorHistogram extends MarvinAbstractImagePlugin
-{
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- MarvinHistogram l_histoRed = new MarvinHistogram("Red Intensity");
- l_histoRed.setBarWidth(1);
-
- MarvinHistogram l_histoGreen = new MarvinHistogram("Green Intensity");
- l_histoGreen.setBarWidth(1);
-
- MarvinHistogram l_histoBlue = new MarvinHistogram("Blue Intensity");
- l_histoBlue.setBarWidth(1);
-
- int l_arrRed[] = new int[256];
- int l_arrGreen[] = new int[256];
- int l_arrBlue[] = new int[256];
-
- for (int x = 0; x < a_imageIn.getWidth(); x++) {
- for (int y = 0; y < a_imageIn.getHeight(); y++) {
- l_arrRed[a_imageIn.getIntComponent0(x, y)]++;
- l_arrGreen[a_imageIn.getIntComponent1(x, y)]++;
- l_arrBlue[a_imageIn.getIntComponent2(x, y)]++;
- }
- }
-
- for(int x=0; x<256; x++){
- l_histoRed.addEntry(new MarvinHistogramEntry(x, l_arrRed[x], new Color(x, 0, 0)));
- l_histoGreen.addEntry(new MarvinHistogramEntry(x, l_arrGreen[x], new Color(0, x, 0)));
- l_histoBlue.addEntry(new MarvinHistogramEntry(x, l_arrBlue[x], new Color(0, 0, x)));
- }
-
- MarvinAttributesPanel panel = new MarvinAttributesPanel();
- panel.addImage("histoRed", l_histoRed.getImage(400,200));
- panel.newComponentRow();
- panel.addImage("histoGreen", l_histoGreen.getImage(400,200));
- panel.newComponentRow();
- panel.addImage("histoBlue", l_histoBlue.getImage(400,200));
- panel.setVisible(true);
-
- MarvinPluginWindow pluginWindow = new MarvinPluginWindow("Color Histogram", 440,580, panel);
- pluginWindow.setVisible(true);
-
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/histogram/grayHistogram/GrayHistogram.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/histogram/grayHistogram/GrayHistogram.java
deleted file mode 100644
index 13a8ab1..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/histogram/grayHistogram/GrayHistogram.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.histogram.grayHistogram;
-
-import java.awt.Color;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinPluginWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.statistic.MarvinHistogram;
-import marvin.statistic.MarvinHistogramEntry;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- * Gray histogram is a representation of the gray scale distribution.
- * @author Gabriel Ambrósio Archanjo
- * @version 1.0 02/13/2008
- */
-public class GrayHistogram extends MarvinAbstractImagePlugin
-{
- MarvinImagePlugin pluginGray;
- public void load(){
- pluginGray = new GrayScale();
- pluginGray.load();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- pluginGray.process(a_imageIn, a_imageOut, a_attributesOut, a_mask, a_previewMode);
-
- MarvinHistogram l_histoGray = new MarvinHistogram("Gray Intensity");
- l_histoGray.setBarWidth(1);
-
- int l_arrGray[] = new int[256];
-
- for (int x = 0; x < a_imageOut.getWidth(); x++) {
- for (int y = 0; y < a_imageOut.getHeight(); y++) {
- l_arrGray[a_imageOut.getIntComponent0(x, y)]++;
- }
- }
-
- for(int x=0; x<256; x++){
- l_histoGray.addEntry(new MarvinHistogramEntry(x, l_arrGray[x], new Color(x, x, x)));
- }
-
- MarvinAttributesPanel panel = new MarvinAttributesPanel();
- panel.addImage("histoGray", l_histoGray.getImage(400,200));
- panel.newComponentRow();
-
- MarvinPluginWindow pluginWindow = new MarvinPluginWindow("Gra Histogram", 400, 200, panel);
- pluginWindow.setVisible(true);
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/interfaceTest/InterfaceTest.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/interfaceTest/InterfaceTest.java
deleted file mode 100644
index 9f1c6af..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/interfaceTest/InterfaceTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-
-package org.marvinproject.image.interfaceTest;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Marvin GUI test plug-in. This plug-in do not affect the image.
- * @version 02/28/08
- * @author Gabriel Ambrósio Archanjo
- */
-public class InterfaceTest extends MarvinAbstractImagePlugin
-{
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("red", 10);
- attributes.set("green", 50);
- attributes.set("blue", 125);
- attributes.set("filter", "option 1");
- attributes.set("intensity", "option 1");
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("labelRed", "Red:");
- attributesPanel.addTextField("textRed", "red", attributes);
-
- attributesPanel.addLabel("labelGreen", "Green:");
- attributesPanel.addTextField("textGreen", "green", attributes);
-
- attributesPanel.addLabel("labelBlue", "Red:");
- attributesPanel.addTextField("textBlue", "blue", attributes);
-
- attributesPanel.newComponentRow();
- attributesPanel.addComboBox("comboFilter", "filter", new Object[]{"option 1", "option 2", "option 3"}, attributes);
-
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("labelIntensity", "Intensity:");
- attributesPanel.addHorizontalSlider("sliderIntensity", "intensity", -100,100,0, attributes);
-
- attributesPanel.newComponentRow();
- attributesPanel.addCheckBox("checkboxTest", "Check Me!", "checkbox1", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- System.out.println("Values received from GUI:");
- System.out.println("red:"+(Integer)attributes.get("red"));
- System.out.println("green:"+(Integer)attributes.get("green"));
- System.out.println("blue:"+(Integer)attributes.get("blue"));
- System.out.println("filter:"+(String)attributes.get("filter"));
- System.out.println("intensity:"+(Integer)attributes.get("intensity"));
- System.out.println("checkbox checked:"+(Boolean)attributes.get("checkbox1"));
-
- a_imageOut.setIntColorArray(a_imageIn.getIntColorArray());
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/boundary/Boundary.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/boundary/Boundary.java
deleted file mode 100644
index 4aebf40..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/boundary/Boundary.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.morphological.boundary;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.morphological.erosion.Erosion;
-
-public class Boundary extends MarvinAbstractImagePlugin{
-
- private MarvinImagePlugin pluginErosion;
- private boolean[][] matrix;
-
-
- @Override
- public void load() {
- matrix = new boolean[][]
- {
- {true,true,true},
- {true,true,true},
- {true,true,true},
- };
-
- pluginErosion = new Erosion();
- pluginErosion.load();
- pluginErosion.setAttribute("matrix", matrix);
- }
-
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- if(imgIn.getColorModel() == MarvinImage.COLOR_MODEL_BINARY){
- pluginErosion.process(imgIn, imgOut, attrOut, mask, previewMode);
- diff(imgIn, imgOut);
- }
- }
-
- private void diff(MarvinImage imgIn, MarvinImage imgOut){
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.morphological.closing;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.morphological.dilation.Dilation;
-import org.marvinproject.image.morphological.erosion.Erosion;
-
-public class Closing extends MarvinAbstractImagePlugin{
-
- private boolean matrix[][];
-
- private MarvinImagePlugin pluginDilation,
- pluginErosion;
-
-
- @Override
- public void load() {
- setAttribute("matrix", matrix);
-
- pluginDilation = new Dilation();
- pluginDilation.load();
- pluginErosion = new Erosion();
- pluginErosion.load();
- }
-
- @Override
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- matrix = (boolean[][])getAttribute("matrix");
-
- if(imgIn.getColorModel() == MarvinImage.COLOR_MODEL_BINARY && matrix != null){
-
- pluginDilation.setAttribute("matrix", (boolean[][])getAttribute("matrix"));
- pluginDilation.process(imgIn, imgOut, attrOut, mask, previewMode);
-
- MarvinImage.copyColorArray(imgOut, imgIn);
-
- pluginErosion.setAttribute("matrix", (boolean[][])getAttribute("matrix"));
- pluginErosion.process(imgIn, imgOut, attrOut, mask, previewMode);
- }
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/dilation/Dilation.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/dilation/Dilation.java
deleted file mode 100644
index ee0a6dd..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/dilation/Dilation.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.morphological.dilation;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class Dilation extends MarvinAbstractImagePlugin{
-
- private boolean matrix[][] = null;
-
- @Override
- public void load() {
- setAttribute("matrix", matrix);
-
- }
-
- @Override
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- boolean matrix[][] = (boolean[][])getAttribute("matrix");
-
- if(imgIn.getColorModel() == MarvinImage.COLOR_MODEL_BINARY && matrix != null){
-
- MarvinImage.copyColorArray(imgIn, imgOut);
-
- for(int y=0; y 0 && nx < imgOut.getWidth() && ny > 0 && ny < imgOut.getHeight()){
- imgOut.setBinaryColor(nx, ny, true);
- }
- }
- }
- }
- }
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/erosion/Erosion.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/erosion/Erosion.java
deleted file mode 100644
index a68da51..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/erosion/Erosion.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.morphological.erosion;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class Erosion extends MarvinAbstractImagePlugin{
-
- private boolean matrix[][];
-
- @Override
- public void load() {
- setAttribute("matrix", matrix);
-
- }
-
- @Override
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- matrix = (boolean[][])getAttribute("matrix");
-
- if(imgIn.getColorModel() == MarvinImage.COLOR_MODEL_BINARY && matrix != null){
-
- MarvinImage.copyColorArray(imgIn, imgOut);
-
- for(int y=0; y= 0 && nx < imgOut.getWidth() && ny >= 0 && ny < imgOut.getHeight()){
- imgOut.setBinaryColor(nx, ny, false);
- }
- }
- }
- }
- }
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/opening/Opening.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/opening/Opening.java
deleted file mode 100644
index ab1aa2e..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/opening/Opening.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.morphological.opening;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.morphological.dilation.Dilation;
-import org.marvinproject.image.morphological.erosion.Erosion;
-
-public class Opening extends MarvinAbstractImagePlugin{
-
- private boolean matrix[][];
-
- private MarvinImagePlugin pluginDilation,
- pluginErosion;
-
-
- @Override
- public void load() {
- setAttribute("matrix", matrix);
-
- pluginDilation = new Dilation();
- pluginDilation.load();
- pluginErosion = new Erosion();
- pluginErosion.load();
-
- }
-
- @Override
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- matrix = (boolean[][])getAttribute("matrix");
-
- if(imgIn.getColorModel() == MarvinImage.COLOR_MODEL_BINARY && matrix != null){
-
- pluginErosion.setAttribute("matrix", (boolean[][])getAttribute("matrix"));
- pluginErosion.process(imgIn, imgOut, attrOut, mask, previewMode);
-
- MarvinImage.copyColorArray(imgOut, imgIn);
-
- pluginDilation.setAttribute("matrix", (boolean[][])getAttribute("matrix"));
- pluginDilation.process(imgIn, imgOut, attrOut, mask, previewMode);
- }
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/thinning/Thinning.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/thinning/Thinning.java
deleted file mode 100644
index a8895a0..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/morphological/thinning/Thinning.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.morphological.thinning;
-
-import marvin.color.MarvinColorModelConverter;
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class Thinning extends MarvinAbstractImagePlugin{
-
- private static Boolean[][] B1 = new Boolean[][]{
- {false,false,false},
- {null,true,null},
- {true,true,true}
- };
-
- private static Boolean[][] B2 = new Boolean[][]{
- {null,false,false},
- {true,true,false},
- {true,true,null}
- };
-
- private static Boolean[][] B3 = new Boolean[][]{
- {true,null,false},
- {true,true,false},
- {true,null,false}
- };
-
- private static Boolean[][] B4 = new Boolean[][]{
- {true,true,null},
- {true,true,false},
- {null,false,false}
- };
-
- private static Boolean[][] B5 = new Boolean[][]{
- {true,true,true},
- {null,true,null},
- {false,false,false}
- };
-
- private static Boolean[][] B6 = new Boolean[][]{
- {null,true,true},
- {false,true,true},
- {false,false,null}
- };
-
- private static Boolean[][] B7 = new Boolean[][]{
- {false,null,true},
- {false,true,true},
- {false,null,true}
- };
-
- private static Boolean[][] B8 = new Boolean[][]{
- {false,false,null},
- {false,true,true},
- {null,true,true}
- };
-
- private Boolean[][][] MATRICES = new Boolean[][][]{
- B1, B2, B3, B4, B5, B6, B7, B8
- };
-
- @Override
- public void load() {}
-
- @Override
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- if(imgIn.getColorModel() == MarvinImage.COLOR_MODEL_BINARY){
- MarvinImage tempImgIn = imgIn.clone();
- int lastChange=-1;
- boolean lastApplyChanged;
-
- int c=0;
- mainLoop:
- while(true){
- for(int mIndex=0; mIndex < MATRICES.length; mIndex++){
-
- lastApplyChanged = false;
- for(int y=0; y= imgIn.getWidth() || ny < 0 || ny >= imgIn.getHeight())){
- if(matrix[mj][mi] != null && matrix[mj][mi]){
- return false;
- }
- continue;
- }
-
- if(matrix[mj][mi] != null && imgIn.getBinaryColor(nx,ny) != matrix[mj][mi]){
- return false;
- }
- }
- }
-
- imgOut.setBinaryColor(x,y,false);
- return true;
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/correlation/Correlation.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/correlation/Correlation.java
deleted file mode 100644
index d328e6f..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/correlation/Correlation.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.pattern.correlation;
-
-import java.io.File;
-import java.text.DecimalFormat;
-
-import javax.imageio.ImageIO;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.util.MarvinFileChooser;
-
-public class Correlation extends MarvinAbstractImagePlugin {
-
- private MarvinImage img_padrao,img_teste;
- private MarvinPerformanceMeter performanceMeter;
- private double somaX,somaY,somaXY,n,somaX2,somaY2,acima,abaixo,r,somaX2R,somaY2R;
- private String novaImagem;
- private boolean modoAnalise = false;
- private double cr;
-
- public void setNovaImagem(String novaImagem)
- {
- this.novaImagem = novaImagem;
- }
- public void setModoAnalise(boolean b)
- {
- this.modoAnalise = b;
- }
-
- public double getCr(){
-
- return cr;
- }
-
- public void load() {
- if(!modoAnalise)
- {
- performanceMeter = new MarvinPerformanceMeter();
- process(getImagePanel().getImage(), null, null, MarvinImageMask.NULL_MASK, true);
-
- }
-
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- img_padrao = a_imageIn;
- try
- {
- if(!modoAnalise)
- {
- novaImagem = MarvinFileChooser.select(null, true,JFileChooser.OPEN_DIALOG);
- }
- img_teste = new MarvinImage(ImageIO.read(new File(novaImagem)));
- }catch(Exception e)
- {
- System.out.println("Error while selecting image");
- }
- // the image have to same size
- if(img_teste.getWidth() == a_imageIn.getWidth() && img_teste.getHeight() == a_imageIn.getHeight()){
-
- if(!modoAnalise)
- {
- performanceMeter.start("Correlation");
- performanceMeter.enableProgressBar("Correlation" , 5 * ( img_padrao.getWidth() * img_padrao.getHeight()));
- }
- n = img_padrao.getWidth() * img_padrao.getHeight();
-
-
- if(!modoAnalise)
- {
- performanceMeter.startEvent("Add X");
- }
- // soma X
- somaX = 0;
-
- for (int x = 1; x < img_padrao.getWidth()-1; x++)
- {
- for (int y = 1; y < img_padrao.getHeight()-1; y++)
- {
- somaX = somaX + img_padrao.getIntComponent0(x, y);
- }
- if(!modoAnalise)
- {
- performanceMeter.stepsFinished(a_imageIn.getHeight());
- performanceMeter.incProgressBar(a_imageIn.getHeight());
- }
- }
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
- }
-
- if(!modoAnalise)
- {
- performanceMeter.startEvent("Add Y");
- }
- // soma Y
- somaY = 0;
-
- for (int x = 1; x < img_teste.getWidth()-1; x++)
- {
- for (int y = 1; y < img_teste.getHeight()-1; y++)
- {
- somaY = somaY + img_teste.getIntComponent0(x, y);
- }
- if(!modoAnalise)
- {
- performanceMeter.stepsFinished(a_imageIn.getHeight());
- performanceMeter.incProgressBar(a_imageIn.getHeight());
- }
- }
-
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
- }
-
-
- if(!modoAnalise)
- {
- performanceMeter.startEvent("Add XR");
- }
- // soma XR
- somaX = 0;
-
- for (int x = 1; x < img_padrao.getWidth()-1; x++)
- {
- for (int y = 1; y < img_padrao.getHeight()-1; y++)
- {
- somaX2R = somaX2R + Math.pow (img_padrao.getIntComponent0(x, y),2);
- }
- if(!modoAnalise)
- {
- performanceMeter.stepsFinished(a_imageIn.getHeight());
- performanceMeter.incProgressBar(a_imageIn.getHeight());
- }
- }
-
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
- performanceMeter.startEvent("Add XR");
- }
- // soma Yr
- somaY = 0;
- for (int x = 1; x < img_teste.getWidth()-1; x++)
- {
- for (int y = 1; y < img_teste.getHeight()-1; y++)
- {
- somaY2R = somaY2R + Math.pow (img_teste.getIntComponent0(x, y),2);
- }
- if(!modoAnalise)
- {
- performanceMeter.stepsFinished(a_imageIn.getHeight());
- performanceMeter.incProgressBar(a_imageIn.getHeight());
- }
- }
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
-
-
- performanceMeter.startEvent("Add z y");
- }
- // soma x . y
- for (int x = 1; x < img_teste.getWidth()-1; x++)
- {
- for (int y = 1; y < img_teste.getHeight()-1; y++)
- {
- somaXY = somaXY + (img_teste.getIntComponent0(x, y) * img_padrao.getIntComponent0(x, y) );
- }
- //performanceMeter.stepsFinished(a_image.getHeight());
- if(!modoAnalise)
- {
- performanceMeter.stepsFinished(a_imageIn.getHeight());
- performanceMeter.incProgressBar(a_imageIn.getHeight());
- }
- }
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
- performanceMeter.startEvent("Adding all");
- }
- somaX2 = Math.sqrt(somaX);
- somaY2 = Math.sqrt(somaY);
-
-
- acima = n*(somaXY) - (somaX * somaY);
- abaixo = (Math.sqrt( n * (somaX2R) - somaX2 )) * (Math.sqrt( n * (somaY2R) - somaY2));
- r = acima / abaixo;
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- cr = r;
- DecimalFormat myFormatter = new DecimalFormat("##.#");
- String output = myFormatter.format(r);
- if(!modoAnalise)
- {
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- if(a_previewMode)
- JOptionPane.showMessageDialog(null, "The correlation is: " + cr);
- }else{
- if(!modoAnalise)
- JOptionPane.showMessageDialog(null, "The image have to the same size");
- }
-
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- return null;
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/findColorPattern/FindColorPattern.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/findColorPattern/FindColorPattern.java
deleted file mode 100644
index c39f26b..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/findColorPattern/FindColorPattern.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.pattern.findColorPattern;
-
-import java.awt.Color;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class FindColorPattern extends MarvinAbstractImagePlugin{
-
- private int[] arrTargetPattern,
- arrTempPattern;
-
- private int patternWidth,
- patternHeight;
-
- private int regionPx,
- regionPy,
- regionWidth,
- regionHeight;
-
- private MarvinImage image;
-
- private int imageWidth,
- imageHeight;
-
- private int colorRange;
-
- private MarvinAttributes attributes;
-
- private boolean targetPatternLoaded=false;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("differenceColorRange", 30);
- attributes.set("regionPx", 0);
- attributes.set("regionPy", 0);
- attributes.set("regionWidth", 1);
- attributes.set("regionHeight", 1);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){return null;}
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- image = a_imageIn;
- if(!targetPatternLoaded){
-
- regionPx = (Integer)attributes.get("regionPx");
- regionPy = (Integer)attributes.get("regionPy");
- regionWidth = (Integer)attributes.get("regionWidth");
- regionHeight = (Integer)attributes.get("regionHeight");
-
- loadTargetPattern(regionPx, regionPy, regionWidth, regionHeight);
- targetPatternLoaded = true;
- }
- else{
- colorRange = (Integer)attributes.get("differenceColorRange");
- imageWidth = a_imageIn.getWidth();
- imageHeight = a_imageIn.getHeight();
-
-
- int l_arrRegion[] = new int[]{regionPx, regionPy, regionWidth, regionHeight};
-
- newRegion(l_arrRegion, regionWidth/10,0,4);
- newRegion(l_arrRegion, regionWidth/20,0,5);
- newRegion(l_arrRegion, 2,0,20);
- newRegionSize(l_arrRegion, 0,8);
-
- regionPx = l_arrRegion[0];
- regionPy = l_arrRegion[1];
- regionWidth = l_arrRegion[2];
- regionHeight = l_arrRegion[3];
- }
-
- // Set output attributes
- a_attributesOut.set("regionPx", regionPx);
- a_attributesOut.set("regionPy", regionPy);
- a_attributesOut.set("regionWidth", regionWidth);
- a_attributesOut.set("regionHeight", regionHeight);
- }
-
- private void loadTargetPattern(int a_x, int a_y, int a_width, int a_height){
- regionPx = a_x;
- regionPy = a_y;
- regionWidth = a_width;
- regionHeight = a_height;
-
- patternWidth = a_width/2;
- patternHeight = a_height/2;
-
- arrTargetPattern = new int[patternWidth*patternHeight];
- arrTempPattern = new int[patternWidth*patternHeight];
-
- captureObject(regionPx, regionPy, regionWidth, regionHeight);
- }
-
- private void captureObject(int a_x, int a_y, int a_width, int a_height){
- double l_xFactor = (double)a_width/patternWidth;
- double l_yFactor = (double)a_height/patternHeight;
-
- double l_dX=a_x,l_dY=a_y;
- int l_iX,l_iY;
-
-
- for(int l_h=0; l_h l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = -a_pixelShift;
- l_bestShiftY = 0;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0]+a_pixelShift, a_arrRegion[1], a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = a_pixelShift;
- l_bestShiftY = 0;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0], a_arrRegion[1]-a_pixelShift, a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = 0;
- l_bestShiftY = -a_pixelShift;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0], a_arrRegion[1]+a_pixelShift, a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = 0;
- l_bestShiftY = +a_pixelShift;
- }
- l_tempMatch = matchRegion(a_arrRegion[0]-a_pixelShift, a_arrRegion[1]-a_pixelShift, a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = -a_pixelShift;
- l_bestShiftY = -a_pixelShift;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0]-a_pixelShift, a_arrRegion[1]+a_pixelShift, a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = -a_pixelShift;
- l_bestShiftY = a_pixelShift;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0]+a_pixelShift, a_arrRegion[1]-a_pixelShift, a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = a_pixelShift;
- l_bestShiftY = -a_pixelShift;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0]+a_pixelShift, a_arrRegion[1]+a_pixelShift, a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch > l_bestMatch){
- l_bestMatch = l_tempMatch;
- l_bestShiftX = a_pixelShift;
- l_bestShiftY = a_pixelShift;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0], a_arrRegion[1], a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch >= l_bestMatch){
- return;
- }
-
- a_arrRegion[0]+=l_bestShiftX;
- a_arrRegion[1]+=l_bestShiftY;
-
- if(a_depth < a_maxDepth){
- newRegion(a_arrRegion, a_pixelShift, a_depth+1, a_maxDepth);
- }
- }
-
- private void newRegionSize(int[] a_arrRegion, int a_depth, int a_maxDepth){
- double l_tempMatch;
- double l_betterMatch=0;
- int l_betterIndex=0;
- int l_scaleS = (int)(a_arrRegion[2]*0.05);
- int l_OriginShift = l_scaleS/2;
-
-
- l_tempMatch = matchRegion(a_arrRegion[0]-3, a_arrRegion[1]-l_OriginShift, a_arrRegion[2]+l_scaleS, a_arrRegion[3]+l_scaleS);
- if(l_tempMatch > l_betterMatch){
- l_betterMatch = l_tempMatch;
- l_betterIndex = 1;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0]+3, a_arrRegion[1]+l_OriginShift, a_arrRegion[2]-l_scaleS, a_arrRegion[3]-l_scaleS);
- if(l_tempMatch > l_betterMatch){
- l_betterMatch = l_tempMatch;
- l_betterIndex = 2;
- }
-
- l_tempMatch = matchRegion(a_arrRegion[0], a_arrRegion[1], a_arrRegion[2], a_arrRegion[3]);
- if(l_tempMatch >= l_betterMatch){
-
- return;
- }
-
- switch(l_betterIndex){
- case 1:
- a_arrRegion[0]-=l_OriginShift;
- a_arrRegion[1]-=l_OriginShift;
- a_arrRegion[2]+=l_scaleS;
- a_arrRegion[3]+=l_scaleS;
- break;
- case 2:
- a_arrRegion[0]+=l_OriginShift;
- a_arrRegion[1]+=l_OriginShift;
- a_arrRegion[2]-=l_scaleS;
- a_arrRegion[3]-=l_scaleS;
- break;
- }
-
- if(a_depth < a_maxDepth){
- newRegionSize(a_arrRegion, a_depth+1, a_maxDepth);
- }
- }
-
-
- private double matchRegion(int a_x, int a_y, int a_width, int a_height){
- double l_xFactor = (double)a_width/patternWidth;
- double l_yFactor = (double)a_height/patternHeight;
-
- double l_dX=a_x,l_dY=a_y;
- int l_iX,l_iY;
-
- if
- (
- a_x < 0 ||
- a_y < 0 ||
- a_x+a_width+1 > imageWidth ||
- a_y+a_height+1 > imageHeight
- ){
- return 0;
- }
-
- for(int l_h=0; l_h>> 16;
- l_redB = (arrTempPattern[(l_h*patternWidth)+l_w] & 0x00FF0000) >>> 16;
- l_greenA = (arrTargetPattern[(l_h*patternWidth)+l_w] & 0x0000FF00) >>> 8;
- l_greenB = (arrTempPattern[(l_h*patternWidth)+l_w] & 0x0000FF00) >>> 8;
- l_blueA = (arrTargetPattern[(l_h*patternWidth)+l_w] & 0x000000FF);
- l_blueB = (arrTempPattern[(l_h*patternWidth)+l_w] & 0x000000FF);
-
- if
- (
- Math.abs(l_redA-l_redB) > colorRange ||
- Math.abs(l_greenA-l_greenB) > colorRange ||
- Math.abs(l_blueA-l_blueB) > colorRange
- ){
- l_diffPixels++;
- }
-
- }
- }
-
- return 100-(((double)l_diffPixels/(patternWidth*patternHeight))*100);
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/findSubimage/FindSubimage.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/findSubimage/FindSubimage.java
deleted file mode 100644
index 896c846..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/findSubimage/FindSubimage.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.marvinproject.image.pattern.findSubimage;
-
-import java.awt.Color;
-import java.util.ArrayList;
-import java.util.List;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.image.MarvinSegment;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class FindSubimage extends MarvinAbstractImagePlugin{
-
- @Override
- public void load() {
- setAttribute("similarity", 1.0);
- setAttribute("findAll", true);
- setAttribute("startX", 0);
- setAttribute("startY", 0);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview
- ) {
- List segments = new ArrayList();
- Object o = getAttribute("subimage");
- Double similarity = (Double)getAttribute("similarity");
- Boolean findAll = (Boolean)getAttribute("findAll");
- Integer startX = (Integer)getAttribute("startX");
- Integer startY = (Integer)getAttribute("startY");
- if(o != null){
- MarvinImage subimage = (MarvinImage)o;
- int subImagePixels = subimage.getWidth()*subimage.getHeight();
- boolean[][] processed=new boolean[imageIn.getWidth()][imageIn.getHeight()];
-
- int r1,g1,b1,r2,g2,b2;
- // Full image
- mainLoop:for(int y=startY; y 5 ||
- Math.abs(g1-g2) > 5 ||
- Math.abs(b1-b2) > 5
- ){
- notMatched++;
-
- if(notMatched > (1-similarity)*subImagePixels){
- match=false;
- break outerLoop;
- }
- }
- }
- }
- } else{
- match=false;
- }
-
- if(match){
- segments.add(new MarvinSegment(x,y,x+subimage.getWidth(), y+subimage.getHeight()));
-
- if(!findAll){
- break mainLoop;
- }
-
- for(int i=0; i> segments = new ArrayList>(imageIn.getHeight());
- for(int i=0; i());
- }
-
- // map of already processed pixels
- boolean[][] processed = new boolean[imageIn.getWidth()][imageIn.getHeight()];
-
- int color;
- int patternStartX=-1;
- int patternLength=0;
- int whitePixels=0;
- int blackPixels=0;
- for(int y=0; y maxWhiteSpace || blackPixels > maxFontLineWidth || x == imageIn.getWidth()-1){
-
- if(patternLength >= minTextWidth){
- List list = segments.get(y);
- list.add(new Integer[]{patternStartX, y, patternStartX+patternLength, y});
- }
-
- whitePixels=0;
- blackPixels=0;
- patternLength=0;
- patternStartX=-1;
- }
-
- if(patternStartX != -1){
- patternLength++;
- }
-
- processed[x][y] = true;
- }
- }
- }
-
-
- // Group line patterns intersecting in x coordinate and too near in y coordinate.
- for(int y=0; y listY = segments.get(y);
-
- for(int w=y+1; w<=y+2; w++){
-
- List listW = segments.get(w);
-
- for(int i=0; i= sB[2]) ||
- (sA[0] >= sB[0] && sA[0] <= sB[2]) ||
- (sA[2] >= sB[0] && sA[2] <= sB[2])
-
- ){
- sA[0] = Math.min(sA[0], sB[0]);
- sA[2] = Math.max(sA[2], sB[2]);
- sA[3] = sB[3];
-
- listY.remove(i);
- i--;
-
- listW.remove(j);
- listW.add(sA);
-
- break;
- }
- }
- }
- }
- }
-
- // Convert the result to a List<> of MarvinSegment objects.
- List marvinSegments = new ArrayList();
- for(int y=0; y l = segments.get(y);
- for(Integer[] seg:l){
- marvinSegments.add(new MarvinSegment(seg[0], seg[1], seg[2], seg[3]));
- }
- }
-
- attrOut.set("matches", marvinSegments);
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/harrisPlessey/HarrisPlessey.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/harrisPlessey/HarrisPlessey.java
deleted file mode 100644
index 5830567..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/harrisPlessey/HarrisPlessey.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.pattern.harrisPlessey;
-
-import java.io.File;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.segmentation.crop.Crop;
-
-/**
- * Absolute interst point
- * @author Fabio Andrijauskas
- * @version 1.0 02/04/2008
- */
-
-public class HarrisPlessey extends MarvinAbstractImagePlugin{
-
- MarvinPerformanceMeter performanceMeter;
- // variaveis com os gradientes de X e Y
- private double Gx = 0;
- private double Gy = 0;
-
- // variaveis da matriz de auto correalcao
- // A C
- // C B
- private double A = 0;
- private double B = 0;
- private double C = 0;
-
- //valor do limiar
- private double th = 1.7981439005E15;
-
- // valor do calculo da qualidade do canto
- private double E = 0;
-
- // valor empirico de sensibilidade
- private double k = 0.2;
-
- // determinante da matriz de auto correlacao
- private double det = 0;
-
- // traco da matriz de auto correlocao
- private double trace = 0;
-
- // matriz que guarda aonde esta os cantos
- private int cantos[][];
-
- // numero de cantos
- private int numeroCantos;
-
- private int rn;
- private int gn;
- private int bn;
- private int[][] gx,gy;
- private int r,g,b;
- private int mul8gx[], mul8gy[];
- private String path = null;
- private boolean padrao;
- private boolean modoAnalise;
-
- private MarvinImagePlugin crop;
-
- public void load(){
- performanceMeter = new MarvinPerformanceMeter();
- crop = new Crop();
- crop.load();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){return null;}
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
-
- if(a_previewMode || modoAnalise){
- path = "";
- File dir = new File("pattern/tmp/");
- boolean trf = dir.delete();
- if(!trf)
- {
- File tmpFiles[] = dir.listFiles();
- if(tmpFiles != null){
- for(int a = 0; a < tmpFiles.length;a++)
- {
- boolean rr = tmpFiles[a].delete();
- }
- }
-
- }
- dir.mkdir();
- }else{
- path = JOptionPane.showInputDialog(null,"","Type the class of this image",JOptionPane.QUESTION_MESSAGE);
- }
-
- int l_processSteps=0;
- l_processSteps+=(a_imageIn.getWidth() *a_imageIn.getHeight())*2;
- l_processSteps+=((a_imageIn.getWidth()-2) * (a_imageIn.getHeight()-2));
- l_processSteps+=((a_imageIn.getWidth()-3) * (a_imageIn.getHeight()-3));
- l_processSteps+=((a_imageIn.getWidth()-2));
-
- performanceMeter.start("InterestPoint");
- performanceMeter.enableProgressBar("InterestPoint" , l_processSteps);
-
- performanceMeter.startEvent("Gray scale");
- int r,g,b,corfinal;
- for (int x = 0; x < a_imageIn.getWidth(); x++) {
- for (int y = 0; y < a_imageIn.getHeight(); y++) {
- //Red - 30% / Blue - 59% / Green - 11%
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
- corfinal = (int)((r*0.3)+(b*0.59)+(g*0.11));
- a_imageOut.setIntColor(x,y,corfinal,corfinal,corfinal);
- }
- performanceMeter.stepsFinished(a_imageIn.getHeight());
- performanceMeter.incProgressBar(a_imageIn.getHeight());
- }
- performanceMeter.finishEvent();
-
- //matrizes do sobelhr
- gx = new int[3][3];
- gy = new int[3][3];
-
- // matrizes utilizadas para detetar as bordas para o eixo x
- gx[0][0] = -1;gx[1][0] = 0;gx[2][0] = 1;
- gx[0][1] = -2;gx[1][1] = 0;gx[2][1] = 2;
- gx[0][2] = -1;gx[1][2] = 0;gx[2][2] = 1;
-
- // matrizes utilizadas para detetar as bordas para o eixo Y
- gy[0][0] = 1;gy[1][0] = 2;gy[2][0] = 1;
- gy[0][1] = 0;gy[1][1] = 0;gy[2][1] = 0;
- gy[0][2] = -1;gy[1][2] = -2;gy[2][2] = -1;
-
- performanceMeter.startEvent("Border detector");
- for (int x = 1; x < a_imageOut.getWidth()-1; x++) {
- for (int y = 1; y < a_imageOut.getHeight()-1; y++) {
-
- // pega o r , g ,e b
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
-
- //a b c
- // d e f
- // g h i
-
- // metodo que multiplic a matriz pela janela
- mul8gx = a_imageIn.Multi8p(x, y, gx);
- mul8gy = a_imageIn.Multi8p(x, y, gy);
-
- // soma os gradientes
- rn = Math.abs(mul8gx[0]) + Math.abs(mul8gy[0]);
- gn = Math.abs(mul8gx[1]) + Math.abs(mul8gy[1]);
- bn = Math.abs(mul8gx[2]) + Math.abs(mul8gy[2]);
-
- // re arranja os rgb
- rn = a_imageOut.boundRGB(rn);
- gn = a_imageOut.boundRGB(gn);
- bn = a_imageOut.boundRGB(bn);
-
- // defini os rgb novos
- a_imageOut.setIntColor(x, y, rn,gn,bn);
-
- }
- performanceMeter.stepsFinished(a_imageOut.getHeight()-2);
- performanceMeter.incProgressBar(a_imageOut.getHeight()-2);
- }
- performanceMeter.finishEvent();
-
- performanceMeter.startEvent("Binarization");
- int limiar = 150;
- for (int x = 0; x < a_imageOut.getWidth(); x++) {
- for (int y = 0; y < a_imageOut.getHeight(); y++) {
-
- if(a_imageOut.getIntComponent0(x, y) > limiar ||a_imageOut.getIntComponent0(x, y)+20 > limiar ||a_imageOut.getIntComponent0(x, y)-20 > limiar ){
-
- if(a_imageOut.getIntComponent1(x, y) > limiar ||a_imageOut.getIntComponent1(x, y)+20 > limiar ||a_imageOut.getIntComponent1(x, y)-20 > limiar ){
-
- if(a_imageOut.getIntComponent2(x, y) > limiar ||a_imageOut.getIntComponent2(x, y)+20 > limiar ||a_imageOut.getIntComponent2(x, y)-20 > limiar ){
-
- a_imageOut.setIntColor(x, y, 255,255,255);
-
- }
- }
-
- }else{
-
- a_imageOut.setIntColor(x, y, 0,0,0);
- }
-
-
- }
- performanceMeter.stepsFinished(a_imageOut.getHeight());
- performanceMeter.incProgressBar(a_imageOut.getHeight());
- }
- performanceMeter.finishEvent();
-
- numeroCantos = 0;
-
- // matriz que tem o mesmo tamnho da imagem para terminar quais os cantos
- cantos = new int[a_imageOut.getWidth()][a_imageOut.getHeight()];
-
- performanceMeter.startEvent("Harris/Plessey");
- for (int x = 2; x < a_imageOut.getWidth()-1; x++) {
- for (int y = 2; y < a_imageOut.getHeight()-1; y++) {
-
- //gradiente rem relação a x
- //matriz 3 x 3 (janela)
- // 3 3 3
- // 3 3 3 * (-1 ,0 ,1) matriz (janela da imagem, o valor dos pixels mesmo) convulacionaod com (-1,0,1)
- // 3 3 3
- Gx = (a_imageOut.getIntComponent0(x-1,y-1) * 1) + (a_imageOut.getIntComponent0(x-1,y) * 0) + (a_imageOut.getIntComponent0(x-1,y+1) * -1);
- Gx = (a_imageOut.getIntComponent0(x,y-1) * 1) + (a_imageOut.getIntComponent0(x,y) * 0) + (a_imageOut.getIntComponent0(x,y+1) * -1);
- Gx = Gx + (a_imageOut.getIntComponent0(x+1,y-1) * 1) + (a_imageOut.getIntComponent0(x+1,y) * 0) + (a_imageOut.getIntComponent0(x+1,y+1) * -1);
-
-
-
- //gradiente em relação a y
- //matriz 3 x 3 (janela)
- // 3 3 3
- // 3 3 3 * (-1 ,0 ,1) matriz (janela da imagem, o valor dos pixels mesmo) convulacionaod com (-1,0,1)
- // 3 3 3
- Gy = (a_imageOut.getIntComponent0(x-1,y-1) * -1) + (a_imageOut.getIntComponent0(x,y-1) * 0) + (a_imageOut.getIntComponent0(x+1,y-1) * 1);
- Gy = (a_imageOut.getIntComponent0(x-1,y) * -1) + (a_imageOut.getIntComponent0(x,y) * 0) + (a_imageOut.getIntComponent0(x+1,y) * 1);
- Gy = Gy + (a_imageOut.getIntComponent0(x-1,y+1) * -1) + (a_imageOut.getIntComponent0(x,y+1) * 0) + (a_imageOut.getIntComponent0(x+1,y+1) * 1);
-
-
- // calcula o valor da matriz de auto correlacao
- A = a_imageOut.multi8p(x, y,Math.pow(Gx,2.0));
- B = a_imageOut.multi8p(x, y,Math.pow(Gy,2.0));
- C = a_imageOut.multi8p(x, y,Gx+Gy);
-
- // determinante da matriz de autocorrelacao
- det = (A * B) - Math.pow(C,2.0);
-
- // traco da matriz de auto correlacao
- trace = A + B;
-
- // valor que se descobre se e canto , ou borda ou nada
- E = det - (k * Math.pow(trace,2.0));
-
- // se E for maior que o valor de limiar e canto
- if( E > th ){
- cantos[x][y] = 1;
- numeroCantos++;
- a_imageOut.setIntColor(x, y, 255, 0, 0);
- }
-
- // zera todos os itens da matriz de auto correlação
- Gx = 0;
- Gy = 0;
- A = 0;
- B = 0;
- C = 0;
- E = 0;
- det = 0;
- trace = 0;
- }
- performanceMeter.stepsFinished(a_imageIn.getHeight()-3);
- performanceMeter.incProgressBar(a_imageIn.getHeight()-3);
- }
- performanceMeter.finishEvent();
- int corners = 0;
-
- performanceMeter.startEvent("Segmentation");
- for (int x = 1; x < a_imageOut.getWidth()-1; x++)
- {
- for (int y = 1; y < a_imageOut.getHeight()-1; y++)
- {
-
- if(cantos[x][y] == 1)
- {
-
- if(x+40 < a_imageOut.getWidth() && y+40 < a_imageOut.getHeight())
- {
-
- a_imageOut.setIntColor(x, y, 255,0,0);
- crop.setAttribute("x", x);
- crop.setAttribute("y", y);
- crop.setAttribute("width", 40);
- crop.setAttribute("height", 40);
- MarvinImage imgTmp = a_imageIn.clone();
- crop.process(a_imageIn, imgTmp);
- if(!a_previewMode){
- try{
- if(modoAnalise)
- {
- File tmp = new File("pattern/"+"tmp/"+corners+".jpg");
- while(tmp.exists())
- {
- corners++;
- tmp = new File("pattern/"+path+"/"+corners+".jpg");
- }
- ImageIO.write(imgTmp.getBufferedImage(),"jpg",tmp);
- imgTmp = null;
- corners++;
-
- }else{
-
- File dir = new File("pattern/"+path+"/");
- dir.mkdirs();
- File tmp = new File("pattern/"+path+"/"+corners+".jpg");
- while(tmp.exists())
- {
- corners++;
- tmp = new File("pattern/"+path+"/"+corners+".jpg");
- }
- ImageIO.write(imgTmp.getBufferedImage(),"jpg",tmp);
- imgTmp = null;
- corners++;
- }
-
- }catch (Exception e) {
- // TODO: handle exception
- }
- }
-
- for (int xN = x -10; xN <= x+40; xN++)
- {
- for (int yN = y -10; yN <= y+40; yN++)
- {
- //if(xN < imagemOriginal.getx() && yN < imagemOriginal.gety())
- //{
- try
- {
- cantos[xN][yN] = 0;
- }catch (Exception e) {
-
- }
- //}
- }
- }
- }
- }
- }
- performanceMeter.stepsFinished(a_imageOut.getHeight()-1);
- performanceMeter.incProgressBar(1);
- }
- performanceMeter.finishEvent();
-
- a_imageIn.setBufferedImage(a_imageOut.getBufferedImage());
-
- performanceMeter.finish();
-
- }
-
-
- public String getPath() {
- return path;
- }
-
- public void setPath(String path) {
- this.path = path;
- }
-
- public boolean isModoAnalise() {
- return modoAnalise;
- }
-
- public void setModoAnalise(boolean modoAnalise) {
- this.modoAnalise = modoAnalise;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/patternRecognition/PatternRecognition.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/patternRecognition/PatternRecognition.java
deleted file mode 100644
index 8f64927..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/pattern/patternRecognition/PatternRecognition.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.pattern.patternRecognition;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinPlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.pattern.correlation.Correlation;
-import org.marvinproject.image.pattern.harrisPlessey.HarrisPlessey;
-
-public class PatternRecognition extends MarvinAbstractImagePlugin {
-
- public void load() {
-
- process(getImagePanel().getImage(), null, null, MarvinImageMask.NULL_MASK, true);
- }
-
- @SuppressWarnings("unchecked")
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- MarvinPlugin l_filter = new HarrisPlessey();
- l_filter.load();
-
- HarrisPlessey hr = (HarrisPlessey) l_filter;
- hr.load();
-
- hr.setModoAnalise(true);
- hr.process(a_imageIn, null);
-
-
- File dir = new File("./pattern/");
- File pt[] = dir.listFiles();
-
- File dirTmp = new File("pattern/tmp/");
- File imgsTmp[] = dirTmp.listFiles();
-
-
- SortedMap map = new TreeMap();
- MarvinImage mv = null;
-
- for(int b= 0;b < imgsTmp.length;b++)
- {
- for(int a = 0; a < pt.length; a++)
- {
- if(pt[a].isDirectory() && !pt[a].getName().equals("tmp") )
- {
- File tmp[] = pt[a].listFiles();
- for(int i = 0; i < tmp.length;i++)
- {
-
- try {
- mv = new MarvinImage(ImageIO.read(imgsTmp[b]));
- } catch (IOException e) {
- e.printStackTrace();
- }
- Correlation cr = new Correlation();
- cr.setModoAnalise(true);
- cr.load();
- try {
- cr.setNovaImagem(tmp[i].getCanonicalPath());
- } catch (IOException e) {
- e.printStackTrace();
- }
- cr.process(mv, null);
-
- if(cr.getCr() > 0.98){
-
- if(map.containsKey(pt[a].getName())){
- Integer valor = (Integer)map.get(pt[a].getName());
- valor++;
- map.put(pt[a].getName(), valor);
-
- }else{
- Integer valor = 1;
- map.put(pt[a].getName(), valor);
-
- }
- }
- }
-
- }
-
- }
- }
-
- String all = "";
-
- for(String a : map.keySet())
- {
- all += "The class is: " + a + " with: " + map.get(a).toString();
- break;
- }
- JOptionPane.showMessageDialog(null, all);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){return null;}
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/quantization/colorQuantization/ColorQuantization.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/quantization/colorQuantization/ColorQuantization.java
deleted file mode 100644
index c6c2176..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/quantization/colorQuantization/ColorQuantization.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.quantization.colorQuantization;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class ColorQuantization extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
-
- @Override
- public void load() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblColors", "Colors:");
- attributesPanel.addTextField("txtColors", "colors", getAttributes());
- }
- return attributesPanel;
- }
-
- @Override
- public void process(MarvinImage imgIn, MarvinImage imgOut,
- MarvinAttributes attrOut, MarvinImageMask mask, boolean previewMode) {
- // TODO Auto-generated method stub
-
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/quantization/grayScaleQuantization/GrayScaleQuantization.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/quantization/grayScaleQuantization/GrayScaleQuantization.java
deleted file mode 100644
index 8589320..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/quantization/grayScaleQuantization/GrayScaleQuantization.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.quantization.grayScaleQuantization;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-public class GrayScaleQuantization extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinImagePlugin gray;
-
- @Override
- public void load() {
- gray = new GrayScale();
- gray.load();
-
- setAttribute("shades", 10);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblShades", "Shades:");
- attributesPanel.addTextField("txtShades", "shades", getAttributes());
- }
- return attributesPanel;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean preview)
- {
-
- int colors = (Integer)getAttribute("shades");
- int range = 255/colors;
- gray.process(imageIn.clone(), imageIn);
- int c;
- int c2;
- for(int y=0; y 0){
- c = imageIn.getIntComponent0(x, y);
- c2 = (c/range)*range;
-
- imageOut.setIntColor(x, y, 255, c2,c2,c2);
- }
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/grayGradient/GrayGradient.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/grayGradient/GrayGradient.java
deleted file mode 100644
index 2ea9afd..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/grayGradient/GrayGradient.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.grayGradient;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Render white to black degrade. The Marvin framework do not supports
- * color choosing component yet, but when it's supported, it will be
- * used in this filter for degrade color selection.
- *
- * @version 1.0 02/28/2008
- * @author Gabriel Ambrósio Archanjo
- */
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class GrayGradient extends MarvinAbstractImagePlugin
-{
-
- public void load(){}
-
- public MarvinAttributesPanel getAttributesPanel(){return null;}
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- //Start with white color.
- int r = 255,g = 255,b = 255;
- int aux=0;
- double factor;
-
- if(a_imageIn.getWidth() > 255){
- factor = a_imageIn.getWidth()/255.0;
- }
- else{
- factor = 255/a_imageIn.getWidth();
- }
-
- for (int x = 0; x < a_imageIn.getWidth(); x++) {
- for (int y = 0; y < a_imageIn.getHeight(); y++) {
- try{
- a_imageOut.setIntColor(x,y,a_imageIn.getAlphaComponent(x,y), r,g,b);
- }
- catch(Exception e){System.out.println("Error"); e.printStackTrace();}
- }
-
- if(a_imageIn.getWidth() > 255){
- aux++;
-
- if(aux > factor){
- r--;
- g--;
- b--;
- aux=0;
- }
- }
- else if(255 > a_imageIn.getWidth()){
- aux+=factor;
- r=255-aux;
- g=255-aux;
- b=255-aux;
- }
-
- if(r<0){r=0;}
- if(g<0){g=0;}
- if(b<0){b=0;}
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/iteratedFunctionSystem/IteratedFunctionSystem.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/iteratedFunctionSystem/IteratedFunctionSystem.java
deleted file mode 100644
index ffee6e1..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/iteratedFunctionSystem/IteratedFunctionSystem.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.iteratedFunctionSystem;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class IteratedFunctionSystem extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- private List rules;
-
- // Testing String
- private final static String EXAMPLE_RULES = "0,0,0,0.16,0,0,0.01\n"+
- "0.85,0.04,-0.04,0.85,0,1.6,0.85\n"+
- "0.2,-0.26,0.23,0.22,0,1.6,0.07\n"+
- "-0.15,0.28,0.26,0.24,0,0.44,0.07\n";
- @Override
- public void load() {
- attributes = getAttributes();
- attributes.set("rules", EXAMPLE_RULES);
- attributes.set("iterations", 1000000);
-
- rules = new ArrayList();
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes out2,
- MarvinImageMask a_mask,
- boolean previewMode
- ){
- loadRules();
- int iterations = (Integer)attributes.get("iterations");
-
- double x0 = 0;
- double y0 = 0;
- double x,y;
- int startX;
- int startY;
- double factor;
-
- double minX=999999999,minY=999999999,maxX=-999999999,maxY=-99999999;
-
- Rule tempRule;
- double point[] = {x0,y0};
-
- imageOut.clear(0xFFFFFFFF);
-
- for(int i=0; i maxX){ maxX = x; };
- if(y < minY){ minY = y; };
- if(y > maxY){ maxY = y; };
-
- }
-
- int width = imageOut.getWidth();
- int height = imageOut.getHeight();
-
- double deltaX = Math.abs(maxX-minX);
- double deltaY = Math.abs(maxY-minY);
- if(deltaX > deltaY){
- factor = (width/deltaX);
- if(deltaY * factor > height){
- factor = factor * (height/(deltaY * factor));
- }
- }
- else{
- factor = (height/deltaY);
- if(deltaX * factor > width){
- factor = factor * (width/(deltaX * factor));
- }
- }
-
- factor *= 0.9;
-
- startX = (int)((width/2)-((minX+((deltaX)/2))*factor));
- startY = (int)(height-((height/2)-((minY+(deltaY/2))*factor)));
-
- point[0] = x0;
- point[1] = y0;
-
- for(int i=0; i= 0 && x= 0 && y < height){
- imageOut.setIntColor((int)x,(int)y , 255, 0);
- }
- }
- }
-
-
- @Override
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblRules","Rules:");
- attributesPanel.newComponentRow();
- attributesPanel.addTextArea("txtRules","rules", 8, 40, attributes);
- }
- return attributesPanel;
- }
-
- private void loadRules(){
- String r[] = ((String)(attributes.get("rules"))).split("\n");
-
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.juliaSet;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class JuliaSet extends MarvinAbstractImagePlugin{
-
- private final static String MODEL_0 = "Model 0";
- private final static String MODEL_1 = "Model 1";
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private int colorModel;
- int width;
- int height;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("cReal", -0.4);
- attributes.set("cImag", 0.6);
- attributes.set("zoom", 1.0);
- attributes.set("xCenter", 0.0);
- attributes.set("yCenter", 0.0);
- attributes.set("iterations", 500);
- attributes.set("colorModel", MODEL_0);
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes out2,
- MarvinImageMask a_mask,
- boolean previewMode
- )
- {
- width = imageOut.getWidth();
- height = imageOut.getHeight();
-
- double cRe = (Double)attributes.get("cReal");
- double cIm = (Double)attributes.get("cImag");
- double zoom = (Double)attributes.get("zoom");
- double xc = (Double)attributes.get("xCenter");
- double yc = (Double)attributes.get("yCenter");
- int iterations = (Integer)attributes.get("iterations");
-
- if(((String)attributes.get("colorModel")).equals(MODEL_0)){
- colorModel = 0;
- } else{
- colorModel = 1;
- }
-
-
- double factor = 5.0/zoom;
- int iter;
-
- double x0,y0;
- double nx;
- double ny;
- double nx1;
- double ny1;
-
- boolean[][] mask = a_mask.getMask();
-
- for (int i=0; i < height; i++) {
- for (int j = 0; j < width; j++) {
-
- if(mask != null && !mask[j][i]){ continue; }
-
- x0 = xc - factor/2 + factor*j/width;
- y0 = yc - factor/2 + factor*i/height;
-
- nx=x0;
- ny=y0;
-
- iter=0;
- while(Math.sqrt(nx*nx + ny*ny) < 2.0 && iter < iterations){
- nx1 = nx*nx-ny*ny+cRe;
- ny1 = 2*(nx*ny)+cIm;
-
- nx = nx1;
- ny = ny1;
- iter++;
- }
- imageOut.setIntColor(j,height-1-i, 255, getColor(iter, iterations, colorModel));
- }
- }
- }
-
- private int getColor(int iter, int max, int colorModel){
- if(colorModel == 0){
- return getColor0(iter, max);
- }
- return getColor1(iter, max);
- }
-
- private int getColor1(int iter, int max){
- int red, green, blue;
-
- red = (int)(iter*(255.0/100));
- green = (int)(iter*(255.0/200));
- blue = (int)(iter*(255.0/300));
-
- return blue + (green << 8) + (red << 16);
- }
-
- private int getColor0(int iter, int max) {
- int red = (int) ((Math.cos(iter / 10.0f) + 1.0f) * 127.0f);
- int green = (int) ((Math.cos(iter / 20.0f) + 1.0f) * 127.0f);
- int blue = (int) ((Math.cos(iter / 300.0f) + 1.0f) * 127.0f);
- return blue + (green << 8) + (red << 16);
- }
-
- MarvinFilterWindow filterWindow;
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblCReal", "c Real:");
- attributesPanel.addTextField("txtCReal", "cReal", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblCImaginary", "c Imaginary:");
- attributesPanel.addTextField("txtCImaginary", "cImag", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblXCenter", "X Center:");
- attributesPanel.addTextField("txtXCenter", "xCenter", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblYCenter", "Y Center:");
- attributesPanel.addTextField("txtYCenter", "yCenter", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblZoom", "Zoom:");
- attributesPanel.addTextField("txtZoom", "zoom", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblIterations", "Iterations:");
- attributesPanel.addTextField("txtIterations", "iterations", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblColorModel", "Color Model:");
- attributesPanel.addComboBox("combColorModel", "colorModel", new Object[]{MODEL_0, MODEL_1}, attributes);
- }
- return attributesPanel;
- }
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/lindenmayer/Grammar.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/lindenmayer/Grammar.java
deleted file mode 100644
index 6c2dc51..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/lindenmayer/Grammar.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.lindenmayer;
-
-import java.util.HashMap;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class Grammar {
- HashMap rules;
-
- public Grammar(){
- rules = new HashMap();
- }
-
- public void addRule(String predecessor, String sucessor){
- rules.put(predecessor, sucessor);
- }
-
- public String derive(String text){
- StringBuffer result = new StringBuffer();
- String temp;
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.lindenmayer;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
-* @author Gabriel Ambrósio Archhanjo
-*/
-public class Lindenmayer extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- private Grammar grammar;
- private TurtleGraphics turtle;
- private String startText;
-
- private String RULES = "start->G\n" +
- "G->F[-G][+G]FG\n"+
- "F->FF\n";
-
-
- @Override
- public void load() {
- attributes = getAttributes();
- attributes.set("rotationAngle", 25.7);
- attributes.set("initialAngle", 90.0);
- attributes.set("iterations", 9);
- attributes.set("rules", RULES);
- attributes.set("initialText", "G");
-
- grammar = new Grammar();
- turtle = new TurtleGraphics();
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes out2,
- MarvinImageMask a_mask,
- boolean mode
- ) {
-
- String rules[] = null;
- String strRules = ((String)(attributes.get("rules")));
- if(strRules.contains("\n")){
- rules = ((String)(attributes.get("rules"))).split("\n");
- }
- else if(strRules.contains("&")){
- rules = ((String)(attributes.get("rules"))).split("&");
- }
-
- double initialAngle = (Double)attributes.get("initialAngle");
- double rotationAngle = (Double)attributes.get("rotationAngle");
- int iterations = (Integer)attributes.get("iterations");
-
-
- for(int i=0; i");
-
- if(r[0].equals("start")){
- startText = r[1];
- }
- else{
- grammar.addRule(r[0], r[1]);
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/lindenmayer/TurtleGraphics.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/lindenmayer/TurtleGraphics.java
deleted file mode 100644
index a65d0c8..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/lindenmayer/TurtleGraphics.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.lindenmayer;
-
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Polygon;
-import java.util.Stack;
-
-import marvin.image.MarvinImage;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class TurtleGraphics {
-
- private double walkDistance;
- private double rotationAngle;
- private int startPx;
- private int startPy;
- private double startAngle;
-
- // Current Turtle State
- private double currentPx;
- private double currentPy;
- private double currentAngle;
-
- // State Stack
- private Stack stateStack;
-
- private Polygon polygon = new Polygon();
- private boolean drawingPolygon = false;
-
- public TurtleGraphics(){
- stateStack = new Stack();
- }
-
- private void reset(){
- currentPx = 0;
- currentPy = 0;
- currentAngle = startAngle;
- stateStack.clear();
- }
-
- public void setStartPosition(int x, int y, double angle){
- startPx = x;
- startPy = y;
- startAngle = angle;
- }
-
- public void setWalkDistance(double distance){
- walkDistance = distance;
- }
-
- public void setRotationAngle(double angle){
- rotationAngle = angle;
- }
-
- public void render(String text, Grammar grammar, int iterations, MarvinImage image){
-
- reset();
-
- for(int i=0; i maxX){ maxX = currentPx; };
- if(currentPy < minY){ minY = currentPy; };
- if(currentPy > maxY){ maxY = currentPy; };
- }
- }
- else{
- polygon.addPoint(((int)newPx+startPx), (int)(newPy+startPy));
-
- }
-
- currentPx = newPx;
- currentPy = newPy;
- break;
- }
- case 'g':
- case 'h':
- case 'j':
- case 'k':
- case 'l':
- {
- // do nothing
- }
- case '+':
- {
- currentAngle -= rotationAngle;
- if(currentAngle < 0){
- currentAngle = 360+currentAngle;
- }
- break;
- }
- case '-':
- {
- currentAngle = (currentAngle + rotationAngle)%360;
- break;
- }
- case '[':
- {
- stateStack.push(new Double[]{currentPx, currentPy, currentAngle});
- break;
- }
- case ']':
- {
- Double o[] = stateStack.pop();
- currentPx = o[0];
- currentPy = o[1];
- currentAngle = o[2];
- break;
- }
- case '{':
- polygon = new Polygon();
- drawingPolygon = true;
- break;
- case '}':
- //g.fillPolygon(p);
- drawingPolygon = false;
- //g.setColor(Color.black);
- //System.out.println("black");
- break;
- case '#':
- if(text.charAt(i+1) == '0'){
- //g.setColor(Color.black);
- }
- else if(text.charAt(i+1) == '1'){
- //g.setColor(new Color(0,100,0));
- }
- else if(text.charAt(i+1) == '2'){
- //g.setColor(Color.red);
- }
- else if(text.charAt(i+1) == '3'){
- //g.setColor(Color.yellow);
- }
- else if(text.charAt(i+1) == '4'){
- //g.setColor(Color.blue);
- }
- i++;
- break;
- case '&':
- //g.setColor(new Color((int)(Math.random()*255), (int)(Math.random()*255), (int)(Math.random()*255)));
- i++;
- break;
- }
- }
-
- int width = image.getWidth();
- int height = image.getHeight();
-
- if(currentPx < minX){ minX = currentPx; };
- if(currentPx > maxX){ maxX = currentPx; };
- if(currentPy < minY){ minY = currentPy; };
- if(currentPy > maxY){ maxY = currentPy; };
-
- double deltaX = Math.abs(maxX-minX);
- double deltaY = Math.abs(maxY-minY);
- if(deltaX > deltaY){
- walkDistance = (width/deltaX);
- if(deltaY * walkDistance > height){
- walkDistance = walkDistance * (height/(deltaY * walkDistance));
- }
- }
- else{
- walkDistance = (height/deltaY);
- if(deltaX * walkDistance > width){
- walkDistance = walkDistance * (width/(deltaX * walkDistance));
- }
- }
-
- walkDistance *= 0.9;
-
- startPx = (int)((width/2)-((minX+((deltaX)/2))*walkDistance));
- startPy = (int)((height/2)-((minY+(deltaY/2))*walkDistance));
-
- }
-
- private void drawLine(int x0, int y0, int x1, int y1, MarvinImage image){
- boolean steep = (Math.abs(y1 - y0) > Math.abs(x1 - x0));
- int temp;
- if(steep){
- temp = x0;
- x0 = y0;
- y0 = temp;
-
- temp = x1;
- x1 = y1;
- y1 = temp;
- }
- if(x0 > x1){
- temp = x0;
- x0 = x1;
- x1 = temp;
-
- temp = y0;
- y0 = y1;
- y1 = temp;
- }
-
- int deltax = x1 - x0;
- int deltay = Math.abs(y1 - y0);
- int error = deltax / 2;
- int ystep;
- int y = y0;
-
- if(y0 < y1){
- ystep = 1;
- }
- else{
- ystep = -1;
- }
-
- for(int x=x0; x<=x1; x++){
- if(steep){
- if(y >= 0 && y < image.getWidth() && x >= 0 && x < image.getHeight()){
- image.setIntColor(y,x,0,0,0);
- }
- }
- else{
- if(x >= 0 && x < image.getWidth() && y >= 0 && y < image.getHeight()){
- image.setIntColor(x,y,0,0,0);
- }
- }
-
- error = error - deltay;
- if (error < 0){
- y = y + ystep;
- error = error + deltax;
- }
- }
- }
-}
-
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/mandelbrot/Mandelbrot.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/mandelbrot/Mandelbrot.java
deleted file mode 100644
index 96ebe09..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/mandelbrot/Mandelbrot.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.mandelbrot;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Gabriel Ambrósio Archanjo
- */
-public class Mandelbrot extends MarvinAbstractImagePlugin{
-
- private final static String MODEL_0 = "Model 0";
- private final static String MODEL_1 = "Model 1";
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private int colorModel;
- int width;
- int height;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("zoom", 1.0);
- attributes.set("xCenter", 0.0);
- attributes.set("yCenter", 0.0);
- attributes.set("iterations", 500);
- attributes.set("colorModel", MODEL_0);
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes out2,
- MarvinImageMask a_mask,
- boolean previewMode
- )
- {
- width = imageOut.getWidth();
- height = imageOut.getHeight();
-
- double zoom = (Double)attributes.get("zoom");
- double xc = (Double)attributes.get("xCenter");
- double yc = (Double)attributes.get("yCenter");
- int iterations = (Integer)attributes.get("iterations");
-
- if(((String)attributes.get("colorModel")).equals(MODEL_0)){
- colorModel = 0;
- } else{
- colorModel = 1;
- }
-
-
- double factor = 5.0/zoom;
- int iter;
-
- double x0,y0;
- double nx;
- double ny;
- double nx1;
- double ny1;
-
- boolean[][] mask = a_mask.getMask();
-
- for (int i=0; i < height; i++) {
- for (int j = 0; j < width; j++) {
-
- if(mask != null && !mask[j][i]){ continue; }
-
- x0 = xc - factor/2 + factor*j/width;
- y0 = yc - factor/2 + factor*i/height;
-
- nx=x0;
- ny=y0;
-
- iter=0;
- while(Math.sqrt(nx*nx + ny*ny) < 2.0 && iter < iterations){
- nx1 = nx*nx-ny*ny;
- ny1 = 2*(nx*ny);
-
- nx = nx1+x0;
- ny = ny1+y0;
- iter++;
- }
- imageOut.setIntColor(j,height-1-i, 255, getColor(iter, iterations, colorModel));
- }
- }
- }
-
- private int getColor(int iter, int max, int colorModel){
- if(colorModel == 0){
- return getColor0(iter, max);
- }
- return getColor1(iter, max);
- }
-
- private int getColor1(int iter, int max){
- double f = 0x00FFFFFF/max;
- int i = (int)(iter*f);
- int blue = (i&0xFF0000)>>16;
- int green = (i&0x00FF00)>>8;
- int red = (i&0x0000FF);
- return blue + (green << 8) + (red << 16);
- }
-
- private int getColor0(int iter, int max) {
- int red = (int) ((Math.cos(iter / 10.0f) + 1.0f) * 127.0f);
- int green = (int) ((Math.cos(iter / 20.0f) + 1.0f) * 127.0f);
- int blue = (int) ((Math.cos(iter / 300.0f) + 1.0f) * 127.0f);
- return blue + (green << 8) + (red << 16);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblXCenter", "X Center:");
- attributesPanel.addTextField("txtXCenter", "xCenter", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblYCenter", "Y Center:");
- attributesPanel.addTextField("txtYCenter", "yCenter", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblZoom", "Zoom:");
- attributesPanel.addTextField("txtZoom", "zoom", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblIterations", "Iterations:");
- attributesPanel.addTextField("txtIterations", "iterations", attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblColorModel", "Color Model:");
- attributesPanel.addComboBox("combColorModel", "colorModel", new Object[]{MODEL_0, MODEL_1}, attributes);
- }
- return attributesPanel;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/renderText/RenderText.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/renderText/RenderText.java
deleted file mode 100644
index 8b1086a..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/render/renderText/RenderText.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.render.renderText;
-
-import java.util.HashMap;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class RenderText extends MarvinAbstractImagePlugin{
-
- private MarvinAttributes attributes;
- private HashMap chars;
-
- @Override
- public void load() {
-
- attributes = getAttributes();
- attributes.set("x", 0);
- attributes.set("y", 0);
- attributes.set("color", 0);
- attributes.set("text", "");
-
-
-
- // Character description
- chars = new HashMap();
-
- chars.put('A', new CharacterDescription(0,2,19,17));
- chars.put('B', new CharacterDescription(24,2,17,17));
- chars.put('C', new CharacterDescription(47,2,17,17));
- chars.put('D', new CharacterDescription(70,2,17,17));
- chars.put('E', new CharacterDescription(93,2,16,17));
- chars.put('F', new CharacterDescription(115,2,15,17));
- chars.put('G', new CharacterDescription(136,2,18,17));
- chars.put('H', new CharacterDescription(161,2,18,17));
- chars.put('I', new CharacterDescription(186,2,8,17));
- chars.put('J', new CharacterDescription(200,2,15,17));
- chars.put('K', new CharacterDescription(222,2,20,17));
- chars.put('L', new CharacterDescription(247,2,15,17));
- chars.put('M', new CharacterDescription(268,2,17,17));
- chars.put('N', new CharacterDescription(295,2,18,17));
- chars.put('O', new CharacterDescription(320,2,18,17));
- chars.put('P', new CharacterDescription(345,2,16,17));
- chars.put('Q', new CharacterDescription(367,2,19,17));
- chars.put('R', new CharacterDescription(392,2,17,17));
- chars.put('S', new CharacterDescription(414,2,17,17));
- chars.put('T', new CharacterDescription(436,2,17,17));
- chars.put('U', new CharacterDescription(459,2,18,17));
- chars.put('V', new CharacterDescription(483,2,18,17));
- chars.put('W', new CharacterDescription(507,2,22,17));
- chars.put('X', new CharacterDescription(534,2,19,17));
- chars.put('Y', new CharacterDescription(557,2,19,17));
- chars.put('Z', new CharacterDescription(580,2,17,17));
- chars.put('0', new CharacterDescription(602,2,16,17));
- chars.put('1', new CharacterDescription(624,2,12,17));
- chars.put('2', new CharacterDescription(644,2,16,17));
- chars.put('3', new CharacterDescription(665,2,16,17));
- chars.put('4', new CharacterDescription(686,2,16,17));
- chars.put('5', new CharacterDescription(707,2,16,17));
- chars.put('6', new CharacterDescription(728,2,16,17));
- chars.put('7', new CharacterDescription(749,2,16,17));
- chars.put('8', new CharacterDescription(770,2,16,17));
- chars.put('9', new CharacterDescription(791,2,16,17));
- chars.put(':', new CharacterDescription(813,2,8,17));
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean mode
- )
- {
- MarvinImage font = (MarvinImage)attributes.get("fontFile");
- String text = (String)attributes.get("text");
- int x = (Integer)attributes.get("x");
- int y = (Integer)attributes.get("y");
- int color = (Integer)attributes.get("color");
- CharacterDescription charDesc;
-
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.restoration.noiseReduction;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Restores noise from the degraded noisy image.
- * Ref paper - Rudin Osher Fatemi:'Nonlinear TotalVariation based noise removal techniques'.
- *
- *
- * @version 1.0 02/28/2008
- * @author Smita Nair
- */
-
-public class NoiseReduction extends MarvinAbstractImagePlugin {
-
- MarvinPerformanceMeter performanceMeter;
- double mat1[][],mat2[][],mat3[][],mat4[][],mata[][];
- double img_x[][],img_y[][],img_xx[][],img_yy[][],img_xy[][];
- double matr[][],matg[][],matb[][];
- double img_org[][];
- int width;
- int height;
-
-
- public void load(){
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){return null;}
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- width=a_imageIn.getWidth();
- height=a_imageIn.getHeight();
-
- mat1=new double[width][height];
- mat2=new double[width][height];
- mat4=new double[width][height];
- mata=new double[width][height];
-
- img_x=new double[width][height];
- img_y=new double[width][height];
- img_xx=new double[width][height];
- img_yy=new double[width][height];
- img_xy=new double[width][height];
-
- matr=new double[width][height];
- matg=new double[width][height];
- matb=new double[width][height];
-
-
-
- performanceMeter.start("RestoreNoise");
- performanceMeter.startEvent("RestoreNoise");
-
-
- int iter=20; //no of iterations
-
- // Put the color values in double array
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- matr[x][y]= a_imageIn.getIntComponent0(x, y);
- matg[x][y]= a_imageIn.getIntComponent1(x, y);
- matb[x][y]= a_imageIn.getIntComponent2(x, y);
- }
- }
-
- // Call denoise function
- matr=denoise(matr,iter);
- matg=denoise(matg,iter);
- matb=denoise(matb,iter);
-
-
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- a_imageOut.setIntColor(x,y,(int)truncate(matr[x][y]),(int)truncate(matg[x][y]),(int)truncate(matb[x][y]));
- }
- performanceMeter.stepsFinished(height);
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
-
- //Function : denoise - Restores noisy images, input- double array containing color data
- public double[][] denoise(double mat[][],int iter)
- {
- img_org=new double[width][height];
- double img_res[][]=new double[width][height];
- double l_currentNum;
- double l_currentDen;
- int val=1;double lam=0;
- double dt=0.4;
-
-
- img_org=mat;
-
- //Perform iterations
-
- for (int it = 0;it0)
- mat2[i][j]= mat2[1][j];
- else if(j==0)
- mat2[i][0]= mat2[i][1];
-
- if (i==0 && j 255) return 255;
- else return a;
- }
-
-
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/segmentation/crop/Crop.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/segmentation/crop/Crop.java
deleted file mode 100644
index 9a47e26..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/segmentation/crop/Crop.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.segmentation.crop;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-public class Crop extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("x", 0);
- attributes.set("y", 0);
- attributes.set("width", 0);
- attributes.set("height", 0);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblX", "x:");
- attributesPanel.addTextField("txtX", "x", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblY", "y:");
- attributesPanel.addTextField("txtY", "y", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblWidth", "width:");
- attributesPanel.addTextField("txtWidth", "width", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblHeight", "height:");
- attributesPanel.addTextField("txtHeight", "height", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- int x = (Integer)attributes.get("x");
- int y = (Integer)attributes.get("y");
- int width = (Integer)attributes.get("width");
- int height = (Integer)attributes.get("height");
-
- imageOut.setDimension(width, height);
-
- for(int i=x; i 0){
- Color c = new Color(0xFF000000 | (currentColor++));
- floodfill.setAttribute("x", x);
- floodfill.setAttribute("y", y);
- floodfill.setAttribute("color", c);
- floodfill.process(image, fillBuffer);
- }
- }
- }
-
- MarvinSegment[] segments = new MarvinSegment[currentColor-1];
- MarvinSegment seg;
- for(int y=0; y 0){
-
- seg = segments[color-1];
-
- if(seg == null){
- seg = new MarvinSegment();
- segments[color-1] = seg;
- }
-
- // x and width
- if(seg.x1 == -1 || x < seg.x1) { seg.x1 = x; }
- if(seg.x2 == -1 || x > seg.x2) { seg.x2 = x; }
- seg.width = (seg.x2-seg.x1)+1;
-
- // y and height;
- if(seg.y1 == -1 || y < seg.y1) { seg.y1 = y; }
- if(seg.y2 == -1 || y > seg.y2) { seg.y2 = y; }
- seg.height = (seg.y2-seg.y1)+1;
-
- seg.area++;
- }
- }
- }
-
- return segments;
- }
-
- private MarvinBlobSegment[] blobSegments(MarvinImage image, MarvinSegment[] segments){
-
- MarvinBlobSegment[] blobSegments = new MarvinBlobSegment[segments.length];
-
- int colorSegment;
- MarvinSegment seg;
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.segmentation.imageSlicer;
-
-import java.io.File;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.util.MarvinErrorHandler;
-import marvin.util.MarvinFileChooser;
-
-
-/**
- * Image Slicer plug-in.
- * @author Hugo Henrique Slepicka
- * @version 1.1 05/11/2008
- */
-public class ImageSlicer extends MarvinAbstractImagePlugin {
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private MarvinPerformanceMeter performanceMeter;
- private DecimalFormat df = new DecimalFormat("000");
-
- public void load() {
- attributes = getAttributes();
- attributes.set("txtLines", 1);
- attributes.set("txtCols", 1);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- int conti, contx, conty, col, line, r, g, b, lines, cols, limitl, limitc;
-
- //Initialize the variables...
- col = line = conti = contx = conty = 0;
-
- //Get the values from objects...
- lines = Integer.parseInt(attributes.get("txtLines").toString());
- cols = Integer.parseInt(attributes.get("txtCols").toString());
-
-
-
- //Get the image width and height...
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
-
- //Set the vertical and horizontal limits of the images
- limitl = (height/lines);
- limitc = (width/cols);
-
- if(a_previewMode != true){
- //Creates the list to store the marvin Images of the sliced image...
- List listaImgs = new ArrayList();
-
- //Sets the default image to the images on the list...
- for(int x=0;x<(lines*cols);x++){
- listaImgs.add(new MarvinImage(limitc, limitl));
- }
-
- //Creates the Performance Meter...
- performanceMeter.enableProgressBar("Image Slicer", (lines*cols*limitc*limitl));
- int x,y=0;
- for(line=0;line
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.statistical.maximum;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Fabio Andrijauskas
- */
-public class Maximum extends MarvinAbstractImagePlugin {
-
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
- MarvinPerformanceMeter performanceMeter;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("size", 3);
- //attributes.set("shift", 0);
- //attributes.set("circlesDistance", 0);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- //MarvinImage img = new MarvinImage(a_image.getWidth(),a_image.getHeight());
- performanceMeter.start("Maximum Filter");
-
-
- int l_size = (Integer)attributes.get("size");
- int l_totalRed = 0;
- int l_totalGreen = 0;
- int l_totalBlue = 0;
- int qtd = 0;
- int tmpx = 0;
- int tmpy = 0;
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
-
- performanceMeter.enableProgressBar("Maximum Filter" ,a_imageIn.getWidth() * a_imageIn.getHeight() );
- performanceMeter.startEvent("Maximum Filter");
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- tmpx = x - l_size;
- tmpy = y - l_size;
-
- if(tmpx < 0)
- tmpx = 0;
- if(tmpy < 0)
- tmpy = 0;
-
- int finalX = x + l_size;
-
- int finalY = y + l_size;
-
- if(finalX > width)
- finalX = width;
-
- if(finalY > height)
- finalY = height;
-
- for (int xm = tmpx; xm < finalX ; xm++) {
- for (int ym = tmpy; ym < y + l_size ; ym++) {
-
- if(xm >= 0 && xm < width && ym >= 0 && ym < height )
- {
- int rgb = a_imageIn.getIntColor(xm, ym);
-
- int r = (int)(rgb & 0x00FF0000) >>> 16;
- if(r > l_totalRed)
- {
- l_totalRed = r;
- }
-
- int g = (int) ((rgb & 0x0000FF00) >>> 8);
- if(g > l_totalGreen )
- {
- l_totalGreen = g;
- }
-
- int b = (int) (rgb & 0x000000FF);
- if(b > l_totalBlue)
- {
- l_totalBlue = b;
- }
-
- }
- }
- }
-
- a_imageOut.setIntColor(x, y, a_imageIn.getAlphaComponent(x, y), l_totalRed, l_totalGreen, l_totalBlue);
-
- l_totalRed = 0;
- l_totalGreen = 0;
- l_totalBlue = 0;
- }
- performanceMeter.incProgressBar(height);
- performanceMeter.stepsFinished(height);
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Size:");
- attributesPanel.addTextField("txtSize", "size", attributes);
- attributesPanel.newComponentRow();
- }
- return attributesPanel;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/median/Median.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/median/Median.java
deleted file mode 100644
index c202fe0..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/median/Median.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.statistical.median;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Fabio Andrijauskas
- */
-public class Median extends MarvinAbstractImagePlugin {
-
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
- MarvinPerformanceMeter performanceMeter;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("size", 3);
- //attributes.set("shift", 0);
- //attributes.set("circlesDistance", 0);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- performanceMeter.start("Median Filter");
-
-
- int l_size = (Integer)attributes.get("size");
- int l_totalRed = 0;
- int l_totalGreen = 0;
- int l_totalBlue = 0;
- int qtd = 0;
- int tmpx = 0;
- int tmpy = 0;
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
-
- performanceMeter.enableProgressBar("Median Filter" ,a_imageIn.getWidth() * a_imageIn.getHeight() );
- performanceMeter.startEvent("Median Filter");
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- tmpx = x - l_size;
- tmpy = y - l_size;
-
- if(tmpx < 0)
- tmpx = 0;
- if(tmpy < 0)
- tmpy = 0;
-
- int finalX = x + l_size;
-
- int finalY = y + l_size;
-
- if(finalX > width)
- finalX = width;
-
- if(finalY > height)
- finalY = height;
-
- for (int xm = tmpx; xm < finalX ; xm++) {
- for (int ym = tmpy; ym < y + l_size ; ym++) {
-
- if(xm >= 0 && xm < width && ym >= 0 && ym < height )
- {
- int rgb = a_imageIn.getIntColor(xm, ym);
- l_totalRed += (int)(rgb & 0x00FF0000) >>> 16;
- l_totalGreen += (int) ((rgb & 0x0000FF00) >>> 8);
- l_totalBlue += (int) (rgb & 0x000000FF);
- qtd++;
- }
- }
- }
-
- a_imageOut.setIntColor(x, y, a_imageIn.getAlphaComponent(x, y), l_totalRed / qtd, l_totalGreen / qtd, l_totalBlue / qtd);
-
- l_totalRed = 0;
- l_totalGreen = 0;
- l_totalBlue = 0;
- qtd = 0;
- }
- performanceMeter.incProgressBar(height);
- performanceMeter.stepsFinished(height);
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Size:");
- attributesPanel.addTextField("txtSize", "size", attributes);
- attributesPanel.newComponentRow();
- }
- return attributesPanel;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/minimum/Minimum.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/minimum/Minimum.java
deleted file mode 100644
index 3f9845d..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/minimum/Minimum.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.statistical.minimum;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Fabio Andrijauskas
- */
-public class Minimum extends MarvinAbstractImagePlugin {
-
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
- MarvinPerformanceMeter performanceMeter;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("size", 3);
- //attributes.set("shift", 0);
- //attributes.set("circlesDistance", 0);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- performanceMeter.start("Minimum Filter");
-
-
- int l_size = (Integer)attributes.get("size");
- int l_totalRed = 0;
- int l_totalGreen = 0;
- int l_totalBlue = 0;
- int qtd = 0;
- int tmpx = 0;
- int tmpy = 0;
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
-
- performanceMeter.enableProgressBar("Minimum Filter" ,a_imageIn.getWidth() * a_imageIn.getHeight() );
- performanceMeter.startEvent("Minimum Filter");
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- l_totalRed = 255;
- l_totalGreen = 255;
- l_totalBlue = 255;
- tmpx = x - l_size;
- tmpy = y - l_size;
-
- if(tmpx < 0)
- tmpx = 0;
- if(tmpy < 0)
- tmpy = 0;
-
- int finalX = x + l_size;
-
- int finalY = y + l_size;
-
- if(finalX > width)
- finalX = width;
-
- if(finalY > height)
- finalY = height;
-
- for (int xm = tmpx; xm < finalX ; xm++) {
- for (int ym = tmpy; ym < y + l_size ; ym++) {
-
- if(xm >= 0 && xm < width && ym >= 0 && ym < height )
- {
- int rgb = a_imageIn.getIntColor(xm, ym);
-
- int r = (int)(rgb & 0x00FF0000) >>> 16;
- if(r < l_totalRed)
- {
- l_totalRed = r;
- }
-
-
- int g = (int) ((rgb & 0x0000FF00) >>> 8);
- if( g < l_totalGreen)
- {
- l_totalGreen = g;
- }
-
-
- int b = (int) (rgb & 0x000000FF);
- if( b < l_totalBlue )
- {
- l_totalBlue = b;
- }
-
- }
- }
- }
-
- a_imageOut.setIntColor(x, y, a_imageIn.getAlphaComponent(x, y), l_totalRed, l_totalGreen, l_totalBlue);
-
- l_totalRed = 0;
- l_totalGreen = 0;
- l_totalBlue = 0;
- }
- performanceMeter.incProgressBar(height);
- performanceMeter.stepsFinished(height);
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Size:");
- attributesPanel.addTextField("txtSize", "size", attributes);
- attributesPanel.newComponentRow();
- }
- return attributesPanel;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/mode/Mode.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/mode/Mode.java
deleted file mode 100644
index aaf1b4f..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/statistical/mode/Mode.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.statistical.mode;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.performance.MarvinPerformanceMeter;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * @author Fabio Andrijauskas
- */
-public class Mode extends MarvinAbstractImagePlugin {
-
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
- MarvinPerformanceMeter performanceMeter;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("size", 3);
- //attributes.set("shift", 0);
- //attributes.set("circlesDistance", 0);
- performanceMeter = new MarvinPerformanceMeter();
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- performanceMeter.start("Moda Filter");
-
-
- int l_size = (Integer)attributes.get("size");
- int mapSize = l_size * l_size;
- int l_totalRed = 0;
- int l_totalGreen = 0;
- int l_totalBlue = 0;
- int qtd = 0;
- int tmpx = 0;
- int tmpy = 0;
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
-
- Map mapModaR;
- Map mapModaG;
- Map mapModaB;
-
- performanceMeter.enableProgressBar("Moda Filter" ,a_imageIn.getWidth() * a_imageIn.getHeight() );
- performanceMeter.startEvent("Moda Filter");
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- tmpx = x - l_size;
- tmpy = y - l_size;
-
- mapModaR = new HashMap(mapSize);
- mapModaG = new HashMap(mapSize);
- mapModaB = new HashMap(mapSize);
-
- if(tmpx < 0)
- tmpx = 0;
- if(tmpy < 0)
- tmpy = 0;
-
- int finalX = x + l_size;
-
- int finalY = y + l_size;
-
- if(finalX > width)
- finalX = width;
-
- if(finalY > height)
- finalY = height;
-
- for (int xm = tmpx; xm < finalX ; xm++) {
- for (int ym = tmpy; ym < y + l_size ; ym++) {
-
- if(xm >= 0 && xm < width && ym >= 0 && ym < height )
- {
- int rgb = a_imageIn.getIntColor(xm, ym);
- l_totalRed = (int)(rgb & 0x00FF0000) >>> 16;
- l_totalGreen = (int) ((rgb & 0x0000FF00) >>> 8);
- l_totalBlue = (int) (rgb & 0x000000FF);
-
- Integer l_val = mapModaR.get(l_totalRed);
- if(l_val == null)
- l_val = 0;
-
- mapModaR.put((Integer)l_totalRed, ++l_val);
-
-
-
- l_val = mapModaG.get(l_totalGreen);
- if(l_val == null)
- l_val = 0;
-
- mapModaG.put((Integer)l_totalGreen, ++l_val);
-
-
-
-
- l_val = mapModaB.get(l_totalBlue);
- if(l_val == null)
- l_val = 0;
-
- mapModaB.put((Integer)l_totalBlue, ++l_val);
-
-
- }
- }
- }
-
- Integer r1 = 0;
- for(Integer it : mapModaR.keySet())
- {
- if( mapModaR.get(it) >= r1)
- {
- r1 = it;
- }
-
- }
-
- Integer g1 = 0;
- for(Integer it : mapModaG.keySet())
- {
- if( mapModaG.get(it) >= g1)
- {
- g1 = it;
- }
-
- }
-
- Integer b1 = 0;
- for(Integer it : mapModaB.keySet())
- {
- if( mapModaB.get(it) >= b1)
- {
- b1 = it;
- }
-
- }
-
- a_imageOut.setIntColor(x, y, a_imageIn.getAlphaComponent(x, y), r1 , g1 , b1 );
-
-
- }
- performanceMeter.incProgressBar(height);
- performanceMeter.stepsFinished(height);
- }
- performanceMeter.finishEvent();
- performanceMeter.finish();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Size:");
- attributesPanel.addTextField("txtSize", "size", attributes);
- attributesPanel.newComponentRow();
- }
- return attributesPanel;
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/steganography/Steganography.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/steganography/Steganography.java
deleted file mode 100644
index 5ed6315..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/steganography/Steganography.java
+++ /dev/null
@@ -1,595 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.steganography;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-import javax.swing.JTextArea;
-import javax.swing.filechooser.FileNameExtensionFilter;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinPluginWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.util.MarvinFileChooser;
-
-/**
- * Steganography plug-in
- * @author Hugo Henrique Slepicka
- */
-public class Steganography extends MarvinAbstractImagePlugin implements ActionListener{
-
- private enum Action{
- MODE_READ, MODE_WRITE
- };
-
- private enum Type{
- TYPE_TEXT, TYPE_FILE
- };
-
- private final int numArgs = 3;
-
- private final int RED = 0;
- private final int GREEN = 1;
- private final int BLUE = 2;
-
-
- private int currentColor = RED;
- private int currentPixel = 0;
-
- private MarvinAttributes attributes;
- private MarvinAttributesPanel attributesPanel;
- //private MarvinPluginWindow pluginWindow;
- private JButton buttonOK;
- private byte[] put;
- private byte[] get;
-
- private Type type;
- private long pixels;
- private String ext;
- private int xH, yH = 0;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("txtLines", "");
- attributes.set("cbSelection", "Write on Image");
- attributes.set("cbType", "Store a file");
- }
-
-
-
- public Action getAction(){
- String s = attributes.get("cbSelection").toString();
- if(s.equals("Write on Image")){
- return (Action.MODE_WRITE);
- }else{
- return (Action.MODE_READ);
- }
- }
-
- public Type getType(){
- String s = attributes.get("cbType").toString();
- if(s.equals("Store a file")){
- return (Type.TYPE_FILE);
- }else{
- return (Type.TYPE_TEXT);
- }
- }
-
- public void getHEADER(MarvinImage a_image){
- //Cabeçalho do arquivo no seguinte formato:
- //Tipo_do_armazenamento/Extensao/Qtde_Pixels
- //F/docx/12345
- int cont = 0;
- String binpar = "";
- String pixaux = "";
- ext = "";
- type = null;
- pixels = 0L;
-
- currentColor = RED;
- currentPixel = 0;
-
- while(cont != numArgs){
- binpar += readBit(a_image);
- if(binpar.length()==8){
- //If equals, increment cont
- if(binpar.equals("00101111")){
- cont++;
- }else{
-
- switch(cont){
- //File Type
- case 0:
- if(binpar.equals("01010100")){
- type = Type.TYPE_TEXT;
- }else{
- type = Type.TYPE_FILE;
- }
- break;
- //File Extension
- case 1:
- ext += (char) Integer.parseInt(binpar,2);
- break;
- //Pixels
- case 2:
- pixaux += (char) Integer.parseInt(binpar,2);
- break;
- }
- }
- binpar = "";
- }
- }
- xH = currentPixel/a_image.getHeight();
- yH = currentPixel%a_image.getHeight();
- pixels = Long.valueOf(pixaux);
- }
-
- public String setHEADER(File fileOrigin){
-
- //File header in the following format:
- //Storage type/Extension/Pixel amount
- //F/docx/12345
- String rec = "";
- switch(getType()){
- case TYPE_FILE:
- rec += "F";
- break;
- case TYPE_TEXT:
- rec += "T";
- break;
- }
-
- rec += "/";
- rec += fileOrigin.getName().substring(fileOrigin.getName().lastIndexOf('.')+1);
- rec += "/";
- rec += fileOrigin.length()*8;
- rec += "/";
-
- return rec;
- }
-
- public String setHEADER(String Message){
-
- //File header in the following format:
- //Storage type/Extension/Pixel amount
- //F/docx/12345/
- String rec = "";
- switch(getType()){
- case TYPE_FILE:
- rec += "F";
- break;
- case TYPE_TEXT:
- rec += "T";
- break;
- }
-
- rec += "/";
- rec += "txt";
- rec += "/";
- rec += Message.length()*8;
- rec += "/";
-
- return rec;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- int l_result = 0;
- String name = "";
-
- //Get the action - Write File/Read File
- switch(getAction()){
- case MODE_WRITE:
- //Get the Type of record to store in image...
- switch(getType()){
- case TYPE_FILE:
- try{
- JOptionPane.showMessageDialog(null, "Select a file to store on image");
- JFileChooser jfc = new JFileChooser("./img");
- jfc.setAcceptAllFileFilterUsed(true);
- l_result = jfc.showOpenDialog(attributesPanel);
-
- if(l_result != JFileChooser.CANCEL_OPTION){
- name = jfc.getSelectedFile().getCanonicalPath();
- }
- } catch(IOException ex){
- ex.printStackTrace();
- }
- if((l_result != JFileChooser.CANCEL_OPTION)&&(name != null)&&(name.length() > 0)){
- File arq = new File(name);
- PrepareFile(arq);
- }else{
- JOptionPane.showMessageDialog(null, "Invalid file name!");
- return ;
- }
- break;
- case TYPE_TEXT:
- prepareFile(((JTextArea) attributesPanel.getComponent("txtLines").getComponent()).getText());
- break;
- }
- if(storeOnImage(a_imageIn, put)){
- a_imageIn.update();
- JOptionPane.showMessageDialog(null, "Image modified successfully");
- attributesPanel.getParent().setVisible(false);
- }
- break;
- case MODE_READ:
- if(isPng(a_imageIn)){
- switch(StorageType(a_imageIn)){
- case TYPE_TEXT:
- JOptionPane.showMessageDialog(null, "Text found!");
- ReadText(a_imageIn);
- break;
- case TYPE_FILE:
- JOptionPane.showMessageDialog(null, "File found!");
- ReadFile(a_imageIn);
- break;
- default:
- JOptionPane.showMessageDialog(null, "This file does not contain any content!");
- }
- }else{
- JOptionPane.showMessageDialog(null, "The image must be in PNG format!");
- return ;
- }
- break;
- }
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
-
- attributesPanel = new MarvinAttributesPanel();
- //Create the objects to receive the text that will be masked on the image...
- attributesPanel.newComponentRow();
- attributesPanel.addComboBox("cbSelection", "cbSelection", new String[] {"Read from Image","Write on Image"}, attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addComboBox("cbType", "cbType", new String[] {"Store a file","Store a text"}, attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblTexto", "Type below the text to be stored:");
- attributesPanel.newComponentRow();
- attributesPanel.addTextArea("txtLines", "txtLines", 6, 40, attributes);
-
- attributesPanel.newComponentRow();
-
- buttonOK = new JButton("OK");
- buttonOK.addActionListener(this);
- attributesPanel.getCurrentPanel().add(buttonOK);
-
- JComboBox cbSel = (JComboBox) attributesPanel.getComponent("cbSelection").getComponent();
- cbSel.addActionListener(this);
-
- JComboBox cbType = (JComboBox) attributesPanel.getComponent("cbType").getComponent();
- cbType.setVisible(false);
-
- return attributesPanel;
-
- }
-
-
-
- public boolean storeOnImage(MarvinImage a_image, byte[] Put){
-
-// if((Put.length*8) > (a_image.getWidth()*a_image.getHeight()*3)){
-// JOptionPane.showMessageDialog(null, "Espaço insulficiente na imagem para armazenar informaçőes solicitadas.","Marvin", JOptionPane.ERROR_MESSAGE);
-// return false;
-// }else{
- for (int l_pos = 0; l_pos < put.length; l_pos++){
- for (int l_bit = 0; l_bit < 8; l_bit++){
- storeBit(a_image, put[l_pos], 7-l_bit);
- }
- }
-// }
- return true;
- }
-
- private Type StorageType(MarvinImage a_image){
- getHEADER(a_image);
- return type;
- }
-
- private void ReadText(MarvinImage a_image){
- get = new byte[(int) (pixels/8)];
- String msgbin = "";
- String msg = "";
- int cont = 0;
-
- for(int i = 0; i < pixels; i++){
- msgbin += readBit(a_image);
- if(msgbin.length() == 8){
- get[cont] = (byte) Integer.parseInt(msgbin,2);
- msgbin = "";
- cont++;
- }
- }
-
- for(int i = 0; i < get.length; i++){
- msg += (char) get[i];
- }
-
- ((JTextArea) attributesPanel.getComponent("txtLines").getComponent()).setText(msg);
- }
-
- private void ReadFile(MarvinImage a_image){
- get = new byte[(int) (pixels/8)];
- String msgbin = "";
- int cont = 0;
-
- for(int i = 0; i < pixels; i++){
- msgbin += readBit(a_image);
- if(msgbin.length() == 8){
- get[cont] = (byte) Integer.parseInt(msgbin,2);
- msgbin = "";
- cont++;
- }
- }
-
- try {
- String name = "";
- JOptionPane.showMessageDialog(null, "Select the file destination.");
- FileNameExtensionFilter[] vExt = new FileNameExtensionFilter[]{new FileNameExtensionFilter("File - *."+ext,ext)};
- name = MarvinFileChooser.select(attributesPanel,false,MarvinFileChooser.SAVE_DIALOG,vExt);
-
- if((name != null)&&(name.length() > 0)){
- File fileOutput = new File(name);
-
- FileOutputStream out = new FileOutputStream(fileOutput);
- BufferedOutputStream on = new BufferedOutputStream(out);
-
- for(int i = 0; i < get.length; i++){
- on.write((int) get[i]);
- }
- on.close();
- }else{
- JOptionPane.showMessageDialog(null, "Invalid file name.");
- }
- }catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- private void prepareFile(String Message){
-
- String header = "";
- int cont = 0;
-
- header = setHEADER(Message);
-
- put = new byte[header.length()+Message.length()];
-
- for (int j = 0; j < header.length(); j++){
- put[cont] = (byte) header.charAt(j);
- cont++;
- }
-
- for (int j = 0; j < Message.length(); j++){
- put[cont] = (byte) Message.charAt(j);
- cont++;
- }
- }
-
- private void PrepareFile(File FileName){
- String header = "";
- int cont = 0;
-
- try{
- File fileOrigin = FileName;
-
-
- FileInputStream i = new FileInputStream(fileOrigin);
- BufferedInputStream in = new BufferedInputStream(i);
- byte[] arq = new byte[(int) fileOrigin.length()];
-
-
- in.read(arq);
-
- header = setHEADER(FileName);
-
- put = new byte[header.length() + arq.length];
-
- for (int j = 0; j < header.length(); j++){
- put[cont] = (byte) header.charAt(j);
- cont++;
- }
-
- for(int r=0;r 255) return 255;
- else return a;
- }
-
- public void actionPerformed(ActionEvent e) {
-
- if(e.getSource() == buttonOK){
- attributesPanel.applyValues();
- process(getImagePanel().getImage(), null);
- }
- else{
- JComboBox cbSel = (JComboBox) attributesPanel.getComponent("cbSelection").getComponent();
- JComboBox cbType = (JComboBox) attributesPanel.getComponent("cbType").getComponent();
-
- cbType.setVisible(cbSel.getSelectedItem() == "Write on Image");
- }
- }
-
- private boolean isPng(MarvinImage a_image){
- String ext = a_image.getFormatName();
- if((ext != null)&&(ext.equals("png"))){
- return true;
- }else{
- return false;
- }
- }
-
- private int getBit(int dado, int bit){
- return ((dado & (0x1 << bit)) >> bit);
- }
-
- private void storeBit(MarvinImage image, byte dado, int bit){
- int currX, currY;
- int vbit;
- int r,g,b;
-
- currX = currentPixel/image.getHeight();
- currY = currentPixel%image.getHeight();
-
- vbit = getBit(dado, bit);
-
- r = image.getIntComponent0(currX, currY);
- g = image.getIntComponent1(currX, currY);
- b = image.getIntComponent2(currX, currY);
-
- switch(currentColor){
- case RED:
- if(vbit == 0){
- //If r is odd
- if(r % 2 !=0){
- //If r+i is less than 255
- if(r + 1 <255){ r += 1; }else{ r -= 1; }
- }
- }else{
- //If r is even
- if(r % 2 ==0){
- //If r+1 is less than 255
- if(r + 1 < 255){ r += 1; }else{ r -= 1; }
- }
- }
-
- image.setIntColor(currX, currY, r, g, b);
- currentColor++;
- break;
-
- case GREEN:
- if(vbit == 0){
- //If g is odd
- if(g % 2 !=0){
- //If g+i is less than 255
- if(g + 1 <255){ g += 1; }else{ g -= 1; }
- }
- }else{
- //If g is even
- if(g % 2 ==0){
- //If g+1 is less than 255
- if(g + 1 < 255){ g += 1; }else{ g -= 1; }
- }
- }
-
- image.setIntColor(currX, currY, r, g, b);
-
- currentColor++;
- break;
-
- case BLUE:
- if(vbit == 0){
- //If b is odd
- if(b % 2 !=0){
- //If b+1 is less than 255
- if(b + 1 <255){ b += 1; }else{ b -= 1; }
- }
- }else{
- //If b is even
- if(b % 2 ==0){
- //If b+1 is less than 255
- if(b + 1 < 255){ b += 1; }else{ b -= 1; }
- }
- }
-
- image.setIntColor(currX, currY, r, g, b);
- currentColor = RED;
- currentPixel++;
- break;
-
- }
- }
-
- private char readBit(MarvinImage image){
- int currX, currY;
- char result = '0';
- int r,g,b;
-
-
- currX = currentPixel/image.getHeight();
- currY = currentPixel%image.getHeight();
-
- r = image.getIntComponent0(currX, currY);
- g = image.getIntComponent1(currX, currY);
- b = image.getIntComponent2(currX, currY);
-
- switch(currentColor){
- case RED:
- if(r%2==0)
- result = '0';
- else
- result = '1';
- currentColor++;
- break;
-
- case GREEN:
- if(g%2==0)
- result = '0';
- else
- result = '1';
- currentColor++;
- break;
-
- case BLUE:
- if(b%2==0)
- result = '0';
- else
- result = '1';
- currentColor = RED;
- currentPixel++;
- break;
- }
- return result;
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/subtract/Subtract.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/subtract/Subtract.java
deleted file mode 100644
index db5c05c..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/subtract/Subtract.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.subtract;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Subtract an image from another
- * @author Gabriel Ambrosio Archanjo
- */
-public class Subtract extends MarvinAbstractImagePlugin{
-
- MarvinAttributes attributes;
- MarvinImage imageBackground;
- int colorRange;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("colorRange", 30);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- imageBackground = (MarvinImage)attributes.get("backgroundImage");
- colorRange = (Integer)attributes.get("colorRange");
-
- int l_red,
- l_redBg,
- l_green,
- l_greenBg,
- l_blue,
- l_blueBg;
-
- for(int y=0; y colorRange ||
- Math.abs(l_greenBg-l_green)> colorRange ||
- Math.abs(l_blueBg-l_blue)> colorRange
- )
- {
- a_imageOut.setIntColor(x, y, a_imageIn.getIntColor(x, y));
- }
- else{
- a_imageOut.setIntColor(x, y, 0,0,255);
- }
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/test/determineGround/DetermineGround.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/test/determineGround/DetermineGround.java
deleted file mode 100644
index 2384ec3..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/test/determineGround/DetermineGround.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.test.determineGround;
-
-import java.awt.Color;
-import java.awt.Point;
-import java.util.LinkedList;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.brightnessAndContrast.BrightnessAndContrast;
-import org.marvinproject.image.edge.edgeDetector.EdgeDetector;
-
-public class DetermineGround extends MarvinAbstractImagePlugin{
-
- private MarvinImagePlugin l_pluginEdgeDetector,
- l_pluginBC;
-
- public void load(){
- l_pluginEdgeDetector = new EdgeDetector();
- l_pluginEdgeDetector.load();
- l_pluginBC = new BrightnessAndContrast();
- l_pluginBC.load();
- l_pluginBC.setAttribute("contrast", 255);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){ return null; }
-
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- MarvinImage l_originalImage = a_imageIn.clone();
- l_pluginEdgeDetector.process(a_imageIn, a_imageOut, a_attributesOut, a_mask, a_previewMode);
- l_pluginBC.process(a_imageOut, a_imageOut, a_attributesOut, a_mask, a_previewMode);
-
- // remove black border
- a_imageOut.drawRect(0, 0,a_imageOut.getWidth(), a_imageOut.getHeight(), Color.white);
-
- // Copy a_imageOut content to a_imageIn
- a_imageOut.copyColorArray(a_imageOut, a_imageIn);
-
- max(a_imageIn, a_imageOut);
-
- //long time = System.currentTimeMillis();
- floodFill(a_imageOut, 10,400,0xFFFFFFFF, 0xFF00FF00);
- //System.out.println("time:"+(System.currentTimeMillis()-time));
-
- blend(a_imageOut, l_originalImage);
- a_imageOut.copyColorArray(l_originalImage, a_imageOut);
- }
-
- private void blend(MarvinImage a_imageIn, MarvinImage a_imageOut){
- for(int l_y=0; l_y 0 && a_x < a_image.getWidth() && a_y > 0 && a_y < a_image.getHeight()){
- a_image.setIntColor(a_x, a_y, 0,0,0);
- }
- }
-
-
- /**
- * Flood fill - not recursively
- * @param a_image
- * @param a_x
- * @param a_y
- * @param a_regionRGB
- * @param a_regionNewRGB
- */
- private void floodFill(MarvinImage a_image, int a_x, int a_y, int a_regionTargetRGB, int a_regionNewRGB){
- LinkedList l_list = new LinkedList();
- Point l_point,
- l_pointW,
- l_pointE;
-
-
- if(a_image.getIntColor(a_x, a_y) != a_regionTargetRGB){
- return;
- }
-
- l_list.add(new Point(a_x, a_y));
-
- //for(int l_i=0; l_i 0){
- l_point = l_list.poll();
- l_pointW = new Point(l_point.x, l_point.y);
- l_pointE = new Point(l_point.x, l_point.y);
-
- // west
- while(true){
- if(l_pointW.x-1 > 0 && a_image.getIntColor(l_pointW.x-1, l_pointW.y) == a_regionTargetRGB){
- l_pointW.x--;
- }
- else{
- break;
- }
- }
-
- // east
- while(true){
- if(l_pointE.x+1 < a_image.getWidth() && a_image.getIntColor(l_pointE.x+1, l_pointE.y) == a_regionTargetRGB){
- l_pointE.x++;
- }
- else{
- break;
- }
- }
-
- if(l_pointE.x == l_pointW.x && l_pointE.y == l_pointW.y){
- continue;
- }
-
- // set color of pixels between pointW and pointE
- for(int l_px=l_pointW.x; l_px<=l_pointE.x; l_px++){
- a_image.setIntColor(l_px, l_point.y, a_regionNewRGB);
-
- if(l_point.y-1 > 0 && a_image.getIntColor(l_px, l_point.y-1) == a_regionTargetRGB){
- l_list.add(new Point(l_px, l_point.y-1));
- }
- if(l_point.y+1 < a_image.getHeight() && a_image.getIntColor(l_px, l_point.y+1) == a_regionTargetRGB){
- l_list.add(new Point(l_px, l_point.y+1));
- }
- }
- }
- }
-
- private void foo(MarvinImage a_image, int a_x, int a_y, int a_regionRGB, int a_regionNewRGB){
- a_image.setIntColor(a_x, a_y, a_regionNewRGB);
-
- if(a_x-1 > 0 && a_image.getIntColor(a_x-1, a_y) == a_regionRGB){
- foo(a_image, a_x-1, a_y, a_regionRGB, a_regionNewRGB);
- }
- if(a_x+1 < a_image.getWidth() && a_image.getIntColor(a_x+1, a_y) == a_regionRGB){
- foo(a_image, a_x+1, a_y, a_regionRGB, a_regionNewRGB);
- }
-
- if(a_y-1 > 0 && a_image.getIntColor(a_x, a_y-1) == a_regionRGB){
- foo(a_image, a_x, a_y-1, a_regionRGB, a_regionNewRGB);
- }
- if(a_y+1 < a_image.getHeight() && a_image.getIntColor(a_x, a_y+1) == a_regionRGB){
- foo(a_image, a_x, a_y+1, a_regionRGB, a_regionNewRGB);
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/test/plugin/Plugin.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/test/plugin/Plugin.java
deleted file mode 100644
index 7dd1c04..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/test/plugin/Plugin.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.test.plugin;
-
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
-import javax.swing.JSlider;
-import javax.swing.JTextField;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.gui.MarvinPluginWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-/**
- * Sepia plug-in. Reference: {@link http://forum.java.sun.com/thread.jspa?threadID=728795&messageID=4195478}
- * @author Hugo Henrique Slepicka
- * @version 1.0.2 04/10/2008
- */
-public class Plugin extends MarvinAbstractImagePlugin implements ChangeListener, KeyListener{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private MarvinPluginWindow tela;
-
- public void load() {
- attributes = getAttributes();
- attributes.set("hsR", 0);
- attributes.set("hsG", 0);
- attributes.set("hsB", 0);
- attributes.set("txtR", "0");
- attributes.set("txtG", "0");
- attributes.set("txtB", "0");
- }
-
- public int truncate(int a) {
- if (a < 0) return 0;
- else if (a > 255) return 255;
- else return a;
- }
- public int positive(int a) {
- if (a < 0) return -a;
- else return a;
- }
-
-
- public void process(
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- //RGB rgb = new RGB();
- RGB rgbImagem = new RGB();
-
- int l_red = (Integer)attributes.get("hsR");
- int l_green = (Integer)attributes.get("hsG");
- int l_blue = (Integer)attributes.get("hsB");
-
- int width = a_imageIn.getWidth();
- int height = a_imageIn.getHeight();
-
- boolean[][] l_arrMask = a_mask.getMask();
-
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- if(l_arrMask != null && !l_arrMask[x][y]){
- continue;
- }
-
- rgbImagem.setR(a_imageIn.getIntComponent0(x, y));
- rgbImagem.setG(a_imageIn.getIntComponent1(x, y));
- rgbImagem.setB(a_imageIn.getIntComponent2(x, y));
-
- rgbImagem.setR((int)(rgbImagem.getR()*(255.0/(255.0-l_red))));
- rgbImagem.setG((int)(rgbImagem.getG()*(255.0/(255.0-l_green))));
- rgbImagem.setB((int)(rgbImagem.getB()*(255.0/(255.0-l_blue))));
-
- a_imageOut.setIntColor(x, y, rgbImagem.getR(),rgbImagem.getG(),rgbImagem.getB());
- }
- }
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblC", "Cyan");
- attributesPanel.addHorizontalSlider("hsR", "hsR", -100, 100, 0, attributes);
- attributesPanel.addLabel("lblR", "Red");
- attributesPanel.addTextField("txtR", "txtR",attributes);
-
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblM", "Magenta");
- attributesPanel.addHorizontalSlider("hsG", "hsG", -100, 100, 0, attributes);
- attributesPanel.addLabel("lblG", "Green");
- attributesPanel.addTextField("txtG", "txtG",attributes);
-
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblY", "Yellow");
- attributesPanel.addHorizontalSlider("hsB", "hsB", -100, 100, 0, attributes);
- attributesPanel.addLabel("lblB", "Blue");
- attributesPanel.addTextField("txtB", "txtB",attributes);
-
- attributesPanel.newComponentRow();
-
-
- JSlider sliderR = (JSlider)(attributesPanel.getComponent("hsR").getComponent());
- JSlider sliderG = (JSlider)(attributesPanel.getComponent("hsG").getComponent());
- JSlider sliderB = (JSlider)(attributesPanel.getComponent("hsB").getComponent());
-
- JTextField txtR = (JTextField)(attributesPanel.getComponent("txtR").getComponent());
- JTextField txtG = (JTextField)(attributesPanel.getComponent("txtG").getComponent());
- JTextField txtB = (JTextField)(attributesPanel.getComponent("txtB").getComponent());
-
- sliderR.addChangeListener(this);
- sliderG.addChangeListener(this);
- sliderB.addChangeListener(this);
- txtR.addKeyListener(this);
- txtG.addKeyListener(this);
- txtB.addKeyListener(this);
- }
- return attributesPanel;
- }
-
- //Manipula as alteraçőes da Horizontal Bar
- //Handles the Horizontal Bar changes
- public void stateChanged(ChangeEvent e) {
- JSlider barra1 = (JSlider) (attributesPanel.getComponent("hsR").getComponent());
- JSlider barra2 = (JSlider) (attributesPanel.getComponent("hsG").getComponent());
- JSlider barra3 = (JSlider) (attributesPanel.getComponent("hsB").getComponent());
- JSlider barra = (JSlider) (e.getSource());
- JTextField lbl = null;
-
- if(e.getSource()==barra1){
- lbl = (JTextField)(attributesPanel.getComponent("txtR").getComponent());
- }
- else{
- if(e.getSource()==barra2){
- lbl = (JTextField)(attributesPanel.getComponent("txtG").getComponent());
- }
- else {
- if(e.getSource()==barra3){
- }
- lbl = (JTextField)(attributesPanel.getComponent("txtB").getComponent());
- }
- }
- lbl.setText(""+barra.getValue());
- }
-
- public void keyPressed(KeyEvent e) {
-
- }
-
- public void keyReleased(KeyEvent e) {
- JTextField txtR = (JTextField) (attributesPanel.getComponent("txtR").getComponent());
- JTextField txtG = (JTextField) (attributesPanel.getComponent("txtG").getComponent());
- JTextField txtB = (JTextField) (attributesPanel.getComponent("txtB").getComponent());
-
- JSlider barra1 = (JSlider) (attributesPanel.getComponent("hsR").getComponent());
- JSlider barra2 = (JSlider) (attributesPanel.getComponent("hsG").getComponent());
- JSlider barra3 = (JSlider) (attributesPanel.getComponent("hsB").getComponent());
-
- try {
- if(e.getSource()==txtR){
- barra1.setValue(Integer.parseInt(txtR.getText().toString()));
- }
- else{
- if(e.getSource()==txtG){
- barra2.setValue(Integer.parseInt(txtG.getText().toString()));
- }
- else
- if(e.getSource()==txtB){
- barra3.setValue(Integer.parseInt(txtB.getText().toString()));
- }
- }
- } catch (Exception exception) {
- if(e.getSource()==txtR){
- barra1.setValue(0);
- txtR.setText("0");
- }
- else {
- if(e.getSource()==txtG){
- barra2.setValue(0);
- txtG.setText("0");
- }
- else{
- if(e.getSource()==txtB){
- barra3.setValue(0);
- txtB.setText("0");
- }
- }
- }
- }
- }
-
- public void keyTyped(KeyEvent e) {
-
- }
-
- private class RGB{
- private int r;
- private int g;
- private int b;
- public RGB(){
- this.r=0;
- this.g=0;
- this.b=0;
- }
- public RGB(int r, int g, int b){
- this.r=r;
- this.g=g;
- this.b=b;
- }
- public int getR() {
- return r;
- }
- public void setR(int r) {
- this.r = truncate(r);
- }
- public int getG() {
- return g;
- }
- public void setG(int g) {
- this.g = truncate(g);
- }
- public int getB() {
- return b;
- }
- public void setB(int b) {
- this.b = truncate(b);
- }
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/texture/tileTexture/TileTexture.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/texture/tileTexture/TileTexture.java
deleted file mode 100644
index b62572c..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/texture/tileTexture/TileTexture.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.texture.tileTexture;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.transform.flip.Flip;
-
-public class TileTexture extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private MarvinImagePlugin flip;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("tile", -1);
- attributes.set("lines", 2);
- attributes.set("columns", 2);
-
- flip = new Flip();
- flip.load();
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblLines", "lines");
- attributesPanel.addTextField("txtLines", "lines", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblColumns", "columns");
- attributesPanel.addTextField("txtColumns", "columns", attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage imgIn,
- MarvinImage imgOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- )
- {
- int lines = (Integer)attributes.get("lines");
- int columns = (Integer)attributes.get("columns");
- MarvinImage tile = (MarvinImage)attributes.get("tile");
- int tileWidth = tile.getWidth();
- int tileHeight = tile.getHeight();
-
- boolean[][] arrMask = mask.getMask();
- if(arrMask != null){
- MarvinImage.copyColorArray(imgIn, imgOut);
- }
- else{
- imgOut.resize(tile.getWidth()*columns, tile.getHeight()*lines);
- }
-
- MarvinImage tileFlippedH = new MarvinImage(tileWidth, tileHeight);
- MarvinImage tileFlippedV = new MarvinImage(tileWidth, tileHeight);
- MarvinImage tileFlippedHV = new MarvinImage(tileWidth, tileHeight);
-
- flip.setAttribute("flip", "horizontal");
- flip.process(tile, tileFlippedH);
- flip.process(tile, tileFlippedHV);
-
- flip.setAttribute("flip", "vertical");
- flip.process(tile, tileFlippedV);
- flip.process(tileFlippedHV, tileFlippedHV);
-
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.transform.flip;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-
-/**
- * Flip image horintally and vertically.
- * @author Gabriel Ambrosio Archanjo
- * @version 02/28/2008
- */
-public class Flip extends MarvinAbstractImagePlugin
-{
- private final static String HORIZONTAL = "horizontal";
- private final static String VERTICAL = "vertical";
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
- private boolean[][] arrMask;
-
-
- public void load(){
- attributes = getAttributes();
- attributes.set("flip", "horizontal");
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("labelTipo", "Type:");
- attributesPanel.addComboBox("combpFlip", "flip", new Object[]{HORIZONTAL, VERTICAL}, attributes);
- }
- return attributesPanel;
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- String l_operation = (String)attributes.get("flip");
- arrMask = a_mask.getMask();
-
- if(l_operation.equals(HORIZONTAL)){
- flipHorizontal(a_imageIn, a_imageOut);
- }
- else{
- flipVertical(a_imageIn, a_imageOut);
- }
- }
-
- private void flipHorizontal(MarvinImage a_imageIn, MarvinImage a_imageOut){
- int r,g,b;
- for (int y = 0; y < a_imageIn.getHeight(); y++) {
- for (int x = 0; x < (a_imageIn.getWidth()/2)+1; x++) {
- if(arrMask != null && !arrMask[x][y]){
- continue;
- }
- //Get Y points and change the positions
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
-
- a_imageOut.setIntColor(x,y,
- a_imageIn.getAlphaComponent(x, y),
- a_imageIn.getIntComponent0((a_imageIn.getWidth()-1)-x, y),
- a_imageIn.getIntComponent1((a_imageIn.getWidth()-1)-x, y),
- a_imageIn.getIntComponent2((a_imageIn.getWidth()-1)-x, y)
- );
-
- int nx = (a_imageIn.getWidth() - 1) - x;
- a_imageOut.setIntColor(nx, y, a_imageIn.getAlphaComponent(nx, y), r, g, b);
- }
- }
- }
-
- private void flipVertical(MarvinImage a_imageIn, MarvinImage a_imageOut){
- int r,g,b;
- for (int x = 0; x < a_imageIn.getWidth(); x++) {
- for (int y = 0; y < (a_imageIn.getHeight()/2)+1; y++) {
- if(arrMask != null && arrMask[x][y]){
- continue;
- }
-
- //Get X points and change the positions
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
-
- a_imageOut.setIntColor(x,y,
- a_imageIn.getAlphaComponent(x,y),
- a_imageIn.getIntComponent0(x, (a_imageIn.getHeight()-1)-y),
- a_imageIn.getIntComponent1(x, (a_imageIn.getHeight()-1)-y),
- a_imageIn.getIntComponent2(x, (a_imageIn.getHeight()-1)-y)
- );
-
- int ny = (a_imageIn.getHeight() - 1) - y;
- a_imageOut.setIntColor(x, ny, a_imageIn.getAlphaComponent(x,ny), r, g, b);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/rotate/Rotate.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/rotate/Rotate.java
deleted file mode 100644
index 0e366f0..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/rotate/Rotate.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.transform.rotate;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-
-/**
- * Rotate the image by a user-defined angle.
- * @author Barry McCullagh
- * @version 02/04/2009
- */
-public class Rotate extends MarvinAbstractImagePlugin
-{
- private final static String CLOCKWISE90 = "clockwise90";
- private final static String ACLOCKWISE90 = "anticlockwise90";
- private final static String OTHER = "Other";
-
- private int MaximumRotationAngle = 89;
-
- private MarvinAttributesPanel attributesPanel;
- private MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("rotate", "angle");
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("labelRotate", "Options:");
- attributesPanel.addComboBox("combpRotate", "rotate", new Object[]{CLOCKWISE90, ACLOCKWISE90, OTHER}, attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblRotateAngle", "Angle of Rotation");
- attributesPanel.addHorizontalSlider("sliderRotateAngle", "RotateAngle", -MaximumRotationAngle, MaximumRotationAngle, 0, attributes);
- attributesPanel.newComponentRow();
- }
- return attributesPanel;
- }
-
- /**
- * Initiate the rotate process and determine the angle of rotation
- * @param MarvinImage - the image to be rotated
- * @param boolean - to display a preview
- */
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- //get the image dimensions
- int l_aImageHeight = a_imageIn.getHeight();
- int l_aImageWidth = a_imageIn.getWidth();
- int l_rotateAngle;
- double l_rotateAngleRadians = 0;
- //a local copy of the image to enable the modification of a_image
- //MarvinImage l_image = (MarvinImage)a_image.clone();
-
- //for speed, check if the user wants a simple rotate by 90 degrees
- String userOption = (String)attributes.get("rotate");
- attributes.set("rotateTextField", userOption);
- if(userOption.intern() == CLOCKWISE90.intern())
- {
- //this is an image transpose so swap the width and height
- System.out.println("90clockwise");
- int l_newHeight = l_aImageWidth;
- int l_newWidth = l_aImageHeight;
- a_imageOut.setDimension(l_newWidth, l_newHeight);
- for(int xx = 0; xx < l_aImageWidth; xx ++)
- {
- for(int yy =l_aImageHeight-1; yy >= 0; yy--)
- {
- a_imageOut.setIntColor(l_aImageHeight-1 - yy, xx, a_imageIn.getIntColor(xx, yy));
- }
- }
- }
- else if(userOption.intern() == ACLOCKWISE90.intern())
- {
- //this is an image transpose so swap the width and height
- System.out.println("90clockwise");
- int l_newHeight = l_aImageWidth;
- int l_newWidth = l_aImageHeight;
- a_imageOut.setDimension(l_newWidth, l_newHeight);
- for(int xx = l_aImageWidth-1; xx > 0; xx --)
- {
- for(int yy = 0; yy < l_aImageHeight; yy++)
- {
- a_imageOut.setIntColor(yy, l_aImageWidth -1 - xx, a_imageIn.getIntColor(xx, yy));
- }
- }
- }
- else
- {
- l_rotateAngle = (Integer)attributes.get("RotateAngle");
-
- l_rotateAngleRadians = Math.toRadians(l_rotateAngle);
- rotateImage(a_imageIn, a_imageOut, l_rotateAngleRadians);
-
- }
- }
-
- /**
- * Use the information from the original image to interpolate and fill in
- * gaps in the rotated image
- * @param MarvinImage a_image - the image to be modified
- * @param MarvinImage a_originalImage - the image to be used as the source of the interpolation
- * @param double a_rotateAngle - the angle of rotation
- */
- private void interpolateImage(MarvinImage a_image, MarvinImage a_originalImage, int[][][] a_LookUpArray, double a_rotateAngle, int a_initialisationValue)
- {
- //get image dimensions
- int l_rotatedImageWidth = a_image.getWidth();
- int l_rotatedImageHeight = a_image.getHeight();
-
- for(int xx = 1; xx < l_rotatedImageWidth-1; xx++)
- {
- for(int yy = 1; yy < l_rotatedImageHeight-1; yy++)
- {
- //if the pixel value has NOT been assigned, in future change this to check for null
- if(a_LookUpArray[xx][yy][0] == a_initialisationValue)
- {
- int l_leftValue = a_LookUpArray[xx-1][yy][2];
- int l_rightValue = a_LookUpArray[xx-1][yy][2];
- int l_difference = l_rightValue - l_leftValue;
- a_image.setIntColor(xx, yy, l_leftValue + (l_difference+2));
- }
- }
- }
- }
-
- /**
- * Create a LookUpArray to see if pixels have been assigned a value
- * @param a_LookUpArray - the values to be filled in
- * @param dimensions - the size of the array
- * @param a_InitialisationValue - what value to assign.
- */
- public void initialiseLookUpArray(int[][][] a_LookUpArray, int[] dimensions, int a_InitialisationValue)
- {
- for(int xx = 0; xx < dimensions[0]; xx++)
- {
- for(int yy = 0; yy < dimensions[1]; yy++)
- {
- a_LookUpArray[xx][yy][0] = a_InitialisationValue;
- a_LookUpArray[xx][yy][1] = 0;
- a_LookUpArray[xx][yy][2] = 0;
- }
- }
- }
-
- /**
- * Rotate an image by a specified angle.
- * @param a_image - the image to be rotated
- * @param a_rotateAngle - the angle (in Radians) to rotate
- */
- private void rotateImage(MarvinImage a_imageIn, MarvinImage a_imageOut, double a_rotateAngleRads)
- {
- //Get the image dimensions
- int l_aimageHeight = a_imageIn.getHeight();
- int l_aimageWidth = a_imageIn.getWidth();
-
- //Calculate the size of the rotated image
- double l_absRotateAngle = Math.abs(a_rotateAngleRads);
- int l_newHeight = (int)(Math.ceil(l_aimageWidth * Math.sin(l_absRotateAngle) + Math.ceil(l_aimageHeight * Math.cos(l_absRotateAngle))));
- int l_newWidth = (int)(Math.ceil(l_aimageHeight * Math.sin(l_absRotateAngle) + Math.ceil(l_aimageWidth * Math.cos(l_absRotateAngle))));
-
- //The look up array used to interpolate later.
- //Each location in the array will contain
- // the x and y coordinates of the original pixel, and its RGB value
- int[][][] l_LookUpArray = new int [l_newWidth][l_newHeight][3];
- int l_initialisationValue = 654321;
- int[] l_dimensions = {l_newWidth, l_newHeight, 3};
- initialiseLookUpArray(l_LookUpArray, l_dimensions, l_initialisationValue);
-
- //Create a local copy of the image
- //MarvinImage l_image = (MarvinImage)a_image.clone();
- //erase the contents of a_image so it can be filled with new data and resize it
-
- a_imageOut.setDimension(Math.abs(l_newWidth), Math.abs(l_newHeight));
-
- //Calculate the new coordinate for each pixel and fill in the lookuparray
- for(int xx = 0; xx < l_aimageWidth-0; xx++)
- {
- for(int yy = 0; yy < l_aimageHeight-0; yy++)
- {
- int l_newXCoordinate = (int)( (Math.cos(a_rotateAngleRads)* (xx - (l_aimageWidth/2))) - ((Math.sin(a_rotateAngleRads) * (yy - (l_aimageHeight/2)))) + (l_newWidth/2));
- int l_newYCoordinate = (int)( (Math.sin(a_rotateAngleRads)* (xx - (l_aimageWidth/2))) + ((Math.cos(a_rotateAngleRads) * (yy - (l_aimageHeight/2)))) + (l_newHeight/2));
- try
- {
- a_imageOut.setIntColor(l_newXCoordinate, l_newYCoordinate, a_imageIn.getIntColor(xx, yy));
- l_LookUpArray[l_newXCoordinate][l_newYCoordinate][0] = xx;
- l_LookUpArray[l_newXCoordinate][l_newYCoordinate][1] = yy;
- l_LookUpArray[l_newXCoordinate][l_newYCoordinate][2] = a_imageIn.getIntColor(xx, yy);
- }
- catch(Exception e)
- {
- System.out.println(l_newXCoordinate + " " + l_newYCoordinate);
- }
- }
- }
- // fill in the holes due to float/integer conversion.
- interpolateImage(a_imageOut, a_imageIn, l_LookUpArray, a_rotateAngleRads, l_initialisationValue);
- }
-
-}
-
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/scale/Scale.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/scale/Scale.java
deleted file mode 100644
index cfed205..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/scale/Scale.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.transform.scale;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-/**
- * Simple and fast scale based on nearest neighbors
- * @author Gabriel Ambrósio Archanjo
- */
-public class Scale extends MarvinAbstractImagePlugin{
-
- private MarvinAttributesPanel attributesPanel;
- private int width;
- private int height;
- private int newWidth;
- private int newHeight;
-
-
- private MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- newWidth = 0;
- newHeight = 0;
- attributes.set("newWidth", newWidth);
- attributes.set("newHeight", newHeight);
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
-
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("lblWidth", "Width:");
- attributesPanel.addTextField("txtWidth", "newWidth", attributes);
- attributesPanel.newComponentRow();
- attributesPanel.addLabel("lblHeight", "Height:");
- attributesPanel.addTextField("txtHeight", "newHeight", attributes);
- }
- return attributesPanel;
-
- }
-
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean previewMode
- ){
-
- if(!previewMode){
- width = a_imageIn.getWidth();
- height = a_imageIn.getHeight();
- newWidth = (Integer)attributes.get("newWidth");
- newHeight = (Integer)attributes.get("newHeight");
-
- if(a_imageOut.getWidth() != newWidth || a_imageOut.getHeight() != newHeight){
- a_imageOut.setDimension(newWidth, newHeight);
- }
-
- int x_ratio = (int)((width<<16)/newWidth) ;
- int y_ratio = (int)((height<<16)/newHeight) ;
- int x2, y2 ;
- for (int i=0;i>16) ;
- y2 = ((i*y_ratio)>>16) ;
- a_imageOut.setIntColor(j,i, a_imageIn.getAlphaComponent(x2,y2), a_imageIn.getIntColor(x2,y2));
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/skew/Skew.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/skew/Skew.java
deleted file mode 100644
index 5399fea..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/skew/Skew.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.image.transform.skew;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinFilterWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.util.MarvinAttributes;
-
-
-/**
- * Perform a vertical OR horizontal skew of an image.
- * @author Barry McCullagh
- * @version 01/30/2009
- */
-public class Skew extends MarvinAbstractImagePlugin
-{
- private final static String HORIZONTAL = "Horizontal";
- private final static String VERTICAL = "Vertical";
- private int SELECTEDANGLE = 0;
-
- private MarvinAttributesPanel attributesPanel;
- MarvinAttributes attributes;
-
- public void load(){
- attributes = getAttributes();
- attributes.set("skew", "horizontal");
- attributes.set("selected", String.valueOf(SELECTEDANGLE));
- }
-
- public MarvinAttributesPanel getAttributesPanel(){
- if(attributesPanel == null){
- attributesPanel = new MarvinAttributesPanel();
- attributesPanel.addLabel("labelSkew", "Skew:");
- attributesPanel.addComboBox("combpSkew", "skew", new Object[]{HORIZONTAL, VERTICAL}, attributes);
- attributesPanel.newComponentRow();
-
- attributesPanel.addLabel("lblSkewAngle", "SkewAngle");
- attributesPanel.addHorizontalSlider("sliderSkewAngle", "SkewAngle", -89, 89, 0, attributes);
- attributesPanel.newComponentRow();
- }
- return attributesPanel;
- }
-
- /**
- * Handles the 'Process' button being pressed.
- * Determines the angle to skew and if the user wants
- * a horizontal or vertical skew.
- *
- * @param MarvinImage - the image to be skewed
- * @param boolean - if a preview is being performed
- * @return - void
- */
- public void process
- (
- MarvinImage a_imageIn,
- MarvinImage a_imageOut,
- MarvinAttributes a_attributesOut,
- MarvinImageMask a_mask,
- boolean a_previewMode
- )
- {
- //find the desired direction
- String l_operation = (String)attributes.get("skew");
- //find the desired angle and convert from degrees to rads
- int s_angle = (Integer)attributes.get("SkewAngle");
- double s_angle_rad = (double)(Math.toRadians(s_angle));
-
- if(l_operation.equals(HORIZONTAL))
- {
- skewHorizontal(a_imageIn, a_imageOut, s_angle_rad);
- }
- else
- {
- skewVertical(a_imageIn, a_imageOut, s_angle_rad);
- }
-
- }
- /**
- * Perform a horizontal skew of the input image (a_image). The maximum skew in each direction is 89 degrees.
- *
- * @param a_image The input image to be skewed.
- * @param skew_angle_rad The amount of skew to be performed.
- * @return void
- * @see MarvinImage
- */
- private void skewHorizontal(MarvinImage a_imageIn, MarvinImage a_imageOut, double a_skewAngleRad)
- {
-
- int r,g,b;
- //get image dimensions
- int l_aHeight = a_imageIn.getHeight();
- int l_aWidth = a_imageIn.getWidth();
- //a local copy of the image, used to store a copy of the original image.
- //MarvinImage l_image = (MarvinImage)a_image.clone();
-
- //Calculate the width of the new image.
- //l_extraWidth is not made absolute as it tells us if the skew is to be performed
- //to the left or right.
- int l_extraWidth = (int)(Math.ceil(l_aHeight * Math.tan(a_skewAngleRad)));
- int l_newWidth = l_aWidth + Math.abs(l_extraWidth);
-
- //The modifications must be performed on a_image so erase the contents
- //of a_image so the skewed image can be put there.
- for(int xx = 0; xx < l_aWidth; xx++)
- {
- for(int yy = 0; yy < l_aHeight; yy++)
- {
- a_imageOut.setIntColor(xx, yy, a_imageIn.getAlphaComponent(xx,yy), 000000);
-
- }
-
- }
- a_imageOut.resize(l_newWidth, l_aHeight);
-
- //The top of the image is being moved to the right.
- //The amount each row moves depends on its height, calculated as l_newXcoordinate.
- if(l_extraWidth > 0)
- {
- for (int x = 0; x < l_aWidth; x++) {
- for (int y = 0; y < l_aHeight; y++){
- int l_newXcoordinate = x + (int)(Math.abs((y - l_aHeight) * Math.tan(a_skewAngleRad)));
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
-
- a_imageOut.setIntColor(l_newXcoordinate, y, a_imageIn.getAlphaComponent(l_newXcoordinate, y), r, g, b);
- }
- }
- }
- //The top of the image is being moved to the left.
- //The amount each row moves depends on its height, calculated as l_newXcoordinate
- else
- {
- for (int x = 0; x < l_aWidth; x++) {
- for (int y = l_aHeight-1; y >= 0; y--){
- int new_xcoordinate = x + (int)(Math.abs((y) * Math.tan(a_skewAngleRad)));
-
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
-
- a_imageOut.setIntColor(new_xcoordinate, y, a_imageIn.getAlphaComponent(new_xcoordinate, y), r, g, b);
- }
- }
- }
- }
-
- /**
- * Perform a vertical skew of the input image
- * @param MarvinImage a_image
- * @param double skew_angle_rad
- * @return void
- * @see MarvinImage
- */
- private void skewVertical(MarvinImage a_imageIn, MarvinImage a_imageOut, double a_skewAngleRad)
- {
- //The modifications must be applied to the image passed to the function (a_image).
- //Make a local copy of the image to store the data and modify the passed image.
-
- //MarvinImage l_image = (MarvinImage)(a_image.clone());
- int r, g, b;
- int l_newYcoordinate;
- //Get the image dimensions
- int l_aWidth = a_imageIn.getWidth();
- int l_aHeight = a_imageIn.getHeight();
-
- //Calculate the dimensions of the modified image then resize a_image so that
- //can store the skewed image. The contents are also empties.
- int l_extraHeight = (int)Math.ceil(l_aWidth * Math.tan(a_skewAngleRad));
- int l_newHeight = l_aHeight + Math.abs(l_extraHeight);
- for(int xx = 0; xx < l_aWidth; xx++)
- {
- for(int yy = 0; yy < l_aHeight; yy++)
- {
- a_imageOut.setIntColor(xx, yy, a_imageIn.getAlphaComponent(xx, yy), 000000);
- }
- }
- a_imageOut.resize(l_aWidth, l_newHeight);
-
-
- //Calculate the new coordinate of each pixel. If the image is being skewed
- //up or down (relative to the left hand column of pixels) a different calculation
- //must be performed
- for (int x = 0; x < l_aWidth; x++) {
- for (int y = 0; y < l_aHeight; y++){
-
- //for a skew 'down'
- if (l_extraHeight > 0)
- {
- l_newYcoordinate = y + (int)((x) * Math.tan(a_skewAngleRad));
- }
- //for a skew 'up'
- else
- {
- l_newYcoordinate = (l_newHeight) -(l_aHeight) + y - (int)Math.abs(((x) * Math.tan(a_skewAngleRad)));
- }
-
- r = a_imageIn.getIntComponent0(x, y);
- g = a_imageIn.getIntComponent1(x, y);
- b = a_imageIn.getIntComponent2(x, y);
-
- a_imageOut.setIntColor(x, l_newYcoordinate, a_imageIn.getAlphaComponent(x, l_newYcoordinate), r, g, b);
- }
- }
-
-
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/watershed/Watershed.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/watershed/Watershed.java
deleted file mode 100644
index 648ac56..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/image/transform/watershed/Watershed.java
+++ /dev/null
@@ -1,339 +0,0 @@
-package org.marvinproject.image.transform.watershed;
-
-/**
-Marvin Project <2007-2016>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-//package org.marvinproject.image.corner.WaterShed;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import marvin.gui.MarvinAttributesPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinAbstractImagePlugin;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.color.grayScale.GrayScale;
-
-/**
- *
- * @author Martin Mihalyi
- */
-public class Watershed extends MarvinAbstractImagePlugin {
-
- private MarvinImagePlugin gray;
- private List> HeightMap;
- private WatershedPixel[][] Image;
- private int width, height;
- private List query;
- private WatershedPixel dummyPixel;
-
- @Override
- public void load() {
- gray = new GrayScale();
- gray.load();
-
-
- HeightMap = new ArrayList>(256);
- //initialize HeightMap
- for(int i = 0; i<256; i++)
- {
- HeightMap.add(new ArrayList());
- }
-
- query = new LinkedList();
-
- dummyPixel = new WatershedPixel(0,0);
- }
-
- @Override
- public MarvinAttributesPanel getAttributesPanel() {
- return null;
- }
-
- @Override
- public void process
- (
- MarvinImage imageIn,
- MarvinImage imageOut,
- MarvinAttributes attrOut,
- MarvinImageMask mask,
- boolean previewMode
- ) {
- //pixel's lowest distance to the watershed pixel
- int CurrentDistance;
- int CurrentLabel = 0;
- //convert to grayscale
- MarvinImage tempImage = new MarvinImage(imageIn.getWidth(), imageIn.getHeight());
- gray.process(imageIn, tempImage);
-
- //temporary variables for faster processing
- width = tempImage.getWidth();
- height = tempImage.getHeight();
-
- //initailize image to easier access the pixels
- Image = new WatershedPixel[width][height];
-
- //array for labeled pixels
- int[][] labels = new int[width][height];
-
- //1. step build up the HeightMap
- //ordering the pixels by values (LookUpTable)
- //in every line
- for (int i = 0; i < width; i += 1)
- {
- //in every row
- for (int j = 0; j < height; j += 1)
- {
- //create new watershed pixel
- WatershedPixel pixel = new WatershedPixel(i, j);
-
- //add the reference to the image array to the easiest access in case of neighbours search
- Image[i][j] = pixel;
-
- //add it to the heightMap
- HeightMap.get(tempImage.getIntComponent0(i, j)).add(pixel);
- }
-
- }
-
- //2. step processing the heightmap and puting pixels in a query
- //processing the pixels by the height
- for (int h = 0; h < HeightMap.size(); h++)
- {
- //iterating through the pixels in the given h height
- for(WatershedPixel wpixel : HeightMap.get(h))
- {
- //set label MASK to pixel
- wpixel.setLabel(-2);
-
- //get all neighbour of the given pixel
- List neighbourPixels = Neighbours(wpixel);
-
- //iterating through the neighbour pixels searching for already labeled pixels
- for(WatershedPixel neighbourPixel : neighbourPixels)
- {
- //check if neighbourpixel is allready labelled
- if(neighbourPixel.getLabel() >= 0)
- {
- //at least one neighbouring pixel is watershed pixel, so the distance cannot be more than 1
- wpixel.setDistance(1);
-
- //add to query
- query.add(wpixel);
-
- //labeled pixel found, more iteration is not needed
- break;
- }
-
- }
- }
-
- //add dummyPixel to query
- query.add(dummyPixel);
- //increase current distance
- CurrentDistance = 1;
-
- //process the remainging element in the query if the query is not empty
- while(!query.isEmpty())
- {
- //get the first element of query
- WatershedPixel nextProccessPixel = query.remove(0);
-
- if(query.isEmpty())
- {
- break;
- }
- //check if all pixel with the same distance to the watershed pixel has been processed
- else if(nextProccessPixel.equals(dummyPixel))
- {
- //increase current distance
- CurrentDistance++;
-
- //put dummyPixel back to query
- query.add(dummyPixel);
-
- //get the next pixel
- nextProccessPixel = query.remove(0);
- }
-
- //get all neighbour of the given pixel
- List neighbourPixels = Neighbours(nextProccessPixel);
-
- //iterating through the neighbour pixels searching for already labeled pixels
- for(WatershedPixel neighbourPixel : neighbourPixels)
- {
- //check if the neighbour pixel is:
- // - closer to a watershed pixer than the current distance AND
- //- neighbour pixel is allready labelled
- if((neighbourPixel.getDistance() <= CurrentDistance) && (neighbourPixel.getLabel() >= 0) )
- {
- if(neighbourPixel.getLabel() > 0)
- {
- if(nextProccessPixel.getLabel() == -2)
- {
-
- nextProccessPixel.setLabel(neighbourPixel.getLabel());
- }
- else if(nextProccessPixel.getLabel() != neighbourPixel.getLabel())
- {
- nextProccessPixel.setLabel(0);
- }
- } // end if lab>0
- else if(nextProccessPixel.getLabel() == -2)
- {
- nextProccessPixel.setLabel(0);
- }
-
- }
- //the neighbour pixel has the same height as the currenct pixel (plain)
- else if((neighbourPixel.getDistance() == 0) && (neighbourPixel.getLabel() == -2))
- {
- neighbourPixel.setDistance(CurrentDistance + 1);
- //add to query
- query.add(neighbourPixel);
- }
-
- }
-
- }
-
-
- //detect the unprocessed pixels at the given height
- for(WatershedPixel wpixel : HeightMap.get(h))
- {
- //set the distance back to inital value
- wpixel.setDistance(0);
-
- if(wpixel.getLabel() == -2)
- {
- CurrentLabel++;
- wpixel.setLabel(CurrentLabel);
- query.add(wpixel);
-
- //process the remainging element in the query if the query is not empty
- while(!query.isEmpty())
- {
- //get the next element of query
- WatershedPixel nextPixel = query.remove(0);
-
- //get all neighbour of the given pixel
- List neighbourPixels = Neighbours(nextPixel);
-
- //iterating through the neighbour pixels searching for MASK(-2) labelled pixels
- for(WatershedPixel neighbourPixel : neighbourPixels)
- {
- if(neighbourPixel.getLabel() == -2)
- {
- neighbourPixel.setLabel(CurrentLabel);
- query.add(neighbourPixel);
- }
- }
- }
- }
- }
- }
- //3. step create an array to display the generated labels
- for(int i = 0; i < width; i++)
- {
- for(int j = 0; j < height; j++)
- {
- //copy to the output array
- labels[i][j] = Image[i][j].getLabel();
- }
-
- }
-
- if(attrOut != null){
- //return the pixel labels
- attrOut.set("imageLabels", labels);
- }
-
- }
-
- private List Neighbours(WatershedPixel p)
- {
- //get the position of pixels
- int x = p.getX();
- int y = p.getY();
-
- //temp array for the neighbours
- List NPixels = new ArrayList(4);
-
- //add every vertical/horrizontal neighbours
- if(x > 0)
- NPixels.add(Image[x-1][y]);
- if(x < width-1)
- NPixels.add(Image[x+1][y]);
- if (y > 0)
- NPixels.add(Image[x][y-1]);
- if(y < height -1)
- NPixels.add(Image[x][y+1]);
-
- return NPixels;
- }
-}
-
-//class for the watershed pixels
-class WatershedPixel
-{
- //position of the pixel in the image
- private int x, y;
-
- //indicating the status of the pixel
- private int label;
-
- //distance from the minimum
- private int distance;
-
-
- //getter for x position
- public int getX() {
- return x;
- }
-
- //getter for y position
- public int getY() {
- return y;
- }
-
- //getter/setter of label
- public int getLabel() {
- return label;
- }
-
- public void setLabel(int label) {
- this.label = label;
- }
-
- //getter/setter of distance
- public int getDistance() {
- return distance;
- }
-
- public void setDistance(int distance) {
- this.distance = distance;
- }
-
- //contructor
- public WatershedPixel(int x, int y)
- {
- //set the position of pixel
- this.x = x;
- this.y = y;
-
- //set to INIT value
- this.setLabel(-1);
- }
-}
diff --git a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/ml/kmeans/Kmeans.java b/marvinproject/dev/MarvinPlugins/src/org/marvinproject/ml/kmeans/Kmeans.java
deleted file mode 100644
index fcf06bd..0000000
--- a/marvinproject/dev/MarvinPlugins/src/org/marvinproject/ml/kmeans/Kmeans.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package org.marvinproject.ml.kmeans;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import marvin.plugin.MarvinAbstractAlgorithmPlugin;
-import marvin.util.MarvinAttributes;
-
-public class Kmeans extends MarvinAbstractAlgorithmPlugin{
-
- @Override
- public void load() {
- // Parameters with default values
- setAttribute("data", new ArrayList());
- setAttribute("k", 1);
- setAttribute("convergenceMargin", 0.0001);
- setAttribute("iterations", 10000);
- }
-
- @Override
- public void process(MarvinAttributes out) {
- List data = (ArrayList)getAttribute("data");
- int k = (Integer)getAttribute("k");
- double convergenceMargin = (Double)getAttribute("convergenceMargin");
- int iterations = (Integer)getAttribute("iterations");
-
- double[][] clusters = cluster(data, k, convergenceMargin, iterations);
- out.set("clusters", clusters);
- }
-
- private double[][] cluster(List data, int k, double convergenceMargin, int iterations){
- double prototypes[][] = new double[k][data.get(0).length];
- double centers[][] = new double[k][data.get(0).length];
- prototypes = gaussianDistributionMarsaglia(distributionMean(data), 0.1, k, data.get(0).length);
-
- int id;
- int dataByPrototype[] = new int[k];
-
- for(int c=0; c<100; c++){
- centers = new double[k][data.get(0).length];
- dataByPrototype = new int[k];
-
- // For each sample
- for(int i=0; i convergenceMargin){
- prototypes[i][j] += step;
- }else{
- convergedDimension++;
- }
- }
- if(convergedDimension == prototypes[0].length){
- convergedPrototypes++;
- }
- }
- }
- if(convergedPrototypes == k){
- break;
- }
- }
- meanDensity(data, prototypes);
- return prototypes;
- }
-
- public static int getNearestPrototype(double[] data, double[][] prototypes){
- double minDist=-1;
- double tempDist;
- int nearestId=0;
-
- minDist = euclidianDistance(data, prototypes[0]);
-
- for(int i=1; i data){
- double[] mean = new double[data.get(0).length];
- int size = data.size();
- for(int i=0; i data, double[][] prototypess){
- double res=0;
- double tempDist;
- double minDist;
-
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package org.marvinproject.tool.pen;
-
-import javax.swing.ImageIcon;
-import javax.swing.JPanel;
-
-import marvin.plugin.MarvinAbstractToolPlugin;
-
-/*
-public class Pen extends MarvinAbstractPluginTool{
-
- public ImageIcon getIcon(){
- ImageIcon l_icon = new ImageIcon();
- return l_icon;
- }
-
- public JPanel getSettingsPanel(){
- return null;
- }
-}
-*/
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinPlugins/src/pluginTester/Benchmark.java b/marvinproject/dev/MarvinPlugins/src/pluginTester/Benchmark.java
deleted file mode 100644
index b0bd542..0000000
--- a/marvinproject/dev/MarvinPlugins/src/pluginTester/Benchmark.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package pluginTester;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.swing.JFrame;
-import javax.swing.JTextArea;
-
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.plugin.MarvinPlugin;
-
-import org.marvinproject.image.artistic.mosaic.Mosaic;
-import org.marvinproject.image.artistic.television.Television;
-import org.marvinproject.image.blur.gaussianBlur.GaussianBlur;
-import org.marvinproject.image.blur.pixelize.Pixelize;
-import org.marvinproject.image.color.brightnessAndContrast.BrightnessAndContrast;
-import org.marvinproject.image.color.grayScale.GrayScale;
-import org.marvinproject.image.color.invert.Invert;
-import org.marvinproject.image.color.sepia.Sepia;
-import org.marvinproject.image.color.thresholding.Thresholding;
-import org.marvinproject.image.edge.edgeDetector.EdgeDetector;
-import org.marvinproject.image.halftone.circles.Circles;
-import org.marvinproject.image.halftone.dithering.Dithering;
-import org.marvinproject.image.halftone.errorDiffusion.ErrorDiffusion;
-import org.marvinproject.image.halftone.rylanders.Rylanders;
-import org.marvinproject.image.statistical.maximum.Maximum;
-import org.marvinproject.image.statistical.median.Median;
-import org.marvinproject.image.statistical.minimum.Minimum;
-import org.marvinproject.image.statistical.mode.Mode;
-
-public class Benchmark {
-
- private final static int NUM_EXECUTIONS = 5;
-
- List plugins;
-
- public Benchmark(){
- loadPlugins();
- }
-
- private void loadPlugins(){
- plugins = new ArrayList();
-
- plugins.add(new Mosaic());
- plugins.add(new Television());
- plugins.add(new Mosaic());
- plugins.add(new GaussianBlur());
- plugins.add(new Pixelize());
- plugins.add(new BrightnessAndContrast());
- plugins.add(new GrayScale());
- plugins.add(new Invert());
- plugins.add(new Sepia());
- plugins.add(new Thresholding());
- plugins.add(new EdgeDetector());
- plugins.add(new Circles());
- plugins.add(new Dithering());
- plugins.add(new ErrorDiffusion());
- plugins.add(new Rylanders());
- //plugins.add(new HarrisPlessey());
- plugins.add(new Maximum());
- plugins.add(new Median());
- plugins.add(new Minimum());
- plugins.add(new Mode());
- }
-
- public void process(MarvinImage image){
- JFrame result = new JFrame("BenchMark");
- JTextArea text = new JTextArea();
- result.add(text);
-
- MarvinImagePlugin tempPlugin;
- MarvinImage imageOut;
- long time, totalTime;
-
-
- text.append(""+new Date(System.currentTimeMillis()).toString());
- text.append("\nimage width:"+image.getWidth());
- text.append("\nimage height:"+image.getHeight());
- text.append("\nNUM_EXECUTIONS:"+NUM_EXECUTIONS);
- text.append("\n\n");
-
- long timeByPlugin[][] = new long[plugins.size()][];
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package pluginTester;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.File;
-import java.util.HashMap;
-
-import javax.swing.JButton;
-import javax.swing.JFileChooser;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-
-import marvin.color.MarvinColorModelConverter;
-import marvin.gui.MarvinFilterWindow;
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.plugin.MarvinPlugin;
-
-import org.marvinproject.image.edge.prewitt.Prewitt;
-
-/**
- * Test plug-ins and generate .jar files
- * @author Gabriel Ambrosio Archanjo
- */
-public class PluginTester extends JFrame{
-
- // Definitions
- private final static String PACKAGE_NET_FOLDER = "./bin/org/";
- private final static String INITIAL_IMAGE = "./res/senna.jpg";
-
- // Attributes
- private JButton buttonReset,
- buttonConvertToBinary,
- buttonSaveImage,
- buttonLoadPlugin,
- buttonGenerateJarFiles,
- buttonBenchmark;
-
- private MarvinImage originalImage,
- newImage;
-
- private MarvinImagePanel imagePanel;
-
- private Benchmark benchmark;
-
- /*
- * @Load plug-in to test
- */
- private void loadPlugin(){
- HashMap test = new HashMap();
- test.put("key", null);
-
-
-
- MarvinImagePlugin l_plugin = new Prewitt();
-
- //MarvinImagePlugin l_plugin = new Crop();
- l_plugin.load();
-
-
-// boolean matrix[][] = new boolean[][]{ {false,true,false},
-// {true,true,true},
-// {false,true,false}};
-//
- boolean matrix[][] = new boolean[][]{ {true,true,true,true,true},
- {true,true,true,true,true},
- {true,true,true,true,true},
- {true,true,true,true,true},
- {true,true,true,true,true}
- };
-
-
-
-
-// boolean matrix[][] = new boolean[][]{ {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-// {true,true,true,true,true,true,true,true,true,true},
-//
-// };
-
-
- l_plugin.setAttribute("matrix", matrix);
- //l_plugin.setAttribute("neighborhood", 5);
- //l_plugin.setAttribute("range", 15);
-
-
- //l_plugin.setAttribute("color", new Color(51, 102, 153).getRGB());
-
-
- l_plugin.setImagePanel(imagePanel);
- MarvinImage i=null;
- try{
- //i = MarvinImageIO.loadImage("./res/tile_04.jpg");
- }
- catch(Exception e){
- e.printStackTrace();
- }
-
- l_plugin.setAttribute("tile", i);
-
- System.out.println("continue running");
-
- //l_plugin.show();
-
- MarvinFilterWindow filterWindow = new MarvinFilterWindow
- (
- "Plugin", 400, 330, l_plugin.getImagePanel(), l_plugin
- );
-
- filterWindow.setVisible(true);
-
- //l_plugin.process(originalImage, originalImage, null, MarvinImageMask.NULL_MASK, false);
- //imagePanel.update();
-
-
- /*
- l_plugin.load();
- l_plugin.show();
- */
- }
-
- public PluginTester(){
- super("Plug-in Tester");
-
- // GUI
- ButtonHandler l_buttonHandler = new ButtonHandler();
- buttonLoadPlugin = new JButton("Load Plugin");
- buttonSaveImage = new JButton("Save Image");
- buttonReset = new JButton("Reset");
- buttonConvertToBinary = new JButton("To Binary");
- buttonGenerateJarFiles = new JButton("Generate Jar Files");
- buttonBenchmark = new JButton("Benchmark");
-
- buttonLoadPlugin.addActionListener(l_buttonHandler);
- buttonSaveImage.addActionListener(l_buttonHandler);
- buttonReset.addActionListener(l_buttonHandler);
- buttonConvertToBinary.addActionListener(l_buttonHandler);
- buttonGenerateJarFiles.addActionListener(l_buttonHandler);
- buttonBenchmark.addActionListener(l_buttonHandler);
-
- imagePanel = new MarvinImagePanel();
- JScrollPane scrollPane = new JScrollPane(imagePanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-
-
- JPanel panelBottom = new JPanel();
- panelBottom.add(buttonLoadPlugin);
- panelBottom.add(buttonSaveImage);
- panelBottom.add(buttonReset);
- panelBottom.add(buttonConvertToBinary);
- panelBottom.add(buttonGenerateJarFiles);
- panelBottom.add(buttonBenchmark);
-
- // Container
- Container l_con = getContentPane();
- l_con.setLayout(new BorderLayout());
-
- l_con.add(scrollPane, BorderLayout.CENTER);
- l_con.add(panelBottom, BorderLayout.SOUTH);
-
-
- // Load image
- originalImage = MarvinImageIO.loadImage(INITIAL_IMAGE);
-
-// originalImage = new MarvinImage(500, 500, MarvinImage.COLOR_MODEL_RGB);
-// originalImage.fillRect(0, 0, 500, 500, Color.white);
-// originalImage.fillRect(100, 100, 300, 300, Color.red);
-// originalImage.update();
-
- //originalImage = new MarvinImage(50,50);
- newImage = originalImage.clone();
- imagePanel.setImage(newImage);
-
-
-
-
-
- // Benchmark
- benchmark = new Benchmark();
-
- int width;
- if(originalImage.getWidth() < 460){
- width = 460;
- }
- else{
- width = originalImage.getWidth();
- }
- setSize(700,500+70);
-
- setVisible(true);
- }
-
- public void generateJarFiles(File a_directory){
- String l_directoryName;
- File[] l_arrFiles;
- String l_path;
-
- if (a_directory.exists() && !a_directory.getName().equals(".svn")){
- l_arrFiles = a_directory.listFiles();
-
- if (l_arrFiles.length>0){
- for (File l_file : l_arrFiles) {
- if (l_file.isDirectory()){
- l_directoryName = l_file.getName();
- l_directoryName = l_directoryName.substring(0, 1).toUpperCase() + l_directoryName.substring(1).toLowerCase();
-
- generateJarFiles(l_file);
- }
- else{
- if(isMarvinPlugin(l_file)){
- try{
- l_path = l_file.getParent();
- l_path = l_path.replace("/bin", "");
- l_path = l_path.replace("\\bin", "");
-
- Runtime.getRuntime().exec
- (
- "jar -cvf ../jar/"+getCanonicalName(l_file)+".jar"+" "+l_path,
- null,
- new File("./bin")
- );
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
- }
- }
- }
-
- /**
- * Check if the specified file is a class that implements MarvinPlugin interface
- * @param a_file supposed MarvinPlugin file
- * @return true if the file is associated to a MarvinPlugin class
- */
- private boolean isMarvinPlugin(File a_file){
- Class> l_class=null;
- String l_classPath;
- l_classPath = a_file.getPath();
- l_classPath = l_classPath.substring(l_classPath.indexOf("bin")+4);
- l_classPath = l_classPath.replace("/", ".");
- l_classPath = l_classPath.replace("\\", ".");
- l_classPath = l_classPath.replace(".class", "");
-
- // Check if the class file implements MarvinPlugin
- try{
- l_class = Class.forName(l_classPath);
- }
- catch(ClassNotFoundException e){
- e.printStackTrace();
- }
-
- if(MarvinPlugin.class.isAssignableFrom(l_class)){
- return true;
- }
- else{
- return false;
- }
- }
-
- private String getCanonicalName(File a_marvinPlugin){
- String l_canonicalName = a_marvinPlugin.getParent();
- l_canonicalName = l_canonicalName.substring(l_canonicalName.indexOf("bin")+4);
- l_canonicalName = l_canonicalName.replace("/", ".");
- l_canonicalName = l_canonicalName.replace("\\", ".");
- return l_canonicalName;
- }
-
- private void saveImage(){
- int result;
- String path=null;
-
- JFileChooser chooser = new JFileChooser();
- chooser.setDialogType(JFileChooser.SAVE_DIALOG);
- result = chooser.showSaveDialog(this);
-
- if(result == JFileChooser.CANCEL_OPTION){
- return;
- }
-
- try{
- path = chooser.getSelectedFile().getCanonicalPath();
- newImage.update();
- MarvinImageIO.saveImage(imagePanel.getImage(), path);
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
-
-
- public static void main(String[] args) {
- PluginTester pt = new PluginTester();
- pt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class ButtonHandler implements ActionListener{
- public void actionPerformed(ActionEvent e){
- if(e.getSource() == buttonReset){
- newImage = originalImage.clone();
- imagePanel.setImage(newImage);
- }
- else if(e.getSource() == buttonConvertToBinary){
- newImage = MarvinColorModelConverter.rgbToBinary(newImage, 200);
- newImage.update();
- imagePanel.setImage(newImage);
- }
- else if(e.getSource() == buttonSaveImage){
- saveImage();
- }
- else if(e.getSource() == buttonLoadPlugin){
- loadPlugin();
- }
- else if(e.getSource() == buttonGenerateJarFiles){
- generateJarFiles(new File(PACKAGE_NET_FOLDER));
- }
- else if(e.getSource() == buttonBenchmark){
- benchmark.process(originalImage);
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/.classpath b/marvinproject/dev/MarvinSamples/.classpath
deleted file mode 100644
index fcc0775..0000000
--- a/marvinproject/dev/MarvinSamples/.classpath
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/marvinproject/dev/MarvinSamples/.gitignore b/marvinproject/dev/MarvinSamples/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/marvinproject/dev/MarvinSamples/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target
diff --git a/marvinproject/dev/MarvinSamples/.project b/marvinproject/dev/MarvinSamples/.project
deleted file mode 100644
index 60ba89c..0000000
--- a/marvinproject/dev/MarvinSamples/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- MarvinSamples
-
-
- MarvinFramework
- MarvinPlugins
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- net.sourceforge.metrics.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- net.sourceforge.metrics.nature
-
-
diff --git a/marvinproject/dev/MarvinSamples/.settings/org.eclipse.jdt.core.prefs b/marvinproject/dev/MarvinSamples/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6249222..0000000
--- a/marvinproject/dev/MarvinSamples/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/marvinproject/dev/MarvinSamples/marvin/framework/lib/junit-4.7.jar b/marvinproject/dev/MarvinSamples/marvin/framework/lib/junit-4.7.jar
deleted file mode 100644
index 700ad69..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/framework/lib/junit-4.7.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/framework/marvin_1.4.3.jar b/marvinproject/dev/MarvinSamples/marvin/framework/marvin_1.4.3.jar
deleted file mode 100644
index 14e5c75..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/framework/marvin_1.4.3.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar
deleted file mode 100644
index 0dc4c7e..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.artistic.mosaic.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.artistic.television.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.artistic.television.jar
deleted file mode 100644
index bad8cc5..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.artistic.television.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar
deleted file mode 100644
index 9dce87f..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.background.determineFixedCameraBackground.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar
deleted file mode 100644
index a51fb09..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.background.determineSceneBackground.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar
deleted file mode 100644
index a385e9b..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.blur.gaussianBlur.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar
deleted file mode 100644
index ec0bf27..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.blur.pixelize.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar
deleted file mode 100644
index 954f7ae..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.alphaBoundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar
deleted file mode 100644
index fded99d..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.blackAndWhite.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar
deleted file mode 100644
index 09737ff..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.brightnessAndContrast.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar
deleted file mode 100644
index 2146373..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.colorChannel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.emboss.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.emboss.jar
deleted file mode 100644
index 040db78..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.emboss.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar
deleted file mode 100644
index a5f6774..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.grayScale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.invert.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.invert.jar
deleted file mode 100644
index 605c581..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.invert.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.sepia.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.sepia.jar
deleted file mode 100644
index 22bb3e0..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.sepia.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar
deleted file mode 100644
index 0639b08..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.skinColorDetection.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar
deleted file mode 100644
index 62bcff3..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.thresholding.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar
deleted file mode 100644
index 9c0dbe2..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.color.thresholdingNeighborhood.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar
deleted file mode 100644
index 817297c..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.combineByMask.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar
deleted file mode 100644
index 1b6d2c3..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.combineByTransparency.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar
deleted file mode 100644
index 24235cb..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.combine.mergePhotos.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.convolution.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.convolution.jar
deleted file mode 100644
index 3bd7250..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.convolution.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.harris.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.harris.jar
deleted file mode 100644
index 0180e38..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.harris.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar
deleted file mode 100644
index c6a9ef1..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.moravec.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.susan.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.susan.jar
deleted file mode 100644
index 4f77778..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.corner.susan.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar
deleted file mode 100644
index 969d023..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differenceColor.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar
deleted file mode 100644
index 79c834a..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differenceGray.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar
deleted file mode 100644
index 74c0caa..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.difference.differentRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar
deleted file mode 100644
index c29526e..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.edgeDetector.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar
deleted file mode 100644
index 59e68ed..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.prewitt.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar
deleted file mode 100644
index f506570..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.roberts.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar
deleted file mode 100644
index 9780a63..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.edge.sobel.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar
deleted file mode 100644
index 8faf166..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.equalization.histogramEqualization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar
deleted file mode 100644
index 426b5bb..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.fill.boundaryFill.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar
deleted file mode 100644
index 3000cc3..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.circles.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar
deleted file mode 100644
index 09ebd47..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.dithering.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar
deleted file mode 100644
index 81d5ab0..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.errorDiffusion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar
deleted file mode 100644
index c209e93..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.halftone.rylanders.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar
deleted file mode 100644
index 91ee401..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.histogram.colorHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar
deleted file mode 100644
index 6e59c5d..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.histogram.grayHistogram.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar
deleted file mode 100644
index 60e0ed6..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.interfaceTest.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar
deleted file mode 100644
index 6882aca..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.boundary.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar
deleted file mode 100644
index 680ef40..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.closing.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar
deleted file mode 100644
index ad104e4..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.dilation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar
deleted file mode 100644
index 2ce6d97..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.erosion.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar
deleted file mode 100644
index 0679e16..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.morphological.opening.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar
deleted file mode 100644
index d90b58d..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.correlation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar
deleted file mode 100644
index 662f4ee..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findColorPattern.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar
deleted file mode 100644
index ceed1ff..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findSubimage.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar
deleted file mode 100644
index 78e858a..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.findTextRegions.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar
deleted file mode 100644
index 15c8b0b..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.harrisPlessey.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar
deleted file mode 100644
index 8d403ec..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.pattern.patternRecognition.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar
deleted file mode 100644
index 6758bb4..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.quantization.colorQuantization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar
deleted file mode 100644
index af7f531..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.quantization.grayScaleQuantization.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar
deleted file mode 100644
index 397ce83..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.grayGradient.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar
deleted file mode 100644
index 9768a44..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.iteratedFunctionSystem.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar
deleted file mode 100644
index 618ceba..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.juliaSet.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar
deleted file mode 100644
index 63c0f5a..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.lindenmayer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar
deleted file mode 100644
index 0809cf0..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.mandelbrot.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.text.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.text.jar
deleted file mode 100644
index cd2a577..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.render.text.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar
deleted file mode 100644
index 6a45cd9..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.restoration.noiseReduction.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar
deleted file mode 100644
index 15cf0ae..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.crop.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar
deleted file mode 100644
index a199a31..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.floodfillSegmentation.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar
deleted file mode 100644
index bdb9964..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.segmentation.imageSlicer.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar
deleted file mode 100644
index c11bc8d..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.maximum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.median.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.median.jar
deleted file mode 100644
index fca64a5..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.median.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar
deleted file mode 100644
index 1f9f0cf..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.minimum.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar
deleted file mode 100644
index 1b80da9..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.statistical.mode.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.steganography.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.steganography.jar
deleted file mode 100644
index a8c702d..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.steganography.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.subtract.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.subtract.jar
deleted file mode 100644
index 9b3a9a0..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.subtract.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar
deleted file mode 100644
index 6d452d6..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.test.determineGround.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.test.plugin.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.test.plugin.jar
deleted file mode 100644
index fb7cd45..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.test.plugin.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar
deleted file mode 100644
index 09a6d52..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.texture.tileTexture.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.flip.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.flip.jar
deleted file mode 100644
index a2be3d6..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.flip.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar
deleted file mode 100644
index 0bc69b6..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.rotate.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.scale.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.scale.jar
deleted file mode 100644
index fd4a422..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.scale.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.skew.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.skew.jar
deleted file mode 100644
index 517d35b..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.skew.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar
deleted file mode 100644
index d95f204..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.image.transform.watershed.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.ml.kmeans.jar b/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.ml.kmeans.jar
deleted file mode 100644
index 4e5ac8a..0000000
Binary files a/marvinproject/dev/MarvinSamples/marvin/plugins/image/org.marvinproject.ml.kmeans.jar and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/pom.xml b/marvinproject/dev/MarvinSamples/pom.xml
deleted file mode 100644
index e9ca014..0000000
--- a/marvinproject/dev/MarvinSamples/pom.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
- 4.0.0
- MarvinSamples
- MarvinSamples
- 1
-
-
- MarvinFramework
- MarvinFramework
- 1
-
-
-
- MarvinPlugins
- MarvinPlugins
- 1
-
-
-
-
- src
-
-
- maven-compiler-plugin
- 3.1
-
- 1.7
- 1.7
-
-
-
-
-
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinSamples/res/ARtag.jpg b/marvinproject/dev/MarvinSamples/res/ARtag.jpg
deleted file mode 100644
index 6cd1aa8..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/ARtag.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/ARtag2.jpg b/marvinproject/dev/MarvinSamples/res/ARtag2.jpg
deleted file mode 100644
index 1b0c8e2..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/ARtag2.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/alan.jpg b/marvinproject/dev/MarvinSamples/res/alan.jpg
deleted file mode 100644
index 94f7d6a..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/alan.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/alanOut.png b/marvinproject/dev/MarvinSamples/res/alanOut.png
deleted file mode 100644
index 601a507..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/alanOut.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/arara.jpg b/marvinproject/dev/MarvinSamples/res/arara.jpg
deleted file mode 100644
index a2f1eb7..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/arara.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/arara2.jpg b/marvinproject/dev/MarvinSamples/res/arara2.jpg
deleted file mode 100644
index 0fe5d66..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/arara2.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/araraNegative.jpg b/marvinproject/dev/MarvinSamples/res/araraNegative.jpg
deleted file mode 100644
index bb6316f..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/araraNegative.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/artag2_out.jpg b/marvinproject/dev/MarvinSamples/res/artag2_out.jpg
deleted file mode 100644
index 530eb75..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/artag2_out.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/artag_out.jpg b/marvinproject/dev/MarvinSamples/res/artag_out.jpg
deleted file mode 100644
index 29cd355..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/artag_out.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/ball.png b/marvinproject/dev/MarvinSamples/res/ball.png
deleted file mode 100644
index d020e2e..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/ball.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/cards.jpg b/marvinproject/dev/MarvinSamples/res/cards.jpg
deleted file mode 100644
index 166a405..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/cards.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/cardsOut.png b/marvinproject/dev/MarvinSamples/res/cardsOut.png
deleted file mode 100644
index d982500..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/cardsOut.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/font.png b/marvinproject/dev/MarvinSamples/res/font.png
deleted file mode 100644
index 2870182..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/font.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/hat.png b/marvinproject/dev/MarvinSamples/res/hat.png
deleted file mode 100644
index 03053c7..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/hat.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/moravec.png b/marvinproject/dev/MarvinSamples/res/moravec.png
deleted file mode 100644
index 5f59fd8..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/moravec.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/moravec_out.png b/marvinproject/dev/MarvinSamples/res/moravec_out.png
deleted file mode 100644
index 5ccdde0..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/moravec_out.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/paddleA.png b/marvinproject/dev/MarvinSamples/res/paddleA.png
deleted file mode 100644
index 52d25d7..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/paddleA.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/paddleB.png b/marvinproject/dev/MarvinSamples/res/paddleB.png
deleted file mode 100644
index f369860..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/paddleB.png and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/paradise.jpg b/marvinproject/dev/MarvinSamples/res/paradise.jpg
deleted file mode 100644
index 0ec9ee0..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/paradise.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/passage_2.jpg b/marvinproject/dev/MarvinSamples/res/passage_2.jpg
deleted file mode 100644
index e69de29..0000000
diff --git a/marvinproject/dev/MarvinSamples/res/penguin.jpg b/marvinproject/dev/MarvinSamples/res/penguin.jpg
deleted file mode 100644
index 50a8fa4..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/penguin.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/penguin_dark.jpg b/marvinproject/dev/MarvinSamples/res/penguin_dark.jpg
deleted file mode 100644
index dac845a..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/penguin_dark.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/senna.jpg b/marvinproject/dev/MarvinSamples/res/senna.jpg
deleted file mode 100644
index f9a20cf..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/senna.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/snooker.wmv b/marvinproject/dev/MarvinSamples/res/snooker.wmv
deleted file mode 100644
index d3ffde1..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/snooker.wmv and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/res/tucano.jpg b/marvinproject/dev/MarvinSamples/res/tucano.jpg
deleted file mode 100644
index 8a27237..0000000
Binary files a/marvinproject/dev/MarvinSamples/res/tucano.jpg and /dev/null differ
diff --git a/marvinproject/dev/MarvinSamples/src/image/filters/Filters.java b/marvinproject/dev/MarvinSamples/src/image/filters/Filters.java
deleted file mode 100644
index c0f731f..0000000
--- a/marvinproject/dev/MarvinSamples/src/image/filters/Filters.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package image.filters;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-
-import static marvinplugins.MarvinPluginCollection.*;
-
-/**
- * Filter application sample
- * @author Gabriel Ambrosio Archanjo
- */
-public class Filters extends JFrame
-{
- private MarvinImagePanel imagePanel;
- private MarvinImage image,
- backupImage;
-
- private JPanel panelBottom;
-
-
- private JButton buttonGray,
- buttonSepia,
- buttonInvert,
- buttonReset;
-
- private MarvinImagePlugin imagePlugin;
-
- public Filters()
- {
- super("Filters Sample");
- // Create Graphical Interface
- ButtonHandler buttonHandler = new ButtonHandler();
- buttonGray = new JButton("Gray");
- buttonGray.addActionListener(buttonHandler);
- buttonSepia = new JButton("Sepia");
- buttonSepia.addActionListener(buttonHandler);
- buttonInvert = new JButton("Invert");
- buttonInvert.addActionListener(buttonHandler);
- buttonReset = new JButton("Reset");
- buttonReset.addActionListener(buttonHandler);
-
- panelBottom = new JPanel();
- panelBottom.add(buttonGray);
- panelBottom.add(buttonSepia);
- panelBottom.add(buttonInvert);
- panelBottom.add(buttonReset);
-
- // ImagePanel
- imagePanel = new MarvinImagePanel();
-
- Container l_c = getContentPane();
- l_c.setLayout(new BorderLayout());
- l_c.add(imagePanel, BorderLayout.NORTH);
- l_c.add(panelBottom, BorderLayout.SOUTH);
-
- // Load image
- loadImage();
-
- imagePanel.setImage(image);
-
- setSize(320,600);
- setVisible(true);
- }
-
- private void loadImage(){
- image = MarvinImageIO.loadImage("./res/arara.jpg");
- backupImage = image.clone();
- }
-
- public static void main(String args[]){
- Filters t = new Filters();
- t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class ButtonHandler implements ActionListener
- {
- public void actionPerformed(ActionEvent a_event){
- image = backupImage.clone();
- if(a_event.getSource() == buttonGray){
- grayScale(image);
- }
- else if(a_event.getSource() == buttonSepia){
- sepia(image, 50);
- }
- else if(a_event.getSource() == buttonInvert){
- invertColors(image);
- }
- image.update();
- imagePanel.setImage(image);
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinSamples/src/image/history/History.java b/marvinproject/dev/MarvinSamples/src/image/history/History.java
deleted file mode 100644
index 3c5850f..0000000
--- a/marvinproject/dev/MarvinSamples/src/image/history/History.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package image.history;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinPluginHistory;
-
-import org.marvinproject.image.color.brightnessAndContrast.BrightnessAndContrast;
-import org.marvinproject.image.color.invert.Invert;
-import org.marvinproject.image.edge.edgeDetector.EdgeDetector;
-
-/**
- * History sample
- * @author Gabriel Ambrosio Archanjo
- *
- */
-public class History extends JFrame {
-
- // GUI
- JButton buttonShowHistory;
- JButton buttonApply;
-
- // Marvin Objects
- MarvinPluginHistory history;
- MarvinImagePlugin tempPlugin;
- MarvinImage originalImage;
- MarvinImage resultImage;
-
- MarvinImagePanel imagePanelOriginal,
- imagePanelNew;
-
- public History(){
- super("Plug-in History Sample");
-
- ButtonHandler buttonHandler = new ButtonHandler();
- buttonShowHistory = new JButton("Show History");
- buttonShowHistory.addActionListener(buttonHandler);
- buttonApply = new JButton("Apply");
- buttonApply.addActionListener(buttonHandler);
-
- JPanel l_panelBottom = new JPanel();
- l_panelBottom.add(buttonApply);
- l_panelBottom.add(buttonShowHistory);
-
- imagePanelOriginal = new MarvinImagePanel();
- imagePanelNew = new MarvinImagePanel();
-
- JPanel l_panelTop = new JPanel();
- l_panelTop.add(imagePanelOriginal);
- l_panelTop.add(imagePanelNew);
-
- Container l_c = getContentPane();
- l_c.setLayout(new BorderLayout());
- l_c.add(l_panelTop, BorderLayout.NORTH);
- l_c.add(l_panelBottom, BorderLayout.SOUTH);
-
- originalImage = MarvinImageIO.loadImage("./res/tucano.jpg");
- imagePanelOriginal.setImage(originalImage);
- imagePanelNew.setPreferredSize(imagePanelOriginal.getPreferredSize());
-
- setSize(765,630);
- setVisible(true);
- }
-
- private void process(){
- history = new MarvinPluginHistory();
-
- resultImage = originalImage.clone();
- MarvinImage l_tempImage = new MarvinImage(resultImage.getWidth(), resultImage.getHeight());
-
- history.addEntry("Original", resultImage, null);
-
- tempPlugin = new EdgeDetector();
- tempPlugin.load();
- tempPlugin.process(resultImage, l_tempImage);
- l_tempImage.update();
- resultImage = l_tempImage.clone();
- history.addEntry("Edge", resultImage, tempPlugin.getAttributes());
-
- tempPlugin = new BrightnessAndContrast();
- tempPlugin.load();
- tempPlugin.setAttribute("brightness", -127);
- tempPlugin.setAttribute("contrast", 127);
-
- tempPlugin.process(resultImage, resultImage);
- resultImage.update();
- history.addEntry("BrightenessContrast", resultImage, tempPlugin.getAttributes());
-
- tempPlugin = new Invert();
- tempPlugin.load();
- tempPlugin.process(resultImage, resultImage);
- resultImage.update();
- history.addEntry("Invert", resultImage, tempPlugin.getAttributes());
-
-
- imagePanelNew.setImage(resultImage);
- }
-
- public static void main(String args[]){
- History s = new History();
- s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class ButtonHandler implements ActionListener{
- public void actionPerformed(ActionEvent e){
- if(e.getSource() == buttonApply){
- process();
- }
- else if(e.getSource() == buttonShowHistory){
- if(history != null){
- history.showThumbnailHistory();
- }
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/image/loadAndSave/LoadAndSave.java b/marvinproject/dev/MarvinSamples/src/image/loadAndSave/LoadAndSave.java
deleted file mode 100644
index 8399870..0000000
--- a/marvinproject/dev/MarvinSamples/src/image/loadAndSave/LoadAndSave.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package image.loadAndSave;
-
-import javax.swing.JFrame;
-
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-
-import org.marvinproject.image.color.invert.Invert;
-
-/**
- * Load and save sample.
- * @author Gabriel Ambrosio Archanjo
- */
-public class LoadAndSave extends JFrame
-{
- public LoadAndSave()
- {
- super("Load and Save Sample");
- process();
- setSize(800,600);
- setVisible(true);
- }
-
- private void process(){
- // 1. Load Image
- MarvinImage l_image;
- l_image = MarvinImageIO.loadImage("./res/arara.jpg");
-
- MarvinImagePlugin l_pluginImage = new Invert();
- l_pluginImage.load();
- l_pluginImage.process(l_image, l_image);
- l_image.update();
-
- // 2. Load plug-in
- if(l_image != null){
- MarvinImageIO.saveImage(l_image, "./res/araraNegative.jpg");
- }
- }
-
- public static void main(String args[]){
- LoadAndSave las = new LoadAndSave();
- las.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinSamples/src/image/multithread/Multithread.java b/marvinproject/dev/MarvinSamples/src/image/multithread/Multithread.java
deleted file mode 100644
index d34bdba..0000000
--- a/marvinproject/dev/MarvinSamples/src/image/multithread/Multithread.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package image.multithread;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.thread.MarvinThread;
-import marvin.thread.MarvinThreadEvent;
-import marvin.thread.MarvinThreadListener;
-import marvin.util.MarvinPluginLoader;
-
-import org.marvinproject.image.statistical.maximum.Maximum;
-
-/**
- * Processing images single and multi threaded.
- * @author Gabriel Ambrósio Archanjo
- */
-public class Multithread extends JFrame implements MarvinThreadListener{
-
- // Interface Components
- private JButton buttonSingleThread,
- buttonMultiThread,
- buttonResetImage;
-
- private JLabel labelPerformance;
-
- private MarvinImagePanel imagePanel;
- private MarvinImage imageIn, imageOut, originalImage;
-
- private int threadsFinished;
- private long processStartTime;
-
- public Multithread(){
- super("Multithread Sample");
-
- // Buttons
- ButtonHandler buttonHandler = new ButtonHandler();
- buttonSingleThread = new JButton("Single Thread");
- buttonMultiThread = new JButton("Multi Thread");
- buttonResetImage = new JButton("Reset Image");
-
- buttonSingleThread.addActionListener(buttonHandler);
- buttonMultiThread.addActionListener(buttonHandler);
- buttonResetImage.addActionListener(buttonHandler);
-
- // Label
- labelPerformance = new JLabel("Performance:");
-
- // Panels
- JPanel l_panelIntern = new JPanel();
- l_panelIntern.add(buttonSingleThread);
- l_panelIntern.add(buttonMultiThread);
- l_panelIntern.add(buttonResetImage);
-
- JPanel l_panelBottom = new JPanel();
- l_panelBottom.setLayout(new BorderLayout());
-
- l_panelBottom.add(l_panelIntern, BorderLayout.NORTH);
- l_panelBottom.add(labelPerformance, BorderLayout.SOUTH);
-
- imagePanel = new MarvinImagePanel();
-
- // Container
- Container l_container = getContentPane();
- l_container.setLayout(new BorderLayout());
- l_container.add(imagePanel, BorderLayout.NORTH);
- l_container.add(l_panelBottom, BorderLayout.SOUTH);
-
- // Load Image
- loadImages();
-
- setSize(originalImage.getWidth()+20,690);
- setVisible(true);
- }
-
- private void loadImages(){
- originalImage = MarvinImageIO.loadImage("./res/senna.jpg");
- imageIn = new MarvinImage(originalImage.getWidth(), originalImage.getHeight());
- imageOut = new MarvinImage(originalImage.getWidth(), originalImage.getHeight());
- imagePanel.setImage(originalImage);
- }
-
- public void threadFinished(MarvinThreadEvent e){
- threadsFinished++;
- if(threadsFinished == 2){
- imageOut.update();
- imagePanel.setImage(imageOut);
- labelPerformance.setText("Performance: "+ (System.currentTimeMillis()-processStartTime)+ " milliseconds (Multi Thread)");
- repaint();
- }
- }
-
- public static void main(String args[]){
- Multithread t = new Multithread();
- t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private void singleThread(){
- processStartTime = System.currentTimeMillis();
- MarvinImagePlugin l_pluginImage = new Maximum();
- l_pluginImage.load();
- l_pluginImage.process(imageIn, imageOut);
- imageOut.update();
- imagePanel.setImage(imageOut);
- labelPerformance.setText("Performance: "+ (System.currentTimeMillis()-processStartTime)+ " milliseconds (Single Thread)");
- repaint();
- }
-
- private void multiThread(){
- processStartTime = System.currentTimeMillis();
-
- // Load Plug-ins
- MarvinImagePlugin l_pluginImage_1 = new Maximum();
- MarvinImagePlugin l_pluginImage_2 = new Maximum();
- l_pluginImage_1.load();
- l_pluginImage_2.load();
-
- // Create masks
- MarvinImageMask l_mask1 = new MarvinImageMask
- (
- imageIn.getWidth(), // width
- imageIn.getHeight(), // height
- 0, // x-start
- 0, // y-start
- imageIn.getWidth(), // region´s width
- imageIn.getHeight()/2 // region´s height
- );
-
- MarvinImageMask l_mask2 = new MarvinImageMask
- (
- imageIn.getWidth(), // width
- imageIn.getHeight(), // height
- 0, // x-start
- imageIn.getHeight()/2, // y-start
- imageIn.getWidth(), // region´s width
- imageIn.getHeight()/2 // region´s height
- );
-
-
- MarvinThread l_marvinThread_1 = new MarvinThread(l_pluginImage_1, imageIn, imageOut, l_mask1);
- MarvinThread l_marvinThread_2 = new MarvinThread(l_pluginImage_2, imageIn, imageOut, l_mask2);
-
- l_marvinThread_1.addThreadListener(this);
- l_marvinThread_2.addThreadListener(this);
-
- l_marvinThread_1.start();
- l_marvinThread_2.start();
-
- threadsFinished = 0;
- }
-
- private class ButtonHandler implements ActionListener{
- public void actionPerformed(ActionEvent e){
- imageIn = originalImage.clone();
- if(e.getSource() == buttonSingleThread){
- singleThread();
- }
- else if(e.getSource() == buttonMultiThread){
- multiThread();
- }
- else if(e.getSource() == buttonResetImage){
- imagePanel.setImage(originalImage);
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/image/unitTesting/UnitTesting.java b/marvinproject/dev/MarvinSamples/src/image/unitTesting/UnitTesting.java
deleted file mode 100644
index 0be532e..0000000
--- a/marvinproject/dev/MarvinSamples/src/image/unitTesting/UnitTesting.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package image.unitTesting;
-
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.test.MarvinTestCase;
-
-public class UnitTesting extends MarvinTestCase {
-
- private MarvinImage imageA, imageB, imageC;
-
- public UnitTesting(){
- imageA = MarvinImageIO.loadImage("./res/penguin.jpg");
- imageB = MarvinImageIO.loadImage("./res/penguin.jpg");
- imageC = MarvinImageIO.loadImage("./res/penguin_dark.jpg");
- }
-
- public void testSameImage(){
- assertEquals(imageA, imageB);
- }
-
- public void testDistinctImages(){
- assertEquals(imageA, imageC);
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/plugin/usage/mergePhotos/MergePhotosExample.java b/marvinproject/dev/MarvinSamples/src/plugin/usage/mergePhotos/MergePhotosExample.java
deleted file mode 100644
index 6a1173c..0000000
--- a/marvinproject/dev/MarvinSamples/src/plugin/usage/mergePhotos/MergePhotosExample.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package plugin.usage.mergePhotos;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-
-import org.marvinproject.image.combine.mergePhotos.MergePhotos;
-
-public class MergePhotosExample {
-
- public MergePhotosExample(){
-
- // 1. load images 01.jpg, 02.jpg, ..., 05.jpg into a List
- List images = new ArrayList();
- for(int i=1; i<=5; i++){
- images.add(MarvinImageIO.loadImage("./res/0"+i+".jpg"));
- }
-
- // 2. Load plug-in and process the image
- MarvinImagePlugin merge = new MergePhotos();
- merge.load();
- merge.setAttribute("threshold", 38);
-
- // 3. Process the image list and save the output
- MarvinImage output = images.get(0).clone();
- merge.process(images, output);
- MarvinImageIO.saveImage(output, "./res/merge_output.jpg");
- }
-
- public static void main(String[] args) {
- new MergePhotosExample();
- System.exit(0);
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinSamples/src/plugin/usage/moravec/MoravecExample.java b/marvinproject/dev/MarvinSamples/src/plugin/usage/moravec/MoravecExample.java
deleted file mode 100644
index f05616f..0000000
--- a/marvinproject/dev/MarvinSamples/src/plugin/usage/moravec/MoravecExample.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package plugin.usage.moravec;
-
-import java.awt.Color;
-
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-
-import org.marvinproject.image.corner.moravec.Moravec;
-
-public class MoravecExample {
- public static void main(String[] args) {
-
- MarvinImagePlugin moravec = new Moravec();
- moravec.load();
- moravec.setAttribute("threshold", 50000);
-
- // 1. Figures
- MarvinImage imageIn = MarvinImageIO.loadImage("./res/moravec.png");
- MarvinAttributes attr = new MarvinAttributes();
- moravec.process(imageIn, null, attr);
- imageIn = showCorners(imageIn, attr, 6);
- MarvinImageIO.saveImage(imageIn, "./res/moravec_out.png");
-
- // 2. Face
- moravec.setAttribute("threshold", 2000);
- moravec.setAttribute("matrixSize", 7);
- imageIn = MarvinImageIO.loadImage("./res/alan.jpg");
- attr = new MarvinAttributes();
- moravec.process(imageIn, null, attr);
- imageIn = showCorners(imageIn, attr, 3);
- MarvinImageIO.saveImage(imageIn, "./res/alanOut.png");
-
- // 3. House
- moravec.setAttribute("threshold", 1500);
- moravec.setAttribute("matrixSize", 7);
- imageIn = MarvinImageIO.loadImage("./res/cards.jpg");
- attr = new MarvinAttributes();
- moravec.process(imageIn, null, attr);
- imageIn = showCorners(imageIn, attr, 3);
- MarvinImageIO.saveImage(imageIn, "./res/cardsOut.png");
- }
-
- private static MarvinImage showCorners(MarvinImage image, MarvinAttributes attr, int rectSize){
- MarvinImage ret = image.clone();
- int[][] cornernessMap = (int[][]) attr.get("cornernessMap");
- int rsize=0;
- for(int x=0; x 0){
- rsize = Math.min(Math.min(Math.min(x, rectSize), Math.min(cornernessMap.length-x, rectSize)), Math.min(Math.min(y, rectSize), Math.min(cornernessMap[0].length-y, rectSize)));
- ret.fillRect(x, y, rsize, rsize, Color.red);
- }
- }
- }
-
- return ret;
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/video/chromaKey/ChromaKey.java b/marvinproject/dev/MarvinSamples/src/video/chromaKey/ChromaKey.java
deleted file mode 100644
index 4b76674..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/chromaKey/ChromaKey.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.chromaKey;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-import org.marvinproject.image.combine.combineByMask.CombineByMask;
-import org.marvinproject.image.subtract.Subtract;
-import org.marvinproject.image.transform.scale.Scale;
-
-/**
- * Subtract the background and combine other image.
- * @author Gabriel Ambrosio Archanjo
- */
-public class ChromaKey extends JFrame implements Runnable{
-
- private JPanel panelBottom,
- panelSlider;
- private JSlider sliderColorRange;
- private JButton buttonCaptureBackground,
- buttonStart;
- private JLabel labelColorRange;
-
- private MarvinVideoInterface videoInterface;
- private MarvinImagePanel videoPanel;
-
- private boolean playing;
- private boolean removeBackground;
-
- private Thread thread;
-
- private MarvinImage imageIn,
- imageOut,
- imageBackground;
-
- private MarvinImagePlugin pluginChroma,
- pluginCombine;
-
- private int imageWidth,
- imageHeight;
-
- private int colorRange=30;
-
- public ChromaKey(){
- try{
- videoPanel = new MarvinImagePanel();
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- imageWidth = videoInterface.getImageWidth();
- imageHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(imageWidth, imageHeight);
-
- loadGUI();
-
- pluginChroma = new Subtract();
- pluginChroma.load();
- pluginCombine = new CombineByMask();
- pluginCombine.load();
-
- MarvinImage l_imageParadise = MarvinImageIO.loadImage("./res/paradise.jpg");
- Integer cameraWidth = videoInterface.getImageWidth();
- Integer cameraHeight = videoInterface.getImageHeight();
-
- MarvinImagePlugin pluginScale = new Scale();
- pluginScale.load();
- pluginScale.setAttribute("newWidth", cameraWidth);
- pluginScale.setAttribute("newHeight", cameraHeight);
-
- MarvinImage l_imageParadiseResize = new MarvinImage(1,1);
- pluginScale.process(l_imageParadise, l_imageParadiseResize);
- l_imageParadise = l_imageParadiseResize;
-
- pluginCombine.setAttribute("combinationImage", l_imageParadise);
- pluginCombine.setAttribute("colorMask", new Color(0,0,255));
-
- imageBackground = new MarvinImage(cameraWidth, cameraHeight);
-
- thread = new Thread(this);
- thread.start();
- playing = true;
- removeBackground = false;
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Chroma Key Sample");
-
- panelBottom = new JPanel();
-
- ButtonHandler l_buttonHandler = new ButtonHandler();
- buttonCaptureBackground = new JButton("Capture Background");
- buttonStart = new JButton("Start");
- buttonStart.setEnabled(false);
- buttonCaptureBackground.addActionListener(l_buttonHandler);
- buttonStart.addActionListener(l_buttonHandler);
-
- sliderColorRange = new JSlider(JSlider.HORIZONTAL, 0, 50, 30);
- sliderColorRange.setMinorTickSpacing(1);
- sliderColorRange.setPaintTicks(true);
- sliderColorRange.addChangeListener(new SliderHandler());
-
- labelColorRange = new JLabel("Color Range");
-
- panelSlider = new JPanel();
- panelSlider.add(labelColorRange);
- panelSlider.add(sliderColorRange);
-
- panelBottom.add(buttonCaptureBackground);
- panelBottom.add(buttonStart);
-
- Container l_container = getContentPane();
- l_container.setLayout(new BorderLayout());
- l_container.add(videoPanel, BorderLayout.NORTH);
- l_container.add(panelSlider, BorderLayout.CENTER);
- l_container.add(panelBottom, BorderLayout.SOUTH);
-
-
- setSize(videoInterface.getImageWidth(),videoInterface.getImageHeight()+100);
- setVisible(true);
- }
-
- public void run(){
- try{
- while(true){
- if(playing)
- {
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- if(removeBackground){
- pluginChroma.setAttribute("colorRange", colorRange);
- pluginChroma.process(imageIn, imageOut);
- pluginCombine.process(imageOut, imageOut);
- }
- else{
- MarvinImage.copyColorArray(imageIn, imageOut);
- }
- videoPanel.setImage(imageOut);
- }
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args){
- ChromaKey ck = new ChromaKey();
- ck.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class ButtonHandler implements ActionListener{
- public void actionPerformed(ActionEvent a_event){
- if(a_event.getSource() == buttonCaptureBackground){
- try{
- MarvinImage.copyColorArray(videoInterface.getFrame(), imageBackground);
- pluginChroma.setAttribute("backgroundImage", imageBackground);
- buttonStart.setEnabled(true);
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
- else if(a_event.getSource() == buttonStart){
- removeBackground = true;
- }
- }
- }
-
- private class SliderHandler implements ChangeListener{
- public void stateChanged(ChangeEvent a_event){
- colorRange = (50-sliderColorRange.getValue());
- }
- }
-
-}
diff --git a/marvinproject/dev/MarvinSamples/src/video/detectMotionRegions/DetectMotionRegions.java b/marvinproject/dev/MarvinSamples/src/video/detectMotionRegions/DetectMotionRegions.java
deleted file mode 100644
index 2852a6a..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/detectMotionRegions/DetectMotionRegions.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.detectMotionRegions;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Container;
-import java.util.Vector;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-import org.marvinproject.image.difference.differentRegions.DifferentRegions;
-
-/**
- * Detect the motion regions considering the difference between frames.
- * @author Gabriel Ambrosio Archanjo
- */
-public class DetectMotionRegions extends JFrame implements Runnable{
-
- private JPanel panelSlider;
- private JSlider sliderSensibility;
- private JLabel labelSlider;
-
- private MarvinVideoInterface videoInterface;
- private MarvinImagePanel videoPanel;
-
- private MarvinImage imageIn,
- imageOut,
- imageLastFrame;
-
- private int imageWidth,
- imageHeight;
-
-
- private MarvinAttributes attributesOut;
-
- private Thread thread;
-
- private MarvinImagePlugin pluginMotionRegions;
-
- private int sensibility=30;
-
- public DetectMotionRegions(){
- try{
- videoPanel = new MarvinImagePanel();
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- imageWidth = videoInterface.getImageWidth();
- imageHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(imageWidth,imageHeight);
- imageLastFrame = new MarvinImage(imageWidth,imageHeight);
-
- attributesOut = new MarvinAttributes(null);
-
- pluginMotionRegions = new DifferentRegions();
- pluginMotionRegions.load();
- pluginMotionRegions.setAttribute("comparisonImage", imageLastFrame);
-
- loadGUI();
-
- thread = new Thread(this);
- thread.start();
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Video Sample - Detect Motion Regions");
-
- sliderSensibility = new JSlider(JSlider.HORIZONTAL, 0, 60, 30);
- sliderSensibility.setMinorTickSpacing(2);
- sliderSensibility.setPaintTicks(true);
- sliderSensibility.addChangeListener(new SliderHandler());
-
- labelSlider = new JLabel("Sensibility");
-
- panelSlider = new JPanel();
- panelSlider.add(labelSlider);
- panelSlider.add(sliderSensibility);
-
- Container container = getContentPane();
- container.setLayout(new BorderLayout());
- container.add(videoPanel, BorderLayout.NORTH);
- container.add(panelSlider, BorderLayout.SOUTH);
-
- setSize(imageWidth+10,imageHeight+100);
- setVisible(true);
- }
-
- public void run(){
- boolean first = true;
-
- int[] tempRect;
-
- try{
- while(true){
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- if(!first){
- pluginMotionRegions.setAttribute("comparisonImage", imageLastFrame);
- pluginMotionRegions.setAttribute("colorRange", sensibility);
-
- MarvinImage.copyColorArray(imageIn, imageOut);
- pluginMotionRegions.process(imageIn, imageOut, attributesOut, MarvinImageMask.NULL_MASK, false);
-
- Vector regions = (Vector)attributesOut.get("regions");
-
- for(int i=0; i
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.objectTracking;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Container;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-import org.marvinproject.image.pattern.findColorPattern.FindColorPattern;
-
-/**
- * Object tracking by color pattern
- * @author Gabriel Ambrosio Archanjo
- */
-
-public class ObjectTracking extends JFrame implements Runnable{
-
- private MarvinVideoInterface videoInterface;
- private MarvinImagePanel videoPanel;
-
- private Thread thread;
-
- private MarvinImage imageIn,
- imageOut;
-
- private JPanel panelSlider;
-
- private JSlider sliderSensibility;
-
- private JLabel labelSlider;
-
- private MarvinImagePlugin pluginImage;
- private MarvinAttributes attributesOut;
-
- private int sensibility=30;
-
- private int imageWidth,
- imageHeight;
-
- private boolean regionSelected=false;
- private int[] arrInitialRegion;
-
- public ObjectTracking(){
-
- try{
- videoPanel = new MarvinImagePanel();
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- imageWidth = videoInterface.getImageWidth();
- imageHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(imageWidth, imageHeight);
-
- loadGUI();
-
- pluginImage = new FindColorPattern();
- pluginImage.load();
-
- attributesOut = new MarvinAttributes(null);
-
- thread = new Thread(this);
- thread.start();
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Video Sample - Tracking");
-
- videoPanel.addMouseListener(new MouseHandler());
-
- sliderSensibility = new JSlider(JSlider.HORIZONTAL, 0, 60, 30);
- sliderSensibility.setMinorTickSpacing(2);
- sliderSensibility.setPaintTicks(true);
- sliderSensibility.addChangeListener(new SliderHandler());
-
- labelSlider = new JLabel("Sensibility");
-
- panelSlider = new JPanel();
- panelSlider.add(labelSlider);
- panelSlider.add(sliderSensibility);
-
- Container l_container = getContentPane();
- l_container.setLayout(new BorderLayout());
- l_container.add(videoPanel, BorderLayout.NORTH);
- l_container.add(panelSlider, BorderLayout.SOUTH);
-
- setSize(imageWidth+20,imageHeight+100);
- setVisible(true);
- }
-
- public void run(){
- long time = System.currentTimeMillis();
- int ticks=0;
-
- try{
- while(true){
-
- ticks++;
- if(System.currentTimeMillis() - time > 1000){
- System.out.println("FPS: "+ticks+" ");
- ticks=0;
- time = System.currentTimeMillis();
- }
-
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- if(regionSelected){
- pluginImage.setAttribute("differenceColorRange", sensibility);
- pluginImage.process(imageIn, imageOut, attributesOut, MarvinImageMask.NULL_MASK, false);
-
- imageOut.drawRect
- (
- (Integer)attributesOut.get("regionPx"),
- (Integer)attributesOut.get("regionPy"),
- (Integer)attributesOut.get("regionWidth"),
- (Integer)attributesOut.get("regionHeight"),
- Color.red
- );
- }
- videoPanel.setImage(imageOut);
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- public static void main(String args[]){
- ObjectTracking l_objectTracking = new ObjectTracking();
- l_objectTracking.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class SliderHandler implements ChangeListener{
- public void stateChanged(ChangeEvent a_event){
- sensibility = (60-sliderSensibility.getValue());
- }
- }
-
- private class MouseHandler implements MouseListener{
- public void mouseEntered(MouseEvent a_event){}
- public void mouseExited(MouseEvent a_event){}
- public void mousePressed(MouseEvent a_event){}
- public void mouseClicked(MouseEvent a_event){}
-
- public void mouseReleased(MouseEvent a_event){
- if(!regionSelected){
- if(arrInitialRegion == null){
- arrInitialRegion = new int[]{a_event.getX(), a_event.getY(),0,0};
- }
- else{
- arrInitialRegion[2] = a_event.getX()-arrInitialRegion[0];
- arrInitialRegion[3] = a_event.getY()-arrInitialRegion[1];
-
- pluginImage.setAttribute("regionPx", arrInitialRegion[0]);
- pluginImage.setAttribute("regionPy", arrInitialRegion[1]);
- pluginImage.setAttribute("regionWidth", arrInitialRegion[2]);
- pluginImage.setAttribute("regionHeight", arrInitialRegion[3]);
- regionSelected = true;
- }
- }
- }
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/video/simpleMotionDetection/SimpleMotionDetection.java b/marvinproject/dev/MarvinSamples/src/video/simpleMotionDetection/SimpleMotionDetection.java
deleted file mode 100644
index c29d6c5..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/simpleMotionDetection/SimpleMotionDetection.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.simpleMotionDetection;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Container;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.SwingConstants;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-/**
- * Simple motion detection sample
- * @author Gabriel Ambrosio Archanjo
- */
-public class SimpleMotionDetection extends JFrame implements Runnable{
-
- private JPanel panelCenter,
- panelSlider;
-
-
- private JLabel labelMotion,
- labelSlider;
-
- private JSlider sliderSensibility;
-
- private MarvinVideoInterface videoInterface;
- private MarvinImagePanel videoPanel;
-
- private int imageWidth,
- imageHeight;
-
- private Thread thread;
-
- private MarvinImage imageIn,
- imageOut,
- imageLastFrame;
-
- private double differencePercentage;
-
- private int sensibility = 7;
-
- public SimpleMotionDetection(){
-
- try{
- videoPanel = new MarvinImagePanel();
-
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- imageWidth = videoInterface.getImageWidth();
- imageHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(imageWidth, imageHeight);
-
- imageLastFrame = new MarvinImage(imageWidth,imageHeight);
-
- loadGUI();
-
- thread = new Thread(this);
- thread.start();
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Simple Motion Detection");
- labelMotion = new JLabel("MOTION: NO");
- labelMotion.setOpaque(true);
- labelMotion.setHorizontalAlignment(SwingConstants.CENTER);
-
- labelMotion.setBackground(Color.red);
- labelMotion.setForeground(Color.white);
-
- labelSlider = new JLabel("Sensibility:");
-
- sliderSensibility = new JSlider(JSlider.HORIZONTAL, 0, 13, 10);
- sliderSensibility.setMinorTickSpacing(1);
- sliderSensibility.setPaintTicks(true);
- sliderSensibility.addChangeListener(new SliderHandler());
-
- panelCenter = new JPanel(new BorderLayout());
- panelCenter.add(videoPanel, BorderLayout.NORTH);
- panelCenter.add(labelMotion, BorderLayout.SOUTH);
-
- panelSlider = new JPanel();
- panelSlider.add(labelSlider);
- panelSlider.add(sliderSensibility);
-
- Container l_container = getContentPane();
- l_container.add(videoPanel, BorderLayout.NORTH);
- l_container.add(labelMotion, BorderLayout.CENTER);
- l_container.add(panelSlider, BorderLayout.SOUTH);
-
-
- setSize(imageWidth,imageHeight+100);
- setVisible(true);
- }
-
- public void run(){
- try{
- while(true){
-
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- differencePercentage = getDifference(imageLastFrame, imageIn);
-
- MarvinImage.copyColorArray(imageIn, imageOut);
- MarvinImage.copyColorArray(imageOut, imageLastFrame);
-
- videoPanel.setImage(imageOut);
-
- if(differencePercentage > sensibility){
- labelMotion.setBackground(Color.green);
- labelMotion.setForeground(Color.white);
- labelMotion.setText("MOTION: YES");
- }
- else{
- labelMotion.setBackground(Color.red);
- labelMotion.setForeground(Color.white);
- labelMotion.setText("MOTION: NO");
- }
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private double getDifference(MarvinImage a_imageA, MarvinImage a_imageB){
-
- int l_redA,
- l_redB,
- l_greenA,
- l_greenB,
- l_blueA,
- l_blueB;
-
- double l_pixels=0;
-
- for(int y=0; y 20 ||
- Math.abs(l_greenA-l_greenB)> 20 ||
- Math.abs(l_blueA-l_blueB)> 20
- )
- {
- l_pixels++;
- }
- }
- }
- return (l_pixels/(a_imageA.getWidth()*a_imageA.getHeight())*100);
- }
-
- public static void main(String args[]){
- SimpleMotionDetection smd = new SimpleMotionDetection();
- smd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class SliderHandler implements ChangeListener{
- public void stateChanged(ChangeEvent a_event){
- sensibility = (15-sliderSensibility.getValue());
- }
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/video/simpleVideoTest/SimpleVideoTest.java b/marvinproject/dev/MarvinSamples/src/video/simpleVideoTest/SimpleVideoTest.java
deleted file mode 100644
index 4a7bf49..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/simpleVideoTest/SimpleVideoTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.simpleVideoTest;
-import javax.swing.JFrame;
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-public class SimpleVideoTest extends JFrame implements Runnable{
-
- private MarvinVideoInterface videoAdapter;
- private MarvinImage image;
- private MarvinImagePanel videoPanel;
-
- public SimpleVideoTest(){
- super("Simple Video Test");
-
- try{
- // Create the VideoAdapter and connect to the camera
- videoAdapter = new MarvinJavaCVAdapter();
- videoAdapter.connect(1, 640, 480);
-
- // Create VideoPanel
- videoPanel = new MarvinImagePanel();
- add(videoPanel);
-
- // Start the thread for requesting the video frames
- new Thread(this).start();
-
- setSize(800,600);
- setVisible(true);
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- SimpleVideoTest t = new SimpleVideoTest();
- t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- @Override
- public void run() {
- try{
- while(true){
- // Request a video frame and set into the VideoPanel
- image = videoAdapter.getFrame();
- videoPanel.setImage(image);
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-}
-
-
diff --git a/marvinproject/dev/MarvinSamples/src/video/snookerBallPath/MediaFileExample.java b/marvinproject/dev/MarvinSamples/src/video/snookerBallPath/MediaFileExample.java
deleted file mode 100644
index e46d0d0..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/snookerBallPath/MediaFileExample.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.snookerBallPath;
-
-import java.awt.BorderLayout;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-public class MediaFileExample extends JFrame implements Runnable{
-
- private MarvinVideoInterface videoAdapter;
- private MarvinImage imageIn, imageOut, imageBuffer;
- private MarvinImagePanel videoPanelLeft, videoPanelRight;
-
- private static FlowLayout flowLayout = new FlowLayout(FlowLayout.CENTER);
- public MediaFileExample(){
- super("Media File Example");
-
- try{
- // Create the VideoAdapter used to load the video file
- videoAdapter = new MarvinJavaCVAdapter();
- videoAdapter.loadResource("./res/snooker.wmv");
-
- imageOut = new MarvinImage(videoAdapter.getImageWidth(), videoAdapter.getImageHeight());
- imageBuffer = new MarvinImage(videoAdapter.getImageWidth(), videoAdapter.getImageHeight());
-
- // Set up the Graphical User Interface
- loadGUI();
-
- // Start the thread for requesting the video frames
- new Thread(this).start();
-
- setSize((videoAdapter.getImageWidth()*2)+10,videoAdapter.getImageHeight()+80);
- setVisible(true);
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- MediaFileExample m = new MediaFileExample();
- m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- @Override
- public void run() {
- try{
- while(true){
- // Request a video frame
- imageIn = videoAdapter.getFrame();
-
- if(imageIn != null){
- // Post the original frame in the left video panel
- videoPanelLeft.setImage(imageIn);
- // Image processing
- processImage(imageIn, imageOut);
- // Post the processed image in the right video panel
- videoPanelRight.setImage(imageOut);
- } else{
- break;
- }
- try{Thread.sleep(30);}catch(Exception e){}
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- /**
- * Just buffer every pixels that are not green
- * @param imgIn
- * @param imgOut
- */
- int fc=0;
- private void processImage(MarvinImage imgIn, MarvinImage imgOut){
- if(++fc == 8){
- for(int y=0; y 120 && green > red * 1.4 && blue < 50)){
- imageBuffer.setIntColor(x, y, 255, red, green, blue);
- }
- }
- }
- fc=0;
- }
-
- for(int y=0; y
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.trackingGameBalls;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-import org.marvinproject.image.pattern.findColorPattern.FindColorPattern;
-import org.marvinproject.image.render.renderText.RenderText;
-
-/**
- * Tracking game sample
- * @author Gabriel Ambrosio Archanjo
- */
-
-public class TrackingGameBalls extends JFrame implements Runnable{
-
- private MarvinVideoInterface videoInterface;
- private MarvinImagePanel videoPanel;
-
- private Thread thread;
-
- private MarvinImage imageIn,
- imageOut,
- imageHat,
- imageBall;
-
-
- private JPanel panelSlider;
-
- private JSlider sliderSensibility;
-
- private JButton buttonStart;
-
- private JLabel labelSlider;
-
- private int regionPx,
- regionPy;
-
- private int sensibility=30;
-
- private int playerPoints=15;
-
- private boolean regionSelected=false;
- private int[] arrInitialRegion;
-
- private Ball[] arrBall;
-
- private int imageWidth,
- imageHeight;
-
- private int maskPx,
- maskPy,
- maskWidth=120,
- maskHeight=60;
-
- private MarvinImagePlugin pluginColorPattern,
- text;
-
- private MarvinAttributes attributesOut;
-
-
- // Game Attributes
- private long lastBall=0;
- private final static int BALL_DELAY = 1000;
- private long currentTime;
-
-
-
- public TrackingGameBalls(){
- try{
- videoPanel = new MarvinImagePanel();
-
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- imageWidth = videoInterface.getImageWidth();
- imageHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(imageWidth, imageHeight);
-
- imageHat = MarvinImageIO.loadImage("./res/hat.png");
- imageBall = MarvinImageIO.loadImage("./res/ball.png");
- loadGUI();
-
- arrBall = new Ball[5];
- for(int l_i=0; l_i<5; l_i++){
- arrBall[l_i] = new Ball();
- arrBall[l_i].used = false;
- }
-
- pluginColorPattern = new FindColorPattern();
- pluginColorPattern.load();
- text = new RenderText();
- text.load();
- text.setAttribute("fontFile", MarvinImageIO.loadImage("./res/font.png"));
- text.setAttribute("color", 0xFFFFFFFF);
-
-
- attributesOut = new MarvinAttributes(null);
-
- thread = new Thread(this);
- thread.start();
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Video Sample - Tracking Game");
-
- sliderSensibility = new JSlider(JSlider.HORIZONTAL, 0, 60, 30);
- sliderSensibility.setMinorTickSpacing(2);
- sliderSensibility.setPaintTicks(true);
- sliderSensibility.addChangeListener(new SliderHandler());
-
- labelSlider = new JLabel("Sensibility");
-
- panelSlider = new JPanel();
- panelSlider.add(labelSlider);
- panelSlider.add(sliderSensibility);
-
- buttonStart = new JButton("Start");
- buttonStart.addActionListener(new ButtonHandler());
-
- Container l_container = getContentPane();
- l_container.setLayout(new BorderLayout());
- l_container.add(videoPanel, BorderLayout.NORTH);
- l_container.add(panelSlider, BorderLayout.CENTER);
- l_container.add(buttonStart, BorderLayout.SOUTH);
-
- setSize(imageWidth+20,imageHeight+100);
- setVisible(true);
- }
-
- private void combineImage(MarvinImage a_image, int x, int y){
- int l_rgb;
- int l_width = a_image.getWidth();
- int l_height = a_image.getHeight();
-
- for(int iy=0; iy 0 && ix+x < imageWidth &&
- iy+y > 0 && iy+y < imageHeight
- )
- {
- l_rgb=a_image.getIntColor(ix, iy);
- if(l_rgb != 0xFFFFFFFF){
- imageOut.setIntColor(ix+x, iy+y, l_rgb);
- }
- }
- }
- }
- }
-
-
- private void updateBalls(){
-
- currentTime = System.currentTimeMillis();
- if(currentTime - lastBall > BALL_DELAY){
- launchBall();
- lastBall = currentTime;
- }
-
- for(int l_i=0; l_i<5; l_i++){
- if(arrBall[l_i].used){
- arrBall[l_i].py *= 1.1;
- combineImage(imageBall,(int)arrBall[l_i].px,(int)arrBall[l_i].py);
- }
- }
-
- }
-
- private void launchBall(){
- for(int l_i=0; l_i<5; l_i++){
- if(!arrBall[l_i].used){
- arrBall[l_i].py = 1;
- arrBall[l_i].px = (Math.random()*(imageWidth-300))+150;
- arrBall[l_i].used = true;
- return;
- }
- }
- }
-
- public void run(){
- long time = System.currentTimeMillis();
- int ticks=0;
-
- try{
- while(true){
-
- ticks++;
- if(System.currentTimeMillis() - time > 1000){
- System.out.println("FPS: "+ticks+" ");
- ticks=0;
- time = System.currentTimeMillis();
- }
-
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- if(regionSelected){
- pluginColorPattern.setAttribute("differenceColorRange", sensibility);
- pluginColorPattern.process(imageIn, imageOut, attributesOut, MarvinImageMask.NULL_MASK, false);
- regionPx = (Integer)attributesOut.get("regionPx");
- regionPy = (Integer)attributesOut.get("regionPy");
- gameLoop();
- }
- else{
- combineImage(imageHat,300,200);
- }
-
-
- text.setAttribute("y", 5);
- text.setAttribute("text", "POINTS:"+playerPoints);
- text.process(imageOut, imageOut);
-
- videoPanel.setImage(imageOut);
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void gameLoop(){
-
- maskPx = regionPx-12;
- maskPy = regionPy-58;
-
- updateBalls();
- collisionDetection();
- combineImage(imageHat,regionPx-14,regionPy-95);
- }
-
- public void collisionDetection(){
- for(int l_i=0; l_i<5; l_i++){
- if(arrBall[l_i].used){
- collisionBallMask(arrBall[l_i]);
- collisionBallScreen(arrBall[l_i]);
- }
- }
- }
-
- private void collisionBallScreen(Ball a_ball){
- if(a_ball.py > imageHeight){
- a_ball.used = false;
- }
- }
-
- private void collisionBallMask(Ball a_ball){
- if
- (
- (
- a_ball.px >= maskPx && a_ball.px <= maskPx+maskWidth ||
- a_ball.px <= maskPx && a_ball.px+a_ball.width >= maskPx
- )
- &&
- (
- a_ball.py >= maskPy && a_ball.py <= maskPy+maskHeight ||
- a_ball.py <= maskPy && a_ball.py+a_ball.height >= maskPy
- )
- )
- {
- a_ball.used = false;
- }
-
- }
-
- public static void main(String args[]){
- TrackingGameBalls l_trackingBalls = new TrackingGameBalls();
- l_trackingBalls.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class SliderHandler implements ChangeListener{
- public void stateChanged(ChangeEvent a_event){
- sensibility = (60-sliderSensibility.getValue());
- }
- }
-
- private class ButtonHandler implements ActionListener{
- public void actionPerformed(ActionEvent a_event){
- pluginColorPattern.setAttribute("regionPx", 310);
- pluginColorPattern.setAttribute("regionPy", 295);
- pluginColorPattern.setAttribute("regionWidth", 118);
- pluginColorPattern.setAttribute("regionHeight", 134);
-
- regionSelected = true;
- }
- }
-
- private class Ball{
- public boolean used;
- public double px,py;
- public int width,height;
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/video/trackingPong/TrackingPong.java b/marvinproject/dev/MarvinSamples/src/video/trackingPong/TrackingPong.java
deleted file mode 100644
index 74c5990..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/trackingPong/TrackingPong.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.trackingPong;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Container;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.io.MarvinImageIO;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.util.MarvinAttributes;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-import org.marvinproject.image.pattern.findColorPattern.FindColorPattern;
-import org.marvinproject.image.render.renderText.RenderText;
-import org.marvinproject.image.transform.flip.Flip;
-
-/**
- * Tracking game sample
- * @author Gabriel Ambrosio Archanjo
- */
-public class TrackingPong extends JFrame implements Runnable{
-
- private final static int BALL_INITIAL_PX=100;
- private final static int BALL_INITIAL_PY=100;
- private final static int BALL_INITIAL_SPEED=3;
-
- private MarvinVideoInterface videoInterface;
- private MarvinImagePanel videoPanel;
-
- private Thread thread;
-
- private MarvinImage imageIn,
- imageOut;
-
- private JPanel panelSlider;
-
- private JSlider sliderSensibility;
-
- private JLabel labelSlider;
-
- private int regionPx,
- regionPy,
- regionWidth,
- regionHeight;
-
- private boolean regionSelected=false;
- private int[] arrInitialRegion;
-
- private int sensibility=30;
-
-
-
- // Pong Game Attributes
- private double ballPx=BALL_INITIAL_PX,
- ballPy=BALL_INITIAL_PY;
-
- private int ballSide=15;
-
-
- double ballIncX=5;
- private double ballIncY=5;
-
- private int imageWidth,
- imageHeight;
-
- private Paddle paddlePlayer,
- paddleComputer;
-
- private int playerPoints=0,
- computerPoints=0;
-
- private MarvinImagePlugin findColorPattern,
- flip,
- text;
-
- private MarvinImage imageBall,
- imagePaddlePlayer,
- imagePaddleComputer;
-
- private MarvinAttributes attributesOut;
-
- public TrackingPong(){
- videoPanel = new MarvinImagePanel();
-
- try{
- // 1. Connect to the camera device.
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- imageWidth = videoInterface.getImageWidth();
- imageHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(imageWidth, imageHeight);
-
- // 2. Load Graphical Interface.
- loadGUI();
-
- // 3. Load and set up Marvin plug-ins.
- findColorPattern = new FindColorPattern();
- findColorPattern.load();
- flip = new Flip();
- flip.load();
- text = new RenderText();
- text.load();
- text.setAttribute("fontFile", MarvinImageIO.loadImage("./res/font.png"));
- text.setAttribute("color", 0xFFFFFFFF);
-
- // 3. Load game images
- imageBall = MarvinImageIO.loadImage("./res/ball.png");
- imagePaddlePlayer = MarvinImageIO.loadImage("./res/paddleA.png");
- imagePaddleComputer = MarvinImageIO.loadImage("./res/paddleB.png");
-
- attributesOut = new MarvinAttributes(null);
-
- // Set up plater and computer paddle properties.
- paddlePlayer = new Paddle();
- paddlePlayer.px=100;
- paddlePlayer.py=420;
- paddlePlayer.width=100;
- paddlePlayer.height=30;
-
- paddleComputer = new Paddle();
- paddleComputer.px=100;
- paddleComputer.py=30;
- paddleComputer.width=100;
- paddleComputer.height=30;
-
- thread = new Thread(this);
- thread.start();
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Video Sample - Tracking Pong");
-
- videoPanel.addMouseListener(new MouseHandler());
-
- sliderSensibility = new JSlider(JSlider.HORIZONTAL, 0, 60, 30);
- sliderSensibility.setMinorTickSpacing(2);
- sliderSensibility.setPaintTicks(true);
- sliderSensibility.addChangeListener(new SliderHandler());
-
- labelSlider = new JLabel("Sensibility");
-
- panelSlider = new JPanel();
- panelSlider.add(labelSlider);
- panelSlider.add(sliderSensibility);
-
- Container container = getContentPane();
- container.setLayout(new BorderLayout());
- container.add(videoPanel, BorderLayout.NORTH);
- container.add(panelSlider, BorderLayout.SOUTH);
-
- setSize(videoInterface.getImageWidth()+20,videoInterface.getImageHeight()+100);
- setVisible(true);
- }
-
- public void run(){
- long time = System.currentTimeMillis();
- int ticks=0;
-
- // The game loop.
- try{
- while(true){
-
- ticks++;
- if(System.currentTimeMillis() - time > 1000){
- System.out.println("FPS: "+ticks+" ");
- ticks=0;
- time = System.currentTimeMillis();
- }
-
- // 1. Get the current video frame.
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- // 2. Flip the frame horizontally so the player will see him on the screen like looking at the mirror.
- flip.process(imageOut, imageOut);
-
- if(regionSelected){
-
- // 3. Find the player paddle position.
- findColorPattern.setAttribute("differenceColorRange", sensibility);
- findColorPattern.process(imageOut, imageOut, attributesOut, MarvinImageMask.NULL_MASK, false);
- regionPx = (Integer)attributesOut.get("regionPx");
- regionPy = (Integer)attributesOut.get("regionPy");
- regionWidth = (Integer)attributesOut.get("regionWidth");
- regionHeight = (Integer)attributesOut.get("regionHeight");
-
- // 4. Invoke the game logic
- pongGame();
-
- // 5. Draw the detected region
- imageOut.drawRect(regionPx, regionPy, regionWidth, regionHeight, Color.red);
-
- // 6. Draw the player and computer points.
- text.setAttribute("x", 105);
- text.setAttribute("y", 3);
- text.setAttribute("text", "PLAYER:"+playerPoints);
- text.process(imageOut, imageOut);
-
- text.setAttribute("x", 105);
- text.setAttribute("y", 460);
- text.setAttribute("text", "COMPUTER:"+computerPoints);
- text.process(imageOut, imageOut);
- }
-
-
- videoPanel.setImage(imageOut);
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void pongGame(){
- // 1. Move the ball
- ballIncX*=1.001;
- ballIncY*=1.001;
- ballPx+=ballIncX;
- ballPy+=ballIncY;
-
- // 2. Set the player paddle position to the the coordinates of the detected region.
- paddlePlayer.px = regionPx+((regionWidth-paddlePlayer.width)/2);
-
- // 3. Invoke simple computer AI
- computerAI();
-
- // 4. Check object positions and collisions.
- checkPaddlePosition(paddlePlayer);
- checkPaddlePosition(paddleComputer);
- collisionScreen();
- collisionTap();
-
- // 5. Draw the game elements.
- imageOut.fillRect(horizontalMargin, 0, 5, imageHeight, Color.black);
- imageOut.fillRect(imageWidth-horizontalMargin, 0, 5, imageHeight, Color.black);
-
- combineImage(imagePaddlePlayer, paddlePlayer.px, paddlePlayer.py);
- combineImage(imagePaddleComputer, paddleComputer.px, paddleComputer.py);
- combineImage(imageBall,(int)ballPx, (int)ballPy);
- }
-
- private void checkPaddlePosition(Paddle a_paddle){
- if(a_paddle.px < horizontalMargin){
- a_paddle.px = horizontalMargin;
- }
- if(a_paddle.px+a_paddle.width > imageWidth-horizontalMargin){
- a_paddle.px = imageWidth-horizontalMargin-a_paddle.width;
- }
- }
-
- private void computerAI(){
- if(ballPx < paddleComputer.px+(paddleComputer.width/2)-10){
- paddleComputer.px-=4;
- }
- if(ballPx > paddleComputer.px+(paddleComputer.width/2)+10){
- paddleComputer.px+=4;
- }
- }
-
- private int horizontalMargin = 100;
- private void collisionScreen(){
-
- if(ballPx < horizontalMargin){
- ballPx = horizontalMargin;
- ballIncX*=-1;
- }
- if(ballPx+ballSide >= imageWidth-horizontalMargin){
- ballPx=(imageWidth-horizontalMargin)-ballSide;
- ballIncX*=-1;
- }
- if(ballPy < 0){
- playerPoints++;
- ballPx = BALL_INITIAL_PX;
- ballPy = BALL_INITIAL_PY;
- ballIncY=BALL_INITIAL_SPEED;
- ballIncX=BALL_INITIAL_SPEED;
- } else if(ballPy+ballSide >= imageHeight){
- computerPoints++;
- ballPx = BALL_INITIAL_PX;
- ballPy = BALL_INITIAL_PY;
- ballIncY=BALL_INITIAL_SPEED;
- ballIncX=BALL_INITIAL_SPEED;
- }
- }
-
- private void collisionTap(){
- if(ballCollisionTap(paddlePlayer)){
- ballIncY*=-1;
- ballPy = paddlePlayer.py-ballSide;
- }
- if(ballCollisionTap(paddleComputer)){
- ballIncY*=-1;
- ballPy = paddleComputer.py+paddleComputer.height;
- }
- }
-
- private boolean ballCollisionTap(Paddle a_tap){
- if
- (
- (
- ballPx >= a_tap.px && ballPx <= a_tap.px+a_tap.width ||
- ballPx <= a_tap.px && ballPx+ballSide >= a_tap.px
- )
- &&
- (
- ballPy >= a_tap.py && ballPy <= a_tap.py+a_tap.height ||
- ballPy <= a_tap.py && ballPy+ballSide >= a_tap.py
- )
- )
- {
- return true;
- }
- return false;
- }
-
- private void combineImage(MarvinImage img, int x, int y){
- int rgb;
- int width = img.getWidth();
- int height = img.getHeight();
-
- for(int iy=0; iy 0 && ix+x < imageWidth &&
- iy+y > 0 && iy+y < imageHeight
- )
- {
- rgb=img.getIntColor(ix, iy);
- if(rgb != 0xFFFFFFFF){
- imageOut.setIntColor(ix+x, iy+y, rgb);
- }
- }
- }
- }
- }
-
- public static void main(String args[]){
- TrackingPong trackingPong = new TrackingPong();
- trackingPong.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class SliderHandler implements ChangeListener{
- public void stateChanged(ChangeEvent a_event){
- sensibility = (60-sliderSensibility.getValue());
- }
- }
-
- private class MouseHandler implements MouseListener{
- public void mouseEntered(MouseEvent a_event){}
- public void mouseExited(MouseEvent a_event){}
- public void mousePressed(MouseEvent a_event){}
- public void mouseClicked(MouseEvent a_event){}
-
- public void mouseReleased(MouseEvent event){
- if(!regionSelected){
- if(arrInitialRegion == null){
- arrInitialRegion = new int[]{event.getX(), event.getY(),0,0};
- }
- else{
- arrInitialRegion[2] = event.getX()-arrInitialRegion[0];
- arrInitialRegion[3] = event.getY()-arrInitialRegion[1];
-
- findColorPattern.setAttribute("regionPx", arrInitialRegion[0]);
- findColorPattern.setAttribute("regionPy", arrInitialRegion[1]);
- findColorPattern.setAttribute("regionWidth", arrInitialRegion[2]);
- findColorPattern.setAttribute("regionHeight", arrInitialRegion[3]);
-
- regionSelected = true;
- }
- }
- }
- }
-
- private class Paddle{
- public int px,py,width,height;
- }
-}
diff --git a/marvinproject/dev/MarvinSamples/src/video/videoFilters/VideoFilters.java b/marvinproject/dev/MarvinSamples/src/video/videoFilters/VideoFilters.java
deleted file mode 100644
index cb8812a..0000000
--- a/marvinproject/dev/MarvinSamples/src/video/videoFilters/VideoFilters.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/**
-Marvin Project <2007-2013>
-http://www.marvinproject.org
-
-License information:
-http://marvinproject.sourceforge.net/en/license.html
-
-Discussion group:
-https://groups.google.com/forum/#!forum/marvin-project
-*/
-
-package video.videoFilters;
-
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.video.MarvinJavaCVAdapter;
-import marvin.video.MarvinVideoInterface;
-import marvin.video.MarvinVideoInterfaceException;
-
-import org.marvinproject.image.artistic.television.Television;
-import org.marvinproject.image.blur.pixelize.Pixelize;
-import org.marvinproject.image.color.grayScale.GrayScale;
-import org.marvinproject.image.color.invert.Invert;
-import org.marvinproject.image.color.sepia.Sepia;
-import org.marvinproject.image.color.thresholding.Thresholding;
-import org.marvinproject.image.difference.differenceColor.DifferenceColor;
-import org.marvinproject.image.edge.edgeDetector.EdgeDetector;
-import org.marvinproject.image.halftone.dithering.Dithering;
-import org.marvinproject.image.statistical.maximum.Maximum;
-import org.marvinproject.image.statistical.minimum.Minimum;
-import org.marvinproject.image.transform.flip.Flip;
-
-/**
- * Using filters with video.
- * @author Gabriel Ambrosio Archanjo
- */
-public class VideoFilters extends JFrame implements Runnable{
-
- // GUI
- private JPanel panelButton,
- panelWest,
- panelLabels,
- panelCenter;
-
- private JButton buttonPlayStop,
- buttonNormal,
- buttonPluginGray,
- buttonPluginSepia,
- buttonPluginInvert,
- buttonPluginPixelize,
- buttonThresholding,
- buttonPluginHalftone,
- buttonPluginMinimum,
- buttonPluginMaximum,
- buttonPluginFlip,
- buttonPluginTelevision,
- buttonPluginEdgeDetector,
- buttonPluginDifference,
- buttonRect;
-
- private JLabel labelCurrentPlugin,
- labelFPS;
-
- private MarvinImagePanel videoPanel;
-
- private MarvinImage imageIn;
- private MarvinImage imageOut;
- private MarvinImage imageLastFrame;
- private MarvinImageMask imageMask,
- imageMaskRect;
-
- private Thread thread;
-
- private MarvinImagePlugin pluginImage;
-
- private int cameraWidth,
- cameraHeight;
-
- private boolean playing;
- private boolean rect;
-
- private MarvinVideoInterface videoInterface;
-
- public VideoFilters(){
- try{
- videoInterface = new MarvinJavaCVAdapter();
- videoInterface.connect(1);
-
- videoPanel = new MarvinImagePanel();
- cameraWidth = videoInterface.getImageWidth();
- cameraHeight = videoInterface.getImageHeight();
-
- imageOut = new MarvinImage(cameraWidth, cameraHeight);
-
- imageLastFrame = new MarvinImage(cameraWidth,cameraHeight);
- imageMask = MarvinImageMask.NULL_MASK;
- imageMaskRect = new MarvinImageMask(cameraWidth,cameraHeight,cameraWidth/4,cameraHeight/4,cameraWidth/2,cameraHeight/2);
- rect = false;
-
- loadGUI();
-
- thread = new Thread(this);
- thread.start();
- playing = true;
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- private void loadGUI(){
- setTitle("Video Sample - Filters");
- // Labels
- labelCurrentPlugin = new JLabel("Current plug-in: none");
- labelFPS = new JLabel("FPS: ");
-
- // Buttons
- ButtonHandler l_handler = new ButtonHandler();
- buttonPlayStop = new JButton("Stop");
- buttonNormal = new JButton("Normal");
- buttonPluginGray = new JButton("Gray Scale");
- buttonPluginSepia = new JButton("Sepia");
- buttonPluginInvert = new JButton("Invert Colors");
- buttonPluginPixelize = new JButton("Pixelize");
- buttonThresholding = new JButton("Thresholding");
- buttonPluginHalftone = new JButton("Halftone");
- buttonPluginMinimum = new JButton("Minimum");
- buttonPluginMaximum = new JButton("Maximum");
- buttonPluginFlip = new JButton("Flip");
- buttonPluginTelevision = new JButton("Television");
- buttonPluginEdgeDetector = new JButton("Edge Detector");
- buttonPluginDifference = new JButton("Difference");
- buttonRect = new JButton("Create Rect");
-
- buttonPlayStop.addActionListener(l_handler);
- buttonPluginGray.addActionListener(l_handler);
- buttonNormal.addActionListener(l_handler);
- buttonPluginSepia.addActionListener(l_handler);
- buttonPluginInvert.addActionListener(l_handler);
- buttonPluginPixelize.addActionListener(l_handler);
- buttonThresholding.addActionListener(l_handler);
- buttonPluginHalftone.addActionListener(l_handler);
- buttonPluginMinimum.addActionListener(l_handler);
- buttonPluginMaximum.addActionListener(l_handler);
- buttonPluginFlip.addActionListener(l_handler);
- buttonPluginTelevision.addActionListener(l_handler);
- buttonPluginEdgeDetector.addActionListener(l_handler);
- buttonPluginDifference.addActionListener(l_handler);
- buttonRect.addActionListener(l_handler);
-
- // Panels
- panelButton = new JPanel();
- panelButton.add(buttonRect);
- panelButton.add(buttonPlayStop);
-
- panelWest = new JPanel();
- panelWest.setLayout(new GridLayout(15,1));
- panelWest.add(buttonNormal);
- panelWest.add(buttonPluginGray);
- panelWest.add(buttonPluginSepia);
- panelWest.add(buttonPluginInvert);
- panelWest.add(buttonPluginPixelize);
- panelWest.add(buttonThresholding);
- panelWest.add(buttonPluginHalftone);
- panelWest.add(buttonPluginMinimum);
- panelWest.add(buttonPluginMaximum);
- panelWest.add(buttonPluginFlip);
- panelWest.add(buttonPluginTelevision);
- panelWest.add(buttonPluginEdgeDetector);
- panelWest.add(buttonPluginDifference);
-
- panelLabels = new JPanel(new FlowLayout(FlowLayout.LEFT));
- panelLabels.add(labelFPS);
- panelLabels.add(labelCurrentPlugin);
-
- panelCenter = new JPanel(new BorderLayout());
- panelCenter.add(videoPanel, BorderLayout.NORTH);
- panelCenter.add(panelLabels, BorderLayout.CENTER);
- panelCenter.add(panelButton, BorderLayout.SOUTH);
-
-
- Container container = getContentPane();
- container.setLayout(new BorderLayout());
- container.add(panelCenter, BorderLayout.CENTER);
- container.add(panelWest, BorderLayout.WEST);
-
- setSize(cameraWidth+125,cameraHeight+85);
- setResizable(false);
- setVisible(true);
- }
-
- public void run(){
- long time = System.currentTimeMillis();
- int ticks=0;
-
- try{
- while(true){
- if(playing)
- {
- ticks++;
-
- if(System.currentTimeMillis() - time > 1000){
- labelFPS.setText("FPS: "+ticks+" ");
- ticks=0;
- time = System.currentTimeMillis();
- }
-
- imageIn = videoInterface.getFrame();
- MarvinImage.copyColorArray(imageIn, imageOut);
-
- if(pluginImage == null || rect){
- MarvinImage.copyColorArray(imageIn, imageOut);
- }
-
- if(pluginImage != null){
- pluginImage.process(imageIn, imageOut, null, imageMask, false);
- }
- imageOut.update();
- videoPanel.setImage(imageOut);
- }
- }
- }
- catch(MarvinVideoInterfaceException e){
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- VideoFilters l_vs = new VideoFilters();
- l_vs.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
- private class ButtonHandler implements ActionListener{
- public void actionPerformed(ActionEvent a_event){
- if(a_event.getSource() == buttonPlayStop){
- if(playing){
- playing = false;
- buttonPlayStop.setText("Play");
- }
- else{
- playing = true;
- buttonPlayStop.setText("Stop");
- }
- }
- else if(a_event.getSource() == buttonNormal){
- pluginImage = null;
- labelCurrentPlugin.setText("Current plug-in: none");
- }
- else if(a_event.getSource() == buttonPluginGray){
- pluginImage = new GrayScale();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Gray Scale");
- }
- else if(a_event.getSource() == buttonPluginSepia){
- pluginImage = new Sepia();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Sepia");
- }
- else if(a_event.getSource() == buttonPluginInvert){
- pluginImage = new Invert();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Negative");
- }
- else if(a_event.getSource() == buttonPluginPixelize){
- pluginImage = new Pixelize();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Pixelize");
- }
- else if(a_event.getSource() == buttonThresholding){
- pluginImage = new Thresholding();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Thresholding");
- }
- else if(a_event.getSource() == buttonPluginHalftone){
- pluginImage = new Dithering();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Halftone");
- }
- else if(a_event.getSource() == buttonPluginMinimum){
- pluginImage = new Minimum();
- pluginImage.load();
- pluginImage.setAttribute("size", 2);
- labelCurrentPlugin.setText("Current plug-in: Minimum");
- }
- else if(a_event.getSource() == buttonPluginMaximum){
- pluginImage = new Maximum();
- pluginImage.load();
- pluginImage.setAttribute("size", 2);
- labelCurrentPlugin.setText("Current plug-in: Maximum");
- }
- else if(a_event.getSource() == buttonPluginFlip){
- pluginImage = new Flip();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Flip");
- }
- else if(a_event.getSource() == buttonPluginTelevision){
- pluginImage = new Television();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Television");
- }
- else if(a_event.getSource() == buttonPluginEdgeDetector){
- pluginImage = new EdgeDetector();
- pluginImage.load();
- labelCurrentPlugin.setText("Current plug-in: Edge Detector");
- }
- else if(a_event.getSource() == buttonPluginDifference){
- pluginImage = new DifferenceColor();
- pluginImage.load();
- pluginImage.setAttribute("comparisonImage", imageLastFrame);
- labelCurrentPlugin.setText("Current plug-in: Difference");
- }
- else if(a_event.getSource() == buttonRect){
- if(rect){
- buttonRect.setText("Create Mask");
- imageMask = MarvinImageMask.NULL_MASK;
- }
- else{
- buttonRect.setText("Remove Mask");
- imageMask = imageMaskRect;
- }
- rect = !rect;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/pom.xml b/pom.xml
similarity index 64%
rename from marvinproject/dev/MarvinFramework/pom.xml
rename to pom.xml
index f959925..fcfdc9a 100644
--- a/marvinproject/dev/MarvinFramework/pom.xml
+++ b/pom.xml
@@ -1,36 +1,35 @@
4.0.0
- MarvinFramework
- MarvinFramework
- 1
-
-
-
-
- org.bytedeco
- javacv-platform
- 1.3
-
-
+ net.marvinproject
+ marvin-framework
+ 2
+
+
- src
-
-
- src
-
- **/*.java
-
-
-
+ src/main/java
maven-compiler-plugin
3.1
- 1.7
- 1.7
+ 1.8
+ 1.8
+
+
+
+
+ org.bytedeco
+ javacv-platform
+ 1.3
+
+
+ junit
+ junit
+ 4.7
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/MarvinDefinitions.java b/src/main/java/net/marvinproject/framework/MarvinDefinitions.java
similarity index 91%
rename from marvinproject/dev/MarvinFramework/src/marvin/MarvinDefinitions.java
rename to src/main/java/net/marvinproject/framework/MarvinDefinitions.java
index c199311..3127575 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/MarvinDefinitions.java
+++ b/src/main/java/net/marvinproject/framework/MarvinDefinitions.java
@@ -9,10 +9,9 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin;
+package net.marvinproject.framework;
public class MarvinDefinitions{
-
public static String PLUGIN_IMAGE_PATH = "./marvin/plugins/image/";
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/color/MarvinColor.java b/src/main/java/net/marvinproject/framework/color/MarvinColor.java
similarity index 99%
rename from marvinproject/dev/MarvinFramework/src/marvin/color/MarvinColor.java
rename to src/main/java/net/marvinproject/framework/color/MarvinColor.java
index f6cbb15..da2d9d9 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/color/MarvinColor.java
+++ b/src/main/java/net/marvinproject/framework/color/MarvinColor.java
@@ -1,4 +1,4 @@
-package marvin.color;
+package net.marvinproject.framework.color;
import java.util.HashMap;
import java.util.Map;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/color/MarvinColorModelConverter.java b/src/main/java/net/marvinproject/framework/color/MarvinColorModelConverter.java
similarity index 97%
rename from marvinproject/dev/MarvinFramework/src/marvin/color/MarvinColorModelConverter.java
rename to src/main/java/net/marvinproject/framework/color/MarvinColorModelConverter.java
index c58b3db..f519506 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/color/MarvinColorModelConverter.java
+++ b/src/main/java/net/marvinproject/framework/color/MarvinColorModelConverter.java
@@ -9,9 +9,9 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.color;
+package net.marvinproject.framework.color;
-import marvin.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImage;
/**
* Image color model conversions.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinAttributesPanel.java b/src/main/java/net/marvinproject/framework/gui/MarvinAttributesPanel.java
similarity index 97%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinAttributesPanel.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinAttributesPanel.java
index a6ac15e..bd97f93 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinAttributesPanel.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinAttributesPanel.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
@@ -35,9 +35,9 @@
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-import marvin.gui.MarvinPluginWindowComponent.ComponentType;
-import marvin.gui.component.MarvinMatrixPanel;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.gui.MarvinPluginWindowComponent.ComponentType;
+import net.marvinproject.framework.gui.component.MarvinMatrixPanel;
+import net.marvinproject.framework.util.MarvinAttributes;
public class MarvinAttributesPanel extends Box{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinEditableImagePanel.java b/src/main/java/net/marvinproject/framework/gui/MarvinEditableImagePanel.java
similarity index 94%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinEditableImagePanel.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinEditableImagePanel.java
index 173edf3..f66da71 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinEditableImagePanel.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinEditableImagePanel.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import java.awt.Graphics;
import java.awt.MouseInfo;
@@ -17,9 +17,9 @@
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinToolPlugin;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImageMask;
+import net.marvinproject.framework.plugin.MarvinToolPlugin;
/**
* Panel to display and edit MarvinImages.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinFilterWindow.java b/src/main/java/net/marvinproject/framework/gui/MarvinFilterWindow.java
similarity index 95%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinFilterWindow.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinFilterWindow.java
index 32cdf4d..a165636 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinFilterWindow.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinFilterWindow.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
@@ -22,10 +22,10 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinImagePlugin;
-import marvin.plugin.MarvinPlugin;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImageMask;
+import net.marvinproject.framework.plugin.MarvinImagePlugin;
+import net.marvinproject.framework.plugin.MarvinPlugin;
/**
* Generic Window for filters. This window includes thumbnail, preview and reset support.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinImagePanel.java b/src/main/java/net/marvinproject/framework/gui/MarvinImagePanel.java
similarity index 94%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinImagePanel.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinImagePanel.java
index 44cfe18..4fdb067 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinImagePanel.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinImagePanel.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import java.awt.Dimension;
import java.awt.Graphics;
@@ -17,8 +17,8 @@
import javax.swing.JPanel;
-import marvin.image.MarvinImage;
-import marvin.util.MarvinPluginHistory;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.util.MarvinPluginHistory;
/**
* Panel to display MarvinImages.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinPluginWindow.java b/src/main/java/net/marvinproject/framework/gui/MarvinPluginWindow.java
similarity index 97%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinPluginWindow.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinPluginWindow.java
index f59bbd1..d314ad9 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinPluginWindow.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinPluginWindow.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import java.awt.BorderLayout;
import java.awt.Container;
@@ -33,9 +33,9 @@
import javax.swing.JTextField;
import javax.swing.SwingConstants;
-import marvin.gui.MarvinPluginWindowComponent.ComponentType;
-import marvin.gui.component.MarvinMatrixPanel;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.gui.MarvinPluginWindowComponent.ComponentType;
+import net.marvinproject.framework.gui.component.MarvinMatrixPanel;
+import net.marvinproject.framework.util.MarvinAttributes;
/**
* Generic Window for plug-ins. This window supports integrating Swing components
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinPluginWindowComponent.java b/src/main/java/net/marvinproject/framework/gui/MarvinPluginWindowComponent.java
similarity index 95%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinPluginWindowComponent.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinPluginWindowComponent.java
index ca23f4a..9bad3a3 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinPluginWindowComponent.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinPluginWindowComponent.java
@@ -9,11 +9,11 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import javax.swing.JComponent;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.util.MarvinAttributes;
/**
* Generic component for PluginWindow.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinToolPanel.java b/src/main/java/net/marvinproject/framework/gui/MarvinToolPanel.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinToolPanel.java
rename to src/main/java/net/marvinproject/framework/gui/MarvinToolPanel.java
index 81f9521..40be5f5 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/MarvinToolPanel.java
+++ b/src/main/java/net/marvinproject/framework/gui/MarvinToolPanel.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui;
+package net.marvinproject.framework.gui;
import java.awt.Cursor;
import java.awt.Dimension;
@@ -22,7 +22,7 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
-import marvin.plugin.MarvinToolPlugin;
+import net.marvinproject.framework.plugin.MarvinToolPlugin;
public class MarvinToolPanel extends JPanel{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/gui/component/MarvinMatrixPanel.java b/src/main/java/net/marvinproject/framework/gui/component/MarvinMatrixPanel.java
similarity index 97%
rename from marvinproject/dev/MarvinFramework/src/marvin/gui/component/MarvinMatrixPanel.java
rename to src/main/java/net/marvinproject/framework/gui/component/MarvinMatrixPanel.java
index 6ac5834..e5788cc 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/gui/component/MarvinMatrixPanel.java
+++ b/src/main/java/net/marvinproject/framework/gui/component/MarvinMatrixPanel.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.gui.component;
+package net.marvinproject.framework.gui.component;
import java.awt.FlowLayout;
import java.awt.GridLayout;
diff --git a/src/main/java/net/marvinproject/framework/gui/package.html b/src/main/java/net/marvinproject/framework/gui/package.html
new file mode 100644
index 0000000..16d3e03
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/gui/package.html
@@ -0,0 +1,5 @@
+
+
+Provides classes to manipulate interface components.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinBlob.java b/src/main/java/net/marvinproject/framework/image/MarvinBlob.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinBlob.java
rename to src/main/java/net/marvinproject/framework/image/MarvinBlob.java
index 02256e8..4a889fe 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinBlob.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinBlob.java
@@ -1,4 +1,4 @@
-package marvin.image;
+package net.marvinproject.framework.image;
public class MarvinBlob {
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinBlobSegment.java b/src/main/java/net/marvinproject/framework/image/MarvinBlobSegment.java
similarity index 89%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinBlobSegment.java
rename to src/main/java/net/marvinproject/framework/image/MarvinBlobSegment.java
index deb0082..4df34eb 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinBlobSegment.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinBlobSegment.java
@@ -1,4 +1,4 @@
-package marvin.image;
+package net.marvinproject.framework.image;
public class MarvinBlobSegment {
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinContour.java b/src/main/java/net/marvinproject/framework/image/MarvinContour.java
similarity index 83%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinContour.java
rename to src/main/java/net/marvinproject/framework/image/MarvinContour.java
index 60fd320..8ff9093 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinContour.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinContour.java
@@ -1,9 +1,9 @@
-package marvin.image;
+package net.marvinproject.framework.image;
import java.util.ArrayList;
import java.util.List;
-import marvin.math.Point;
+import net.marvinproject.framework.math.Point;
public class MarvinContour {
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImage.java b/src/main/java/net/marvinproject/framework/image/MarvinImage.java
similarity index 99%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImage.java
rename to src/main/java/net/marvinproject/framework/image/MarvinImage.java
index 5960491..2f55ff8 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImage.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinImage.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.image;
+package net.marvinproject.framework.image;
import java.awt.Color;
import java.awt.Graphics2D;
@@ -17,7 +17,7 @@
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
-import marvin.color.MarvinColorModelConverter;
+import net.marvinproject.framework.color.MarvinColorModelConverter;
/**
* Image object with many operations. This class is the image
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImageMap.java b/src/main/java/net/marvinproject/framework/image/MarvinImageMap.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImageMap.java
rename to src/main/java/net/marvinproject/framework/image/MarvinImageMap.java
index 22b262c..c90ebcf 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImageMap.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinImageMap.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.image;
+package net.marvinproject.framework.image;
/**
* Map with an id/class/weight for earch pixel
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImageMask.java b/src/main/java/net/marvinproject/framework/image/MarvinImageMask.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImageMask.java
rename to src/main/java/net/marvinproject/framework/image/MarvinImageMask.java
index f5cb431..7d6cf83 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinImageMask.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinImageMask.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.image;
+package net.marvinproject.framework.image;
/**
* Mask indicating what pixels must be processed.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinSegment.java b/src/main/java/net/marvinproject/framework/image/MarvinSegment.java
similarity index 95%
rename from marvinproject/dev/MarvinFramework/src/marvin/image/MarvinSegment.java
rename to src/main/java/net/marvinproject/framework/image/MarvinSegment.java
index 697da65..67b0184 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/image/MarvinSegment.java
+++ b/src/main/java/net/marvinproject/framework/image/MarvinSegment.java
@@ -1,4 +1,4 @@
-package marvin.image;
+package net.marvinproject.framework.image;
import java.awt.Point;
import java.util.List;
diff --git a/src/main/java/net/marvinproject/framework/image/package.html b/src/main/java/net/marvinproject/framework/image/package.html
new file mode 100644
index 0000000..5bc2604
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/image/package.html
@@ -0,0 +1,5 @@
+
+
+Provides classes to manipulate images.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/io/MarvinImageIO.java b/src/main/java/net/marvinproject/framework/io/MarvinImageIO.java
similarity index 95%
rename from marvinproject/dev/MarvinFramework/src/marvin/io/MarvinImageIO.java
rename to src/main/java/net/marvinproject/framework/io/MarvinImageIO.java
index 8fc6b82..a5735e8 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/io/MarvinImageIO.java
+++ b/src/main/java/net/marvinproject/framework/io/MarvinImageIO.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.io;
+package net.marvinproject.framework.io;
import java.awt.image.BufferedImage;
import java.io.File;
@@ -21,8 +21,8 @@
import javax.imageio.event.IIOReadWarningListener;
import javax.imageio.stream.ImageInputStream;
-import marvin.image.MarvinImage;
-import marvin.util.MarvinErrorHandler;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.util.MarvinErrorHandler;
/**
* Methods to load and save images.
diff --git a/src/main/java/net/marvinproject/framework/io/package.html b/src/main/java/net/marvinproject/framework/io/package.html
new file mode 100644
index 0000000..f125c5c
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/io/package.html
@@ -0,0 +1,5 @@
+
+
+Input/Ouput operations
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/machinelearning/decisiontree/DecisionTree.java b/src/main/java/net/marvinproject/framework/machinelearning/decisiontree/DecisionTree.java
similarity index 81%
rename from marvinproject/dev/MarvinFramework/src/marvin/machinelearning/decisiontree/DecisionTree.java
rename to src/main/java/net/marvinproject/framework/machinelearning/decisiontree/DecisionTree.java
index 1167a77..7037908 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/machinelearning/decisiontree/DecisionTree.java
+++ b/src/main/java/net/marvinproject/framework/machinelearning/decisiontree/DecisionTree.java
@@ -1,9 +1,11 @@
-package marvin.machinelearning.decisiontree;
+package net.marvinproject.framework.machinelearning.decisiontree;
+import java.io.File;
+import java.net.URI;
import java.util.Map;
-import marvin.util.MarvinFileUtils;
-import marvin.util.MarvinStringParser;
+import net.marvinproject.framework.util.MarvinFileUtils;
+import net.marvinproject.framework.util.MarvinStringParser;
public class DecisionTree {
@@ -55,7 +57,7 @@ private void parseNode(DecisionTreeNode parent, MarvinStringParser parser, int l
parser.incPosition(1);
String cond = parser.getNext(new char[]{' ', '\n', ':'});
parser.incPosition(1);
- String val = parser.getNext(new char[]{' ', '\n', ':'});
+ String val = parser.getNext(new char[]{'\n', ':'});
if(cond == null || cond.equals("")){
return;
@@ -100,4 +102,10 @@ private static boolean isStringNumeric(String str) {
}
return true;
}
+
+ public static void main(String[] args) {
+ File file = new File(URI.create("file:///onex/mlmodels/ingredient_classification_2.txt"));
+ DecisionTree tree = new DecisionTree();
+ tree.parseWeka(file.getAbsolutePath());
+ }
}
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/machinelearning/decisiontree/DecisionTreeNode.java b/src/main/java/net/marvinproject/framework/machinelearning/decisiontree/DecisionTreeNode.java
similarity index 89%
rename from marvinproject/dev/MarvinFramework/src/marvin/machinelearning/decisiontree/DecisionTreeNode.java
rename to src/main/java/net/marvinproject/framework/machinelearning/decisiontree/DecisionTreeNode.java
index 7ca2ac3..5a51583 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/machinelearning/decisiontree/DecisionTreeNode.java
+++ b/src/main/java/net/marvinproject/framework/machinelearning/decisiontree/DecisionTreeNode.java
@@ -1,4 +1,4 @@
-package marvin.machinelearning.decisiontree;
+package net.marvinproject.framework.machinelearning.decisiontree;
import java.util.ArrayList;
@@ -44,7 +44,7 @@ private CONDITION getCondition(String cond){
if("<=".equals(cond)) return CONDITION.LTE;
if(">".equals(cond)) return CONDITION.GT;
if(">=".equals(cond)) return CONDITION.GTE;
- if("==".equals(cond)) return CONDITION.EQ;
+ if("=".equals(cond)) return CONDITION.EQ;
if("!=".equals(cond)) return CONDITION.NEQ;
return null;
}
@@ -122,10 +122,15 @@ public boolean eval(String attr, Map map){
Object sValue = map.get(attr);
+ if(sValue == null){
+ throw new RuntimeException(attr+" is null");
+ }
+
if(isNumber(sValue)){
return evalNumeric(attr, sValue);
+ } else{
+ return evalText(attr, sValue);
}
- return false;
}
private boolean evalNumeric(String attr, Object sValue){
@@ -144,6 +149,13 @@ private boolean evalNumeric(String attr, Object sValue){
return false;
}
+ private boolean evalText(String attr, Object sValue){
+ String s1 = sValue.toString().trim();
+ String s2 = ((String)value).trim();
+
+ return s1.equals(s2);
+ }
+
private Double getNumeric(Object sValue){
if(sValue.getClass() == Double.class){
return ((Double)sValue);
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/math/MarvinMath.java b/src/main/java/net/marvinproject/framework/math/MarvinMath.java
similarity index 97%
rename from marvinproject/dev/MarvinFramework/src/marvin/math/MarvinMath.java
rename to src/main/java/net/marvinproject/framework/math/MarvinMath.java
index 65db3e7..565e470 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/math/MarvinMath.java
+++ b/src/main/java/net/marvinproject/framework/math/MarvinMath.java
@@ -1,4 +1,4 @@
-package marvin.math;
+package net.marvinproject.framework.math;
import java.util.List;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/math/Point.java b/src/main/java/net/marvinproject/framework/math/Point.java
similarity index 87%
rename from marvinproject/dev/MarvinFramework/src/marvin/math/Point.java
rename to src/main/java/net/marvinproject/framework/math/Point.java
index ace4d26..f8e1620 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/math/Point.java
+++ b/src/main/java/net/marvinproject/framework/math/Point.java
@@ -1,4 +1,4 @@
-package marvin.math;
+package net.marvinproject.framework.math;
public class Point {
diff --git a/src/main/java/net/marvinproject/framework/package.html b/src/main/java/net/marvinproject/framework/package.html
new file mode 100644
index 0000000..6b516a5
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/package.html
@@ -0,0 +1,5 @@
+
+
+Framework´s root package.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceEntry.java b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceEntry.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceEntry.java
rename to src/main/java/net/marvinproject/framework/performance/MarvinPerformanceEntry.java
index 82eeac2..2519a34 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceEntry.java
+++ b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceEntry.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.performance;
+package net.marvinproject.framework.performance;
import java.util.LinkedList;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceEvent.java b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceEvent.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceEvent.java
rename to src/main/java/net/marvinproject/framework/performance/MarvinPerformanceEvent.java
index 8b0fe2b..b10e096 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceEvent.java
+++ b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceEvent.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.performance;
+package net.marvinproject.framework.performance;
/**
* Algorithms can be divided in events, each event store your own attributes for future analysis.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceMeter.java b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceMeter.java
similarity index 99%
rename from marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceMeter.java
rename to src/main/java/net/marvinproject/framework/performance/MarvinPerformanceMeter.java
index be27fd0..ea52285 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceMeter.java
+++ b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceMeter.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.performance;
+package net.marvinproject.framework.performance;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceRegistry.java b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceRegistry.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceRegistry.java
rename to src/main/java/net/marvinproject/framework/performance/MarvinPerformanceRegistry.java
index 042823b..1aa1a1c 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceRegistry.java
+++ b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceRegistry.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.performance;
+package net.marvinproject.framework.performance;
import java.util.LinkedList;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceWindow.java b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceWindow.java
similarity index 95%
rename from marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceWindow.java
rename to src/main/java/net/marvinproject/framework/performance/MarvinPerformanceWindow.java
index e1b4162..182877f 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/performance/MarvinPerformanceWindow.java
+++ b/src/main/java/net/marvinproject/framework/performance/MarvinPerformanceWindow.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.performance;
+package net.marvinproject.framework.performance;
import java.awt.BorderLayout;
import java.awt.Color;
@@ -21,8 +21,8 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
-import marvin.statistic.MarvinBarChart;
-import marvin.statistic.MarvinBarChartEntry;
+import net.marvinproject.framework.statistic.MarvinBarChart;
+import net.marvinproject.framework.statistic.MarvinBarChartEntry;
/**
* Window to show statistic information. The events attributes and
diff --git a/src/main/java/net/marvinproject/framework/performance/package.html b/src/main/java/net/marvinproject/framework/performance/package.html
new file mode 100644
index 0000000..915d61a
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/performance/package.html
@@ -0,0 +1,5 @@
+
+
+Provide classes to measure, analyze and compare plug-ins performances.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractAlgorithmPlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractAlgorithmPlugin.java
similarity index 72%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractAlgorithmPlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinAbstractAlgorithmPlugin.java
index ebbb300..d137233 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractAlgorithmPlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractAlgorithmPlugin.java
@@ -1,4 +1,4 @@
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
public abstract class MarvinAbstractAlgorithmPlugin extends MarvinAbstractPlugin implements MarvinAlgorithmPlugin{
}
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractImagePlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractImagePlugin.java
similarity index 87%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractImagePlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinAbstractImagePlugin.java
index b7e6d16..58da785 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractImagePlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractImagePlugin.java
@@ -9,14 +9,14 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
import java.util.List;
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.gui.MarvinImagePanel;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImageMask;
+import net.marvinproject.framework.util.MarvinAttributes;
public abstract class MarvinAbstractImagePlugin extends MarvinAbstractPlugin implements MarvinImagePlugin
{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractPlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractPlugin.java
similarity index 94%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractPlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinAbstractPlugin.java
index 18c620b..c985c39 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractPlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractPlugin.java
@@ -9,9 +9,9 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.util.MarvinAttributes;
public abstract class MarvinAbstractPlugin implements MarvinPlugin{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractToolPlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractToolPlugin.java
similarity index 90%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractToolPlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinAbstractToolPlugin.java
index a551f07..bece3de 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAbstractToolPlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinAbstractToolPlugin.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
import java.awt.Image;
import java.awt.Point;
@@ -18,8 +18,8 @@
import javax.swing.ImageIcon;
-import marvin.gui.MarvinImagePanel;
-import marvin.gui.MarvinPluginWindow;
+import net.marvinproject.framework.gui.MarvinImagePanel;
+import net.marvinproject.framework.gui.MarvinPluginWindow;
public abstract class MarvinAbstractToolPlugin extends MarvinAbstractPlugin implements MarvinToolPlugin{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAlgorithmPlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinAlgorithmPlugin.java
similarity index 51%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAlgorithmPlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinAlgorithmPlugin.java
index 80aefc0..669f07d 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinAlgorithmPlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinAlgorithmPlugin.java
@@ -1,6 +1,6 @@
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.util.MarvinAttributes;
public interface MarvinAlgorithmPlugin extends MarvinPlugin
{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinImagePlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinImagePlugin.java
similarity index 84%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinImagePlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinImagePlugin.java
index 9a186d7..5d929dd 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinImagePlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinImagePlugin.java
@@ -9,15 +9,15 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
import java.util.List;
-import marvin.gui.MarvinAttributesPanel;
-import marvin.gui.MarvinImagePanel;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.gui.MarvinAttributesPanel;
+import net.marvinproject.framework.gui.MarvinImagePanel;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImageMask;
+import net.marvinproject.framework.util.MarvinAttributes;
public interface MarvinImagePlugin extends MarvinPlugin
{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinPlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinPlugin.java
similarity index 94%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinPlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinPlugin.java
index 8984d58..f14c975 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinPlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinPlugin.java
@@ -9,9 +9,9 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.util.MarvinAttributes;
/**
* Generic Marvin Plug-in. All application plug-ins must be implement this interface. Currently,
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinToolPlugin.java b/src/main/java/net/marvinproject/framework/plugin/MarvinToolPlugin.java
similarity index 84%
rename from marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinToolPlugin.java
rename to src/main/java/net/marvinproject/framework/plugin/MarvinToolPlugin.java
index 163f6c8..2fa0ca4 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/plugin/MarvinToolPlugin.java
+++ b/src/main/java/net/marvinproject/framework/plugin/MarvinToolPlugin.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.plugin;
+package net.marvinproject.framework.plugin;
import java.awt.Graphics;
import java.awt.Image;
@@ -17,9 +17,9 @@
import javax.swing.ImageIcon;
-import marvin.gui.MarvinPluginWindow;
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
+import net.marvinproject.framework.gui.MarvinPluginWindow;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImageMask;
public interface MarvinToolPlugin extends MarvinPlugin{
diff --git a/src/main/java/net/marvinproject/framework/plugin/package.html b/src/main/java/net/marvinproject/framework/plugin/package.html
new file mode 100644
index 0000000..a1863b6
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/plugin/package.html
@@ -0,0 +1,5 @@
+
+
+Provides classes and interfaces to create plug-ins.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinBarChart.java b/src/main/java/net/marvinproject/framework/statistic/MarvinBarChart.java
similarity index 99%
rename from marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinBarChart.java
rename to src/main/java/net/marvinproject/framework/statistic/MarvinBarChart.java
index 620bf7a..6b26569 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinBarChart.java
+++ b/src/main/java/net/marvinproject/framework/statistic/MarvinBarChart.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.statistic;
+package net.marvinproject.framework.statistic;
import java.awt.Color;
import java.awt.Graphics;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinBarChartEntry.java b/src/main/java/net/marvinproject/framework/statistic/MarvinBarChartEntry.java
similarity index 94%
rename from marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinBarChartEntry.java
rename to src/main/java/net/marvinproject/framework/statistic/MarvinBarChartEntry.java
index 5f11beb..c3ac0e5 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinBarChartEntry.java
+++ b/src/main/java/net/marvinproject/framework/statistic/MarvinBarChartEntry.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.statistic;
+package net.marvinproject.framework.statistic;
import java.awt.Color;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinHistogram.java b/src/main/java/net/marvinproject/framework/statistic/MarvinHistogram.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinHistogram.java
rename to src/main/java/net/marvinproject/framework/statistic/MarvinHistogram.java
index bb16ff8..ca9d55f 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinHistogram.java
+++ b/src/main/java/net/marvinproject/framework/statistic/MarvinHistogram.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.statistic;
+package net.marvinproject.framework.statistic;
import java.awt.Color;
import java.awt.Graphics;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinHistogramEntry.java b/src/main/java/net/marvinproject/framework/statistic/MarvinHistogramEntry.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinHistogramEntry.java
rename to src/main/java/net/marvinproject/framework/statistic/MarvinHistogramEntry.java
index e1b8bd9..d54301c 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/statistic/MarvinHistogramEntry.java
+++ b/src/main/java/net/marvinproject/framework/statistic/MarvinHistogramEntry.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.statistic;
+package net.marvinproject.framework.statistic;
import java.awt.Color;
diff --git a/src/main/java/net/marvinproject/framework/statistic/package.html b/src/main/java/net/marvinproject/framework/statistic/package.html
new file mode 100644
index 0000000..7d040af
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/statistic/package.html
@@ -0,0 +1,5 @@
+
+
+Provides classes to create statistical charts.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/test/MarvinTestCase.java b/src/main/java/net/marvinproject/framework/test/MarvinTestCase.java
similarity index 91%
rename from marvinproject/dev/MarvinFramework/src/marvin/test/MarvinTestCase.java
rename to src/main/java/net/marvinproject/framework/test/MarvinTestCase.java
index a21221a..6b84949 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/test/MarvinTestCase.java
+++ b/src/main/java/net/marvinproject/framework/test/MarvinTestCase.java
@@ -9,13 +9,13 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.test;
+package net.marvinproject.framework.test;
import java.util.Arrays;
import junit.framework.TestCase;
-import marvin.image.MarvinImage;
-import marvin.util.MarvinAttributes;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.util.MarvinAttributes;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThread.java b/src/main/java/net/marvinproject/framework/thread/MarvinThread.java
similarity index 86%
rename from marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThread.java
rename to src/main/java/net/marvinproject/framework/thread/MarvinThread.java
index 020ae20..7afea69 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThread.java
+++ b/src/main/java/net/marvinproject/framework/thread/MarvinThread.java
@@ -9,14 +9,12 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.thread;
+package net.marvinproject.framework.thread;
-import com.sun.xml.internal.bind.v2.TODO;
-
-import marvin.image.MarvinImage;
-import marvin.image.MarvinImageMask;
-import marvin.plugin.MarvinPlugin;
-import marvin.plugin.MarvinImagePlugin;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImageMask;
+import net.marvinproject.framework.plugin.MarvinImagePlugin;
+import net.marvinproject.framework.plugin.MarvinPlugin;
/**
* Thread to process a segment or an entire image.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThreadEvent.java b/src/main/java/net/marvinproject/framework/thread/MarvinThreadEvent.java
similarity index 87%
rename from marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThreadEvent.java
rename to src/main/java/net/marvinproject/framework/thread/MarvinThreadEvent.java
index 076babf..05044a6 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThreadEvent.java
+++ b/src/main/java/net/marvinproject/framework/thread/MarvinThreadEvent.java
@@ -9,9 +9,9 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.thread;
+package net.marvinproject.framework.thread;
-import marvin.plugin.MarvinPlugin;
+import net.marvinproject.framework.plugin.MarvinPlugin;
/**
* Thread Event.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThreadListener.java b/src/main/java/net/marvinproject/framework/thread/MarvinThreadListener.java
similarity index 90%
rename from marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThreadListener.java
rename to src/main/java/net/marvinproject/framework/thread/MarvinThreadListener.java
index 627c992..da764c4 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/thread/MarvinThreadListener.java
+++ b/src/main/java/net/marvinproject/framework/thread/MarvinThreadListener.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.thread;
+package net.marvinproject.framework.thread;
/**
* Interface to listen thread events.
diff --git a/src/main/java/net/marvinproject/framework/thread/package.html b/src/main/java/net/marvinproject/framework/thread/package.html
new file mode 100644
index 0000000..3420202
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/thread/package.html
@@ -0,0 +1,5 @@
+
+
+Provides classes and interfaces to manipulate images using multiple threads.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/ConverterUtil.java b/src/main/java/net/marvinproject/framework/util/ConverterUtil.java
similarity index 97%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/ConverterUtil.java
rename to src/main/java/net/marvinproject/framework/util/ConverterUtil.java
index 61b4983..9060ec0 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/ConverterUtil.java
+++ b/src/main/java/net/marvinproject/framework/util/ConverterUtil.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
@author Anshul Katta
*/
-package marvin.util;
+package net.marvinproject.framework.util;
import java.awt.image.BufferedImage;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinAttributes.java b/src/main/java/net/marvinproject/framework/util/MarvinAttributes.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinAttributes.java
rename to src/main/java/net/marvinproject/framework/util/MarvinAttributes.java
index cdf017b..1a21cdc 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinAttributes.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinAttributes.java
@@ -9,11 +9,11 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.util;
+package net.marvinproject.framework.util;
import java.util.LinkedHashMap;
-import marvin.plugin.MarvinPlugin;
+import net.marvinproject.framework.plugin.MarvinPlugin;
/**
* This class stores and manages plug-ins attributes and either
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinBoundingBox.java b/src/main/java/net/marvinproject/framework/util/MarvinBoundingBox.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinBoundingBox.java
rename to src/main/java/net/marvinproject/framework/util/MarvinBoundingBox.java
index 99e06ee..6f92d40 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinBoundingBox.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinBoundingBox.java
@@ -1,6 +1,6 @@
-package marvin.util;
+package net.marvinproject.framework.util;
-import marvin.math.MarvinMath;
+import net.marvinproject.framework.math.MarvinMath;
public class MarvinBoundingBox {
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinErrorHandler.java b/src/main/java/net/marvinproject/framework/util/MarvinErrorHandler.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinErrorHandler.java
rename to src/main/java/net/marvinproject/framework/util/MarvinErrorHandler.java
index 4185ff4..6ee0078 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinErrorHandler.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinErrorHandler.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.util;
+package net.marvinproject.framework.util;
import java.security.InvalidParameterException;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinFileChooser.java b/src/main/java/net/marvinproject/framework/util/MarvinFileChooser.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinFileChooser.java
rename to src/main/java/net/marvinproject/framework/util/MarvinFileChooser.java
index 5df9ed1..50457ff 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinFileChooser.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinFileChooser.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.util;
+package net.marvinproject.framework.util;
import java.awt.Component;
import java.io.File;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinFileUtils.java b/src/main/java/net/marvinproject/framework/util/MarvinFileUtils.java
similarity index 93%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinFileUtils.java
rename to src/main/java/net/marvinproject/framework/util/MarvinFileUtils.java
index d31f199..d104f6c 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinFileUtils.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinFileUtils.java
@@ -1,4 +1,4 @@
-package marvin.util;
+package net.marvinproject.framework.util;
import java.io.FileNotFoundException;
import java.io.IOException;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinImageUtils.java b/src/main/java/net/marvinproject/framework/util/MarvinImageUtils.java
similarity index 87%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinImageUtils.java
rename to src/main/java/net/marvinproject/framework/util/MarvinImageUtils.java
index 381e419..27e2cf1 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinImageUtils.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinImageUtils.java
@@ -1,8 +1,8 @@
-package marvin.util;
+package net.marvinproject.framework.util;
import java.awt.Color;
-import marvin.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImage;
public class MarvinImageUtils {
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinJarLoader.java b/src/main/java/net/marvinproject/framework/util/MarvinJarLoader.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinJarLoader.java
rename to src/main/java/net/marvinproject/framework/util/MarvinJarLoader.java
index 0d38aff..25e445f 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinJarLoader.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinJarLoader.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.util;
+package net.marvinproject.framework.util;
import java.io.IOException;
import java.io.InputStream;
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinPluginHistory.java b/src/main/java/net/marvinproject/framework/util/MarvinPluginHistory.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinPluginHistory.java
rename to src/main/java/net/marvinproject/framework/util/MarvinPluginHistory.java
index e15c687..64fe38c 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinPluginHistory.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinPluginHistory.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.util;
+package net.marvinproject.framework.util;
import java.awt.BorderLayout;
import java.awt.Color;
@@ -35,7 +35,7 @@
import javax.swing.ScrollPaneConstants;
import javax.swing.ScrollPaneLayout;
-import marvin.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImage;
/**
* Store all plug-ins used on an image. A strip image with all steps can be exported.
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinPluginLoader.java b/src/main/java/net/marvinproject/framework/util/MarvinPluginLoader.java
similarity index 88%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinPluginLoader.java
rename to src/main/java/net/marvinproject/framework/util/MarvinPluginLoader.java
index b786f34..3e48bac 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinPluginLoader.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinPluginLoader.java
@@ -9,11 +9,11 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.util;
+package net.marvinproject.framework.util;
-import marvin.MarvinDefinitions;
-import marvin.plugin.MarvinPlugin;
-import marvin.plugin.MarvinImagePlugin;
+import net.marvinproject.framework.MarvinDefinitions;
+import net.marvinproject.framework.plugin.MarvinImagePlugin;
+import net.marvinproject.framework.plugin.MarvinPlugin;
/**
* Load plug-ins via MarvinJarLoader
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinStringParser.java b/src/main/java/net/marvinproject/framework/util/MarvinStringParser.java
similarity index 98%
rename from marvinproject/dev/MarvinFramework/src/marvin/util/MarvinStringParser.java
rename to src/main/java/net/marvinproject/framework/util/MarvinStringParser.java
index 184a7d3..a69f193 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/util/MarvinStringParser.java
+++ b/src/main/java/net/marvinproject/framework/util/MarvinStringParser.java
@@ -1,4 +1,4 @@
-package marvin.util;
+package net.marvinproject.framework.util;
public class MarvinStringParser {
diff --git a/src/main/java/net/marvinproject/framework/util/package.html b/src/main/java/net/marvinproject/framework/util/package.html
new file mode 100644
index 0000000..522e287
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/util/package.html
@@ -0,0 +1,5 @@
+
+
+Utilities classes.
+
+
\ No newline at end of file
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/video/MarvinJavaCVAdapter.java b/src/main/java/net/marvinproject/framework/video/MarvinJavaCVAdapter.java
similarity index 96%
rename from marvinproject/dev/MarvinFramework/src/marvin/video/MarvinJavaCVAdapter.java
rename to src/main/java/net/marvinproject/framework/video/MarvinJavaCVAdapter.java
index 2cd8843..8e73cc1 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/video/MarvinJavaCVAdapter.java
+++ b/src/main/java/net/marvinproject/framework/video/MarvinJavaCVAdapter.java
@@ -9,19 +9,19 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.video;
+package net.marvinproject.framework.video;
import java.awt.image.BufferedImage;
import java.io.File;
import java.nio.ByteBuffer;
-import marvin.image.MarvinImage;
-import marvin.util.ConverterUtil;
-
import org.bytedeco.javacpp.opencv_core.IplImage;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.OpenCVFrameGrabber;
+import net.marvinproject.framework.image.MarvinImage;
+import net.marvinproject.framework.util.ConverterUtil;
+
public class MarvinJavaCVAdapter implements MarvinVideoInterface{
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/video/MarvinVideoInterface.java b/src/main/java/net/marvinproject/framework/video/MarvinVideoInterface.java
similarity index 89%
rename from marvinproject/dev/MarvinFramework/src/marvin/video/MarvinVideoInterface.java
rename to src/main/java/net/marvinproject/framework/video/MarvinVideoInterface.java
index b5adfa6..3f0e3cd 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/video/MarvinVideoInterface.java
+++ b/src/main/java/net/marvinproject/framework/video/MarvinVideoInterface.java
@@ -9,9 +9,9 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.video;
+package net.marvinproject.framework.video;
-import marvin.image.MarvinImage;
+import net.marvinproject.framework.image.MarvinImage;
public interface MarvinVideoInterface {
diff --git a/marvinproject/dev/MarvinFramework/src/marvin/video/MarvinVideoInterfaceException.java b/src/main/java/net/marvinproject/framework/video/MarvinVideoInterfaceException.java
similarity index 89%
rename from marvinproject/dev/MarvinFramework/src/marvin/video/MarvinVideoInterfaceException.java
rename to src/main/java/net/marvinproject/framework/video/MarvinVideoInterfaceException.java
index 68f4320..c358112 100644
--- a/marvinproject/dev/MarvinFramework/src/marvin/video/MarvinVideoInterfaceException.java
+++ b/src/main/java/net/marvinproject/framework/video/MarvinVideoInterfaceException.java
@@ -9,7 +9,7 @@
https://groups.google.com/forum/#!forum/marvin-project
*/
-package marvin.video;
+package net.marvinproject.framework.video;
public class MarvinVideoInterfaceException extends Exception{
diff --git a/src/main/java/net/marvinproject/framework/video/package.html b/src/main/java/net/marvinproject/framework/video/package.html
new file mode 100644
index 0000000..544e3d6
--- /dev/null
+++ b/src/main/java/net/marvinproject/framework/video/package.html
@@ -0,0 +1,5 @@
+
+
+Provides classes to manipulate capturing devices.
+
+
\ No newline at end of file