diff --git a/.classpath b/.classpath
index 74ecefc..aa4323a 100644
--- a/.classpath
+++ b/.classpath
@@ -6,7 +6,7 @@
-
+
@@ -23,5 +23,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index 99f26c0..abdea9a 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,4 @@
eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
encoding/=UTF-8
diff --git a/src/main/java/bilib/component/PanelImage.java b/src/main/java/bilib/component/PanelImage.java
index 2abb46a..5037dc7 100644
--- a/src/main/java/bilib/component/PanelImage.java
+++ b/src/main/java/bilib/component/PanelImage.java
@@ -33,6 +33,7 @@
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
+
import javax.swing.JPanel;
import resources.ImageLoader;
diff --git a/src/main/java/deconvolution/algorithm/RichardsonLucy.java b/src/main/java/deconvolution/algorithm/RichardsonLucy.java
index b7b3ef9..120c4a0 100644
--- a/src/main/java/deconvolution/algorithm/RichardsonLucy.java
+++ b/src/main/java/deconvolution/algorithm/RichardsonLucy.java
@@ -50,23 +50,108 @@ public RichardsonLucy(int iterMax) {
public RealSignal call() {
ComplexSignal H = fft.transform(h);
ComplexSignal U = new ComplexSignal("RL-U", y.nx, y.ny, y.nz);
- RealSignal x = y.duplicate();
+ RealSignal x = new RealSignal("x",y.nx,y.ny,y.nz);
RealSignal p = y.duplicate();
RealSignal u = y.duplicate();
+
+ // For vector acceleration
+ RealSignal yv_update = new RealSignal("yv_update",y.nx,y.ny,y.nz);
+ RealSignal v_vector = new RealSignal("v_vector",y.nx,y.ny,y.nz);
+ RealSignal v_vector1 = new RealSignal("v_vector",y.nx,y.ny,y.nz);
+ RealSignal xv_update = new RealSignal("xv_update",y.nx,y.ny,y.nz);
+ RealSignal y_vector = y.duplicate();
+ RealSignal vv_update = v_vector.duplicate();
+ RealSignal x_update = x.duplicate();
+ //First iteration !
+ float alpha1 = 0;
+ float alphal1 = 0;
+ float alphau1 = 0;
+ fft.transform(y_vector, U);
+ U.times(H);
+ fft.inverse(U, u);
+ Operations.divide(y, u, p);
+ fft.transform(p, U);
+ U.timesConjugate(H);
+ fft.inverse(U, u);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ System.out.print(i);
+ x.data[z][i]= y_vector.data[z][i] * u.data[z][i];
+ }
+ }
+ Operations.subtract(x, y_vector, v_vector);
+ //prepare for vector
+ fft.transform(yv_update, U);
+ U.times(H);
+ fft.inverse(U, u);
+ Operations.divide(y, u, p);
+ fft.transform(p, U);
+ U.timesConjugate(H);
+ fft.inverse(U, u);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ xv_update.data[z][i]= yv_update.data[z][i] * u.data[z][i];
+ }
+ }
+ Operations.subtract(xv_update, yv_update, v_vector1);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ alphau1+= vv_update.data[z][i] * v_vector1.data[z][i];
+ alphal1 += v_vector1.data[z][i] * v_vector1.data[z][i]+0.001;
+ }
+ }
+ alpha1=alphau1/alphal1;
+ if (alpha1<0)
+ alpha1=(float) 0.0001;
+ if (alpha1>1)
+ alpha1=1;
+ y_vector=Operations.subtract(x, x_update).times(alpha1).plus(x);
+
+ //iteration really start!
while (!controller.ends(x)) {
- fft.transform(x, U);
+ float alpha = 0;
+ float alphal = 0;
+ float alphau = 0;
+ // For vector acceleration
+ x_update = x.duplicate();
+ fft.transform(y_vector, U);
U.times(H);
fft.inverse(U, u);
Operations.divide(y, u, p);
fft.transform(p, U);
U.timesConjugate(H);
fft.inverse(U, u);
- x.times(u);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ x.data[z][i]= y_vector.data[z][i] * u.data[z][i];
+ }
+ }
+ vv_update = v_vector.duplicate();
+ Operations.subtract(x, y_vector, v_vector);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ alphau+= vv_update.data[z][i] * v_vector.data[z][i];
+ alphal += vv_update.data[z][i] * vv_update.data[z][i]+0.001;
+ }
+ }
+ alpha=alphau/alphal;
+ if (alpha<0)
+ alpha=(float) 0.0001;
+ if (alpha>1)
+ alpha=1;
+ System.out.print(alpha);
+ y_vector=Operations.subtract(x, x_update).times(alpha).plus(x);
}
SignalCollector.free(H);
SignalCollector.free(p);
SignalCollector.free(u);
SignalCollector.free(U);
+ SignalCollector.free(yv_update);
+ SignalCollector.free(v_vector );
+ SignalCollector.free(v_vector1);
+ SignalCollector.free(xv_update);
+ SignalCollector.free(y_vector);
+ SignalCollector.free(vv_update);
return x;
}
diff --git a/src/main/java/deconvolution/algorithm/RichardsonLucyTV.java b/src/main/java/deconvolution/algorithm/RichardsonLucyTV.java
index 39eeea4..9723a7e 100644
--- a/src/main/java/deconvolution/algorithm/RichardsonLucyTV.java
+++ b/src/main/java/deconvolution/algorithm/RichardsonLucyTV.java
@@ -60,21 +60,96 @@ public RealSignal call() {
RealSignal ggx = y.duplicate();
RealSignal ggy = y.duplicate();
RealSignal ggz = y.duplicate();
-
RealSignal u = gx; // resued memory
RealSignal p = gy; // resued memory
RealSignal tv = gz; // resued memory
+
+ // For vector acceleration
+ RealSignal yv_update = new RealSignal("yv_update",y.nx,y.ny,y.nz);
+ RealSignal v_vector = new RealSignal("v_vector",y.nx,y.ny,y.nz);
+ RealSignal v_vector1 = new RealSignal("v_vector",y.nx,y.ny,y.nz);
+ RealSignal xv_update = new RealSignal("xv_update",y.nx,y.ny,y.nz);
+ RealSignal y_vector = y.duplicate();
+ RealSignal vv_update = v_vector.duplicate();
+ RealSignal x_update = x.duplicate();
+ //First iteration !
+ float alpha1 = 0;
+ float alphal1 = 0;
+ float alphau1 = 0;
+ gradientX(y_vector, gx);
+ gradientY(y_vector, gy);
+ gradientZ(y_vector, gz);
+ normalize(gx, gy, gz);
+ gradientX(gx, ggx);
+ gradientY(gy, ggy);
+ gradientZ(gz, ggz);
+ compute((float)lambda, ggx, ggy, ggz, tv);
+ fft.transform(y_vector, U);
+ U.times(H);
+ fft.inverse(U, u);
+ Operations.divide(y, u, p);
+ fft.transform(p, U);
+ U.timesConjugate(H);
+ fft.inverse(U, u);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ System.out.print(i);
+ x.data[z][i]= y_vector.data[z][i] * u.data[z][i]*tv.data[z][i];
+ }
+ }
+ Operations.subtract(x, y_vector, v_vector);
+ //prepare for vector
+ gradientX(yv_update, gx);
+ gradientY(yv_update, gy);
+ gradientZ(yv_update, gz);
+ normalize(gx, gy, gz);
+ gradientX(gx, ggx);
+ gradientY(gy, ggy);
+ gradientZ(gz, ggz);
+ compute((float)lambda, ggx, ggy, ggz, tv);
+ fft.transform(yv_update, U);
+ U.times(H);
+ fft.inverse(U, u);
+ Operations.divide(y, u, p);
+ fft.transform(p, U);
+ U.timesConjugate(H);
+ fft.inverse(U, u);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ xv_update.data[z][i]= yv_update.data[z][i] * u.data[z][i]*tv.data[z][i];
+ }
+ }
+ Operations.subtract(xv_update, yv_update, v_vector1);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ alphau1+= vv_update.data[z][i] * v_vector1.data[z][i];
+ alphal1 += v_vector1.data[z][i] * v_vector1.data[z][i]+0.001;
+ }
+ }
+ alpha1=alphau1/alphal1;
+ if (alpha1<0)
+ alpha1=(float) 0.0001;
+ if (alpha1>1)
+ alpha1=1;
+ y_vector=Operations.subtract(x, x_update).times(alpha1).plus(x);
+
+
while(!controller.ends(x)) {
- gradientX(x, gx);
- gradientY(x, gy);
- gradientZ(x, gz);
+ float alpha = 0;
+ float alphal = 0;
+ float alphau = 0;
+ // For vector acceleration
+ x_update = x.duplicate();
+ gradientX(y_vector, gx);
+ gradientY(y_vector, gy);
+ gradientZ(y_vector, gz);
normalize(gx, gy, gz);
gradientX(gx, ggx);
gradientY(gy, ggy);
gradientZ(gz, ggz);
compute((float)lambda, ggx, ggy, ggz, tv);
- fft.transform(x, U);
+ fft.transform(y_vector, U);
U.times(H);
fft.inverse(U, u);
Operations.divide(y, u, p);
@@ -83,6 +158,21 @@ public RealSignal call() {
fft.inverse(U, u);
x.times(u);
x.times(tv);
+ // For vector acceleration
+ vv_update = v_vector.duplicate();
+ Operations.subtract(x, y_vector, v_vector);
+ for (int z = 0; z < y.nz; z++) {
+ for (int i = 0; i < y.nx * y.ny; i++) {
+ alphau += vv_update.data[z][i] * v_vector.data[z][i];
+ alphal += vv_update.data[z][i] * vv_update.data[z][i];
+ }
+ }
+ alpha=alphau/alphal;
+ if (alpha<0)
+ alpha=(float) 0.0001;
+ if (alpha>1)
+ alpha=1;
+ y_vector=Operations.subtract(x, x_update).times(alpha).plus(x);
}
SignalCollector.free(H);
SignalCollector.free(U);
@@ -92,6 +182,12 @@ public RealSignal call() {
SignalCollector.free(tv);
SignalCollector.free(u);
SignalCollector.free(p);
+ SignalCollector.free(yv_update);
+ SignalCollector.free(v_vector );
+ SignalCollector.free(v_vector1);
+ SignalCollector.free(xv_update);
+ SignalCollector.free(y_vector);
+ SignalCollector.free(vv_update);
return x;
}
diff --git a/src/main/java/deconvolution/algorithm/Simulation.java b/src/main/java/deconvolution/algorithm/Simulation.java
index cabbb61..688e4a9 100644
--- a/src/main/java/deconvolution/algorithm/Simulation.java
+++ b/src/main/java/deconvolution/algorithm/Simulation.java
@@ -33,11 +33,11 @@
import java.util.concurrent.Callable;
+import bilib.tools.PsRandom;
import signal.ComplexSignal;
import signal.Operations;
import signal.RealSignal;
import signal.SignalCollector;
-import bilib.tools.PsRandom;
public class Simulation extends Algorithm implements Callable {
diff --git a/src/main/java/deconvolution/capsule/AlgorithmCapsule.java b/src/main/java/deconvolution/capsule/AlgorithmCapsule.java
index f8a1dae..2b7602b 100644
--- a/src/main/java/deconvolution/capsule/AlgorithmCapsule.java
+++ b/src/main/java/deconvolution/capsule/AlgorithmCapsule.java
@@ -37,9 +37,6 @@
import javax.swing.JSplitPane;
import javax.swing.JViewport;
-import signal.ComplexSignal;
-import signal.RealSignal;
-import signal.SignalCollector;
import bilib.component.HTMLPane;
import bilib.table.CustomizedTable;
import bilib.tools.NumFormat;
@@ -51,6 +48,9 @@
import deconvolutionlab.monitor.Monitors;
import fft.AbstractFFT;
import fft.FFT;
+import signal.ComplexSignal;
+import signal.RealSignal;
+import signal.SignalCollector;
/**
* This class is a information module for the algorithm.
diff --git a/src/main/java/deconvolution/capsule/ImageCapsule.java b/src/main/java/deconvolution/capsule/ImageCapsule.java
index 2f7a409..63e16fa 100644
--- a/src/main/java/deconvolution/capsule/ImageCapsule.java
+++ b/src/main/java/deconvolution/capsule/ImageCapsule.java
@@ -31,11 +31,8 @@
package deconvolution.capsule;
-import java.awt.Dimension;
-
import javax.swing.JSplitPane;
-import bilib.component.PanelImage;
import bilib.table.CustomizedTable;
import bilib.tools.NumFormat;
import deconvolution.Deconvolution;
diff --git a/src/main/java/deconvolution/capsule/PSFCapsule.java b/src/main/java/deconvolution/capsule/PSFCapsule.java
index 66fdd95..00fef43 100644
--- a/src/main/java/deconvolution/capsule/PSFCapsule.java
+++ b/src/main/java/deconvolution/capsule/PSFCapsule.java
@@ -31,11 +31,8 @@
package deconvolution.capsule;
-import java.awt.Dimension;
-
import javax.swing.JSplitPane;
-import bilib.component.PanelImage;
import bilib.table.CustomizedTable;
import bilib.tools.NumFormat;
import deconvolution.Deconvolution;
diff --git a/src/main/java/deconvolution/capsule/ReportCapsule.java b/src/main/java/deconvolution/capsule/ReportCapsule.java
index 95e9f57..48e522c 100644
--- a/src/main/java/deconvolution/capsule/ReportCapsule.java
+++ b/src/main/java/deconvolution/capsule/ReportCapsule.java
@@ -31,11 +31,8 @@
package deconvolution.capsule;
-import java.awt.Dimension;
-
import javax.swing.JSplitPane;
-import bilib.component.PanelImage;
import bilib.table.CustomizedTable;
import deconvolution.Deconvolution;
import signal.RealSignal;
diff --git a/src/main/java/deconvolution/capsule/ResourcesCapsule.java b/src/main/java/deconvolution/capsule/ResourcesCapsule.java
index ef6e0a4..35e9a30 100644
--- a/src/main/java/deconvolution/capsule/ResourcesCapsule.java
+++ b/src/main/java/deconvolution/capsule/ResourcesCapsule.java
@@ -35,14 +35,12 @@
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
-import bilib.table.CustomizedTable;
import deconvolution.Deconvolution;
import deconvolutionlab.system.AbstractMeter;
import deconvolutionlab.system.FFTMeter;
diff --git a/src/main/java/deconvolutionlab/Lab.java b/src/main/java/deconvolutionlab/Lab.java
index 2f92eb3..faca323 100644
--- a/src/main/java/deconvolutionlab/Lab.java
+++ b/src/main/java/deconvolutionlab/Lab.java
@@ -31,9 +31,6 @@
package deconvolutionlab;
-import ij.gui.Plot;
-import imagej.IJImager;
-
import java.awt.geom.Line2D;
import java.io.File;
import java.util.ArrayList;
@@ -43,12 +40,6 @@
import javax.swing.JFrame;
import javax.swing.JPanel;
-import plugins.sage.deconvolutionlab.IcyImager;
-import signal.ComplexComponent;
-import signal.ComplexSignal;
-import signal.RealSignal;
-import signal.factory.SignalFactory;
-import signal.factory.Sphere;
import bilib.tools.Files;
import bilib.tools.NumFormat;
import bilib.tools.WebBrowser;
@@ -58,6 +49,14 @@
import fft.AbstractFFT;
import fft.AbstractFFTLibrary;
import fft.FFT;
+import ij.gui.Plot;
+import imagej.IJImager;
+import plugins.sage.deconvolutionlab.IcyImager;
+import signal.ComplexComponent;
+import signal.ComplexSignal;
+import signal.RealSignal;
+import signal.factory.SignalFactory;
+import signal.factory.Sphere;
/**
* This class contains a collection of useful static methods to manage all the
diff --git a/src/main/java/deconvolutionlab/module/AlgorithmModule.java b/src/main/java/deconvolutionlab/module/AlgorithmModule.java
index 959c31a..a27385f 100644
--- a/src/main/java/deconvolutionlab/module/AlgorithmModule.java
+++ b/src/main/java/deconvolutionlab/module/AlgorithmModule.java
@@ -51,8 +51,8 @@
import deconvolution.Command;
import deconvolution.Deconvolution;
import deconvolution.DeconvolutionDialog;
-import deconvolution.algorithm.AlgorithmPanel;
import deconvolution.algorithm.AlgorithmList;
+import deconvolution.algorithm.AlgorithmPanel;
import deconvolutionlab.Config;
import deconvolutionlab.Lab;
diff --git a/src/main/java/deconvolutionlab/module/LanguageModule.java b/src/main/java/deconvolutionlab/module/LanguageModule.java
index f9fe6e3..5299948 100644
--- a/src/main/java/deconvolutionlab/module/LanguageModule.java
+++ b/src/main/java/deconvolutionlab/module/LanguageModule.java
@@ -44,8 +44,8 @@
import bilib.component.HTMLPane;
import deconvolution.Command;
-import deconvolution.Deconvolution;
import deconvolution.CommandToken;
+import deconvolution.Deconvolution;
import deconvolution.algorithm.Algorithm;
import deconvolutionlab.Config;
diff --git a/src/main/java/deconvolutionlab/module/PSFModule.java b/src/main/java/deconvolutionlab/module/PSFModule.java
index fd3ff11..925b694 100644
--- a/src/main/java/deconvolutionlab/module/PSFModule.java
+++ b/src/main/java/deconvolutionlab/module/PSFModule.java
@@ -32,32 +32,21 @@
package deconvolutionlab.module;
import java.awt.BorderLayout;
-import java.awt.GridLayout;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDropEvent;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
-import javax.swing.JButton;
import javax.swing.JPanel;
-import javax.swing.JToolBar;
-import bilib.tools.Files;
import deconvolution.Command;
import deconvolutionlab.Config;
-import deconvolutionlab.Lab;
-import deconvolutionlab.Platform;
-import deconvolutionlab.dialog.PatternDialog;
-import deconvolutionlab.dialog.SyntheticDialog;
import deconvolutionlab.module.dropdownbuttons.ChooseImageDropDownButton;
import deconvolutionlab.module.dropdownbuttons.ShowImageDropDownButton;
import signal.factory.SignalFactory;
diff --git a/src/main/java/deconvolutionlab/module/PreprocessingModule.java b/src/main/java/deconvolutionlab/module/PreprocessingModule.java
index 982a802..bb73c6f 100644
--- a/src/main/java/deconvolutionlab/module/PreprocessingModule.java
+++ b/src/main/java/deconvolutionlab/module/PreprocessingModule.java
@@ -44,13 +44,6 @@
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-import signal.RealSignal;
-import signal.apodization.AbstractApodization;
-import signal.apodization.Apodization;
-import signal.apodization.UniformApodization;
-import signal.padding.AbstractPadding;
-import signal.padding.NoPadding;
-import signal.padding.Padding;
import bilib.component.GridPanel;
import bilib.component.SpinnerRangeInteger;
import bilib.tools.NumFormat;
@@ -58,6 +51,13 @@
import deconvolution.Deconvolution;
import deconvolutionlab.Config;
import deconvolutionlab.monitor.Monitors;
+import signal.RealSignal;
+import signal.apodization.AbstractApodization;
+import signal.apodization.Apodization;
+import signal.apodization.UniformApodization;
+import signal.padding.AbstractPadding;
+import signal.padding.NoPadding;
+import signal.padding.Padding;
public class PreprocessingModule extends AbstractModule implements ActionListener, ChangeListener {
diff --git a/src/main/java/deconvolutionlab/module/ReferenceModule.java b/src/main/java/deconvolutionlab/module/ReferenceModule.java
index 165f311..3ba6970 100644
--- a/src/main/java/deconvolutionlab/module/ReferenceModule.java
+++ b/src/main/java/deconvolutionlab/module/ReferenceModule.java
@@ -32,33 +32,21 @@
package deconvolutionlab.module;
import java.awt.BorderLayout;
-import java.awt.GridLayout;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDropEvent;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
-import javax.swing.JButton;
import javax.swing.JPanel;
-import javax.swing.JToolBar;
-import bilib.tools.Files;
import deconvolution.Command;
import deconvolutionlab.Config;
-import deconvolutionlab.Lab;
-import deconvolutionlab.Platform;
-import deconvolutionlab.dialog.PatternDialog;
-import deconvolutionlab.dialog.SyntheticDialog;
import deconvolutionlab.module.dropdownbuttons.ChooseImageDropDownButton;
import deconvolutionlab.module.dropdownbuttons.ShowImageDropDownButton;
import signal.factory.SignalFactory;
diff --git a/src/main/java/deconvolutionlab/system/FFTMeter.java b/src/main/java/deconvolutionlab/system/FFTMeter.java
index 9b72139..2f88686 100644
--- a/src/main/java/deconvolutionlab/system/FFTMeter.java
+++ b/src/main/java/deconvolutionlab/system/FFTMeter.java
@@ -32,6 +32,7 @@
package deconvolutionlab.system;
import java.awt.Graphics;
+
import fft.FFT;
public class FFTMeter extends AbstractMeter {
diff --git a/src/main/java/deconvolutionlab/system/SystemInfo.java b/src/main/java/deconvolutionlab/system/SystemInfo.java
index 7f5b651..70cb2cc 100644
--- a/src/main/java/deconvolutionlab/system/SystemInfo.java
+++ b/src/main/java/deconvolutionlab/system/SystemInfo.java
@@ -51,12 +51,12 @@
import javax.swing.JFrame;
import javax.swing.JPanel;
-import signal.SignalCollector;
import bilib.tools.NumFormat;
import deconvolutionlab.Config;
import deconvolutionlab.Constants;
import deconvolutionlab.Lab;
import fft.FFTPanel;
+import signal.SignalCollector;
public class SystemInfo extends JDialog implements WindowListener, ActionListener, MouseListener {
diff --git a/src/main/java/fft/jtransforms/JTransforms.java b/src/main/java/fft/jtransforms/JTransforms.java
index 039d8d6..c1be550 100644
--- a/src/main/java/fft/jtransforms/JTransforms.java
+++ b/src/main/java/fft/jtransforms/JTransforms.java
@@ -31,13 +31,14 @@
package fft.jtransforms;
-import signal.ComplexSignal;
-import signal.RealSignal;
import deconvolutionlab.monitor.Monitors;
+
import edu.emory.mathcs.jtransforms.fft.FloatFFT_2D;
import edu.emory.mathcs.jtransforms.fft.FloatFFT_3D;
import fft.AbstractFFT;
import fft.Separability;
+import signal.ComplexSignal;
+import signal.RealSignal;
public class JTransforms extends AbstractFFT {
diff --git a/src/main/java/fft/jtransforms/JTransformsFFT_XYZ.java b/src/main/java/fft/jtransforms/JTransformsFFT_XYZ.java
index 2358533..53b8bbe 100644
--- a/src/main/java/fft/jtransforms/JTransformsFFT_XYZ.java
+++ b/src/main/java/fft/jtransforms/JTransformsFFT_XYZ.java
@@ -31,13 +31,13 @@
package fft.jtransforms;
-import signal.ComplexSignal;
-import signal.RealSignal;
import deconvolutionlab.monitor.Monitors;
import edu.emory.mathcs.jtransforms.fft.FloatFFT_2D;
import edu.emory.mathcs.jtransforms.fft.FloatFFT_3D;
import fft.AbstractFFT;
import fft.Separability;
+import signal.ComplexSignal;
+import signal.RealSignal;
public class JTransformsFFT_XYZ extends AbstractFFT {
diff --git a/src/main/java/fft/jtransforms/JTransformsFFT_XY_Z.java b/src/main/java/fft/jtransforms/JTransformsFFT_XY_Z.java
index b6c6f09..2a4d1f8 100644
--- a/src/main/java/fft/jtransforms/JTransformsFFT_XY_Z.java
+++ b/src/main/java/fft/jtransforms/JTransformsFFT_XY_Z.java
@@ -31,13 +31,13 @@
package fft.jtransforms;
-import signal.ComplexSignal;
-import signal.RealSignal;
import deconvolutionlab.monitor.Monitors;
import edu.emory.mathcs.jtransforms.fft.FloatFFT_1D;
import edu.emory.mathcs.jtransforms.fft.FloatFFT_2D;
import fft.AbstractFFT;
import fft.Separability;
+import signal.ComplexSignal;
+import signal.RealSignal;
public class JTransformsFFT_XY_Z extends AbstractFFT {
diff --git a/src/main/java/matlab/Converter.java b/src/main/java/matlab/Converter.java
index a3f29c0..763a2fb 100644
--- a/src/main/java/matlab/Converter.java
+++ b/src/main/java/matlab/Converter.java
@@ -1,6 +1,5 @@
package matlab;
-import deconvolutionlab.monitor.Monitors;
import ij.ImagePlus;
import ij.ImageStack;
import ij.process.ByteProcessor;
diff --git a/src/main/java/signal/Assessment.java b/src/main/java/signal/Assessment.java
index 6b2d6b3..f018471 100644
--- a/src/main/java/signal/Assessment.java
+++ b/src/main/java/signal/Assessment.java
@@ -31,8 +31,6 @@
package signal;
-import org.w3c.dom.Text;
-
public class Assessment {
public static double snr(RealSignal test, RealSignal ref) {
diff --git a/src/main/java/signal/Operations.java b/src/main/java/signal/Operations.java
index 5e3bbe2..8fc3723 100644
--- a/src/main/java/signal/Operations.java
+++ b/src/main/java/signal/Operations.java
@@ -235,7 +235,7 @@ public static ComplexSignal add(ComplexSignal s1, ComplexSignal s2) {
return result;
}
- public static ComplexSignal subtract(ComplexSignal s1, ComplexSignal s2) {
+ public static ComplexSignal tract(ComplexSignal s1, ComplexSignal s2) {
String name = s1.name + " - " + s2.name;
int nx = s1.nx;
int ny = s1.ny;
diff --git a/src/main/java/signal/apodization/Apodization.java b/src/main/java/signal/apodization/Apodization.java
index 1420220..45c2a78 100644
--- a/src/main/java/signal/apodization/Apodization.java
+++ b/src/main/java/signal/apodization/Apodization.java
@@ -33,8 +33,8 @@
import java.util.ArrayList;
-import signal.RealSignal;
import deconvolutionlab.monitor.Monitors;
+import signal.RealSignal;
public class Apodization {
diff --git a/src/main/java/signal/factory/Laplacian.java b/src/main/java/signal/factory/Laplacian.java
index 806cfc2..ebf1acb 100644
--- a/src/main/java/signal/factory/Laplacian.java
+++ b/src/main/java/signal/factory/Laplacian.java
@@ -31,12 +31,12 @@
package signal.factory;
-import signal.ComplexSignal;
-import signal.RealSignal;
-import signal.factory.complex.ComplexSignalFactory;
import deconvolutionlab.monitor.Monitors;
import fft.AbstractFFT;
import fft.FFT;
+import signal.ComplexSignal;
+import signal.RealSignal;
+import signal.factory.complex.ComplexSignalFactory;
public class Laplacian extends SignalFactory {
diff --git a/src/main/java/signal/factory/SignalFactory.java b/src/main/java/signal/factory/SignalFactory.java
index 6340870..1b458bf 100644
--- a/src/main/java/signal/factory/SignalFactory.java
+++ b/src/main/java/signal/factory/SignalFactory.java
@@ -35,9 +35,9 @@
import javax.swing.SwingWorker;
-import signal.RealSignal;
import bilib.tools.NumFormat;
import deconvolution.Command;
+import signal.RealSignal;
public abstract class SignalFactory {