Commit 484ec936 authored by Andrey Filippov's avatar Andrey Filippov

fixing configuration and missing clt directory creation

parent 0f7af7d5
...@@ -25,17 +25,15 @@ ...@@ -25,17 +25,15 @@
** **
*/ */
import ij.IJ;
import ij.Prefs;
import ij.gui.GenericDialog;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
import ij.IJ;
import ij.Prefs;
import ij.gui.GenericDialog;
public class EyesisCorrectionParameters { public class EyesisCorrectionParameters {
public static class CorrectionParameters{ public static class CorrectionParameters{
...@@ -293,18 +291,18 @@ public class EyesisCorrectionParameters { ...@@ -293,18 +291,18 @@ public class EyesisCorrectionParameters {
if (properties.getProperty(prefix+"equirectangularSuffix")!=null) this.equirectangularSuffix=properties.getProperty(prefix+"equirectangularSuffix"); if (properties.getProperty(prefix+"equirectangularSuffix")!=null) this.equirectangularSuffix=properties.getProperty(prefix+"equirectangularSuffix");
if (properties.getProperty(prefix+"equirectangularCut")!=null) if (properties.getProperty(prefix+"equirectangularCut")!=null)
this.equirectangularCut=Boolean.parseBoolean((String)properties.getProperty(prefix+"equirectangularCut")); this.equirectangularCut=Boolean.parseBoolean(properties.getProperty(prefix+"equirectangularCut"));
// if (properties.getProperty(prefix+"equirectangularSuffixA")!=null) this.equirectangularSuffixA=properties.getProperty(prefix+"equirectangularSuffixA"); // if (properties.getProperty(prefix+"equirectangularSuffixA")!=null) this.equirectangularSuffixA=properties.getProperty(prefix+"equirectangularSuffixA");
if (properties.getProperty(prefix+"planeMapPrefix")!=null) this.planeMapPrefix=properties.getProperty(prefix+"planeMapPrefix"); if (properties.getProperty(prefix+"planeMapPrefix")!=null) this.planeMapPrefix=properties.getProperty(prefix+"planeMapPrefix");
if (properties.getProperty(prefix+"planeMapSuffix")!=null) this.planeMapSuffix=properties.getProperty(prefix+"planeMapSuffix"); if (properties.getProperty(prefix+"planeMapSuffix")!=null) this.planeMapSuffix=properties.getProperty(prefix+"planeMapSuffix");
if (properties.getProperty(prefix+"usePlaneProjection")!=null) if (properties.getProperty(prefix+"usePlaneProjection")!=null)
this.usePlaneProjection=Boolean.parseBoolean((String)properties.getProperty(prefix+"usePlaneProjection")); this.usePlaneProjection=Boolean.parseBoolean(properties.getProperty(prefix+"usePlaneProjection"));
if (properties.getProperty(prefix+"planeAsJPEG")!=null) if (properties.getProperty(prefix+"planeAsJPEG")!=null)
this.planeAsJPEG=Boolean.parseBoolean((String)properties.getProperty(prefix+"planeAsJPEG")); this.planeAsJPEG=Boolean.parseBoolean(properties.getProperty(prefix+"planeAsJPEG"));
if (properties.getProperty(prefix+"resultsDirectory")!= null) this.resultsDirectory=properties.getProperty(prefix+"resultsDirectory"); if (properties.getProperty(prefix+"resultsDirectory")!= null) this.resultsDirectory=properties.getProperty(prefix+"resultsDirectory");
if (properties.getProperty(prefix+"removeUnusedSensorData")!= null) if (properties.getProperty(prefix+"removeUnusedSensorData")!= null)
this.removeUnusedSensorData=Boolean.parseBoolean((String) properties.getProperty(prefix+"removeUnusedSensorData")); this.removeUnusedSensorData=Boolean.parseBoolean(properties.getProperty(prefix+"removeUnusedSensorData"));
if (properties.getProperty(prefix+"sourcePaths")!= null){ if (properties.getProperty(prefix+"sourcePaths")!= null){
int numFiles=Integer.parseInt(properties.getProperty(prefix+"sourcePaths")); int numFiles=Integer.parseInt(properties.getProperty(prefix+"sourcePaths"));
this.sourcePaths=new String[numFiles]; this.sourcePaths=new String[numFiles];
...@@ -323,17 +321,17 @@ public class EyesisCorrectionParameters { ...@@ -323,17 +321,17 @@ public class EyesisCorrectionParameters {
if (properties.getProperty(prefix+"x3dDirectory")!= null) this.x3dDirectory=properties.getProperty(prefix+"x3dDirectory"); if (properties.getProperty(prefix+"x3dDirectory")!= null) this.x3dDirectory=properties.getProperty(prefix+"x3dDirectory");
if (properties.getProperty(prefix+"use_x3d_subdirs")!= null) this.use_x3d_subdirs=Boolean.parseBoolean((String) properties.getProperty(prefix+"use_x3d_subdirs")); if (properties.getProperty(prefix+"use_x3d_subdirs")!= null) this.use_x3d_subdirs=Boolean.parseBoolean(properties.getProperty(prefix+"use_x3d_subdirs"));
if (properties.getProperty(prefix+"clt_batch_apply_man")!= null) this.clt_batch_apply_man=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_apply_man")); if (properties.getProperty(prefix+"clt_batch_apply_man")!= null) this.clt_batch_apply_man=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_apply_man"));
if (properties.getProperty(prefix+"clt_batch_extrinsic")!= null) this.clt_batch_extrinsic=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_extrinsic")); if (properties.getProperty(prefix+"clt_batch_extrinsic")!= null) this.clt_batch_extrinsic=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_extrinsic"));
if (properties.getProperty(prefix+"clt_batch_poly")!= null) this.clt_batch_poly=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_poly")); if (properties.getProperty(prefix+"clt_batch_poly")!= null) this.clt_batch_poly=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_poly"));
if (properties.getProperty(prefix+"clt_batch_4img")!= null) this.clt_batch_4img=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_4img")); if (properties.getProperty(prefix+"clt_batch_4img")!= null) this.clt_batch_4img=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_4img"));
if (properties.getProperty(prefix+"clt_batch_explore")!= null) this.clt_batch_explore=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_explore")); if (properties.getProperty(prefix+"clt_batch_explore")!= null) this.clt_batch_explore=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_explore"));
if (properties.getProperty(prefix+"clt_batch_surf")!= null) this.clt_batch_surf=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_surf")); if (properties.getProperty(prefix+"clt_batch_surf")!= null) this.clt_batch_surf=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_surf"));
if (properties.getProperty(prefix+"clt_batch_assign")!= null) this.clt_batch_assign=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_assign")); if (properties.getProperty(prefix+"clt_batch_assign")!= null) this.clt_batch_assign=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_assign"));
if (properties.getProperty(prefix+"clt_batch_gen3d")!= null) this.clt_batch_gen3d=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_gen3d")); if (properties.getProperty(prefix+"clt_batch_gen3d")!= null) this.clt_batch_gen3d=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_gen3d"));
if (properties.getProperty(prefix+"clt_batch_dbg1")!= null) this.clt_batch_dbg1=Boolean.parseBoolean((String) properties.getProperty(prefix+"clt_batch_dbg1")); if (properties.getProperty(prefix+"clt_batch_dbg1")!= null) this.clt_batch_dbg1=Boolean.parseBoolean(properties.getProperty(prefix+"clt_batch_dbg1"));
} }
public boolean showDialog(String title) { public boolean showDialog(String title) {
...@@ -426,7 +424,7 @@ public class EyesisCorrectionParameters { ...@@ -426,7 +424,7 @@ public class EyesisCorrectionParameters {
gd.addStringField("DCT symmetical kernel files", this.dctSymSuffix, 40); gd.addStringField("DCT symmetical kernel files", this.dctSymSuffix, 40);
gd.addStringField("DCT asymmetrical kernel files suffix", this.dctAsymSuffix, 40); gd.addStringField("DCT asymmetrical kernel files suffix", this.dctAsymSuffix, 40);
gd.addStringField("CLT kernel files prefix", this.cltKernelPrefix, 40); gd.addStringField("CLT kernel files prefix", this.cltKernelPrefix, 40);
gd.addStringField("CLT symmetical kernel files", this.cltSuffix, 40); gd.addStringField("CLT kernel files suffix", this.cltSuffix, 40);
gd.addStringField("Equirectangular maps prefix", this.equirectangularPrefix, 40); gd.addStringField("Equirectangular maps prefix", this.equirectangularPrefix, 40);
gd.addStringField("Equirectangular maps suffix", this.equirectangularSuffix, 40); gd.addStringField("Equirectangular maps suffix", this.equirectangularSuffix, 40);
...@@ -499,6 +497,13 @@ public class EyesisCorrectionParameters { ...@@ -499,6 +497,13 @@ public class EyesisCorrectionParameters {
this.firstSubCamera= (int) gd.getNextNumber(); this.firstSubCamera= (int) gd.getNextNumber();
this.sensorPrefix= gd.getNextString(); this.sensorPrefix= gd.getNextString();
this.sensorSuffix= gd.getNextString(); this.sensorSuffix= gd.getNextString();
this.sharpKernelPrefix= gd.getNextString();
this.sharpKernelSuffix= gd.getNextString();
this.smoothKernelPrefix= gd.getNextString();
this.smoothKernelSuffix= gd.getNextString();
this.dctKernelPrefix= gd.getNextString();
this.dctSymSuffix= gd.getNextString();
this.dctAsymSuffix= gd.getNextString();
this.cltKernelPrefix= gd.getNextString(); this.cltKernelPrefix= gd.getNextString();
this.cltSuffix= gd.getNextString(); this.cltSuffix= gd.getNextString();
this.equirectangularPrefix= gd.getNextString(); this.equirectangularPrefix= gd.getNextString();
...@@ -544,7 +549,7 @@ public class EyesisCorrectionParameters { ...@@ -544,7 +549,7 @@ public class EyesisCorrectionParameters {
gd.addStringField("Sensor files suffix", this.sensorSuffix, 40); // 17 gd.addStringField("Sensor files suffix", this.sensorSuffix, 40); // 17
gd.addStringField("CLT kernel files prefix", this.cltKernelPrefix, 40); // 18 gd.addStringField("CLT kernel files prefix", this.cltKernelPrefix, 40); // 18
gd.addStringField("CLT symmetical kernel files", this.cltSuffix, 40); // 19 gd.addStringField("CLT kernel files suffix", this.cltSuffix, 40); // 19
gd.addMessage ("============ batch parameters ============"); gd.addMessage ("============ batch parameters ============");
gd.addCheckbox ("Apply (and disable) manual pixel shift", this.clt_batch_apply_man); // 20 gd.addCheckbox ("Apply (and disable) manual pixel shift", this.clt_batch_apply_man); // 20
...@@ -1026,7 +1031,7 @@ public class EyesisCorrectionParameters { ...@@ -1026,7 +1031,7 @@ public class EyesisCorrectionParameters {
String kernelPrefix= this.cltKernelPrefix; String kernelPrefix= this.cltKernelPrefix;
CalibrationFileManagement.MultipleExtensionsFileFilter kernelFilter = CalibrationFileManagement.MultipleExtensionsFileFilter kernelFilter =
new CalibrationFileManagement.MultipleExtensionsFileFilter(kernelPrefix,extensions,kernelPrefix+ new CalibrationFileManagement.MultipleExtensionsFileFilter(kernelPrefix,extensions,kernelPrefix+
"*"+extensions[0]+" CLT symmetrical kernel files"); "*"+extensions[0]+" CLT kernel files");
if (debugLevel>1) System.out.println("selectKernelFiles("+debugLevel+"): defaultPaths[0]="+defaultPaths[0]+" "+kernelPrefix+"*"+extensions[0]); if (debugLevel>1) System.out.println("selectKernelFiles("+debugLevel+"): defaultPaths[0]="+defaultPaths[0]+" "+kernelPrefix+"*"+extensions[0]);
String [] kernelFiles=null; String [] kernelFiles=null;
...@@ -2025,8 +2030,8 @@ public class EyesisCorrectionParameters { ...@@ -2025,8 +2030,8 @@ public class EyesisCorrectionParameters {
this.ringIR=Double.parseDouble(properties.getProperty(prefix+"ringIR")); this.ringIR=Double.parseDouble(properties.getProperty(prefix+"ringIR"));
this.ringOR=Double.parseDouble(properties.getProperty(prefix+"ringOR")); this.ringOR=Double.parseDouble(properties.getProperty(prefix+"ringOR"));
if (properties.getProperty(prefix+"thresholdCorr")!=null){ if (properties.getProperty(prefix+"thresholdCorr")!=null){
this.thresholdCorr=new double [Integer.parseInt((String) properties.getProperty(prefix+"thresholdCorr"))]; this.thresholdCorr=new double [Integer.parseInt(properties.getProperty(prefix+"thresholdCorr"))];
for (int i=0;i<this.thresholdCorr.length;i++) this.thresholdCorr[i]=Double.parseDouble((String)properties.getProperty(prefix+"thresholdCorr_"+i)); for (int i=0;i<this.thresholdCorr.length;i++) this.thresholdCorr[i]=Double.parseDouble(properties.getProperty(prefix+"thresholdCorr_"+i));
} }
} }
......
...@@ -25,17 +25,15 @@ ...@@ -25,17 +25,15 @@
** **
*/ */
import ij.*; import java.awt.Button;
import ij.process.*; import java.awt.Color;
import ij.gui.*; import java.awt.Frame;
import ij.io.FileInfo; import java.awt.GridLayout;
import ij.io.FileSaver; import java.awt.Panel;
import ij.io.OpenDialog; import java.awt.Rectangle;
import ij.io.Opener; import java.awt.event.ActionEvent;
import ij.plugin.frame.*; import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.*;
import java.awt.event.*;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
...@@ -53,6 +51,26 @@ import java.util.concurrent.atomic.AtomicInteger; ...@@ -53,6 +51,26 @@ import java.util.concurrent.atomic.AtomicInteger;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileFilter;
import ij.CompositeImage;
import ij.IJ;
import ij.ImageJ;
import ij.ImagePlus;
import ij.ImageStack;
import ij.Prefs;
import ij.WindowManager;
import ij.gui.GUI;
import ij.gui.GenericDialog;
import ij.gui.Plot;
import ij.gui.PlotWindow;
import ij.gui.Roi;
import ij.io.FileInfo;
import ij.io.FileSaver;
import ij.io.OpenDialog;
import ij.io.Opener;
import ij.plugin.frame.PlugInFrame;
import ij.process.ColorProcessor;
import ij.process.FloatProcessor;
import ij.process.ImageProcessor;
import loci.common.services.DependencyException; import loci.common.services.DependencyException;
import loci.common.services.ServiceException; import loci.common.services.ServiceException;
import loci.formats.FormatException; import loci.formats.FormatException;
...@@ -662,6 +680,7 @@ private Panel panel1, ...@@ -662,6 +680,7 @@ private Panel panel1,
b.addKeyListener(IJ.getInstance()); b.addKeyListener(IJ.getInstance());
panel.add(b); panel.add(b);
} }
@Override
public void processWindowEvent(WindowEvent e) { public void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e); super.processWindowEvent(e);
if (e.getID()==WindowEvent.WINDOW_CLOSING) { if (e.getID()==WindowEvent.WINDOW_CLOSING) {
...@@ -669,6 +688,7 @@ private Panel panel1, ...@@ -669,6 +688,7 @@ private Panel panel1,
} }
} }
@Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand(); String label = e.getActionCommand();
if (label.equals("Abort")) { if (label.equals("Abort")) {
...@@ -2633,7 +2653,7 @@ private Panel panel1, ...@@ -2633,7 +2653,7 @@ private Panel panel1,
for (int ii = 0; ii<n; ii++) { for (int ii = 0; ii<n; ii++) {
dindex[ii] = (double) ii; dindex[ii] = ii;
x[ii] = 0.0; x[ii] = 0.0;
} }
// x[1] = 1.0; // x[1] = 1.0;
...@@ -4146,6 +4166,15 @@ private Panel panel1, ...@@ -4146,6 +4166,15 @@ private Panel panel1,
return; return;
} }
} }
String cltPath=EYESIS_CORRECTIONS.correctionsParameters.selectCLTKernelDirectory( // create if it does not exist
true,
true);
if (cltPath==null) {
String msg="No CLT kernels (results) directory selected, command aborted";
System.out.println("Warning: "+msg);
IJ.showMessage("Warning",msg);
return;
}
EYESIS_CORRECTIONS.initSensorFiles(DEBUG_LEVEL); EYESIS_CORRECTIONS.initSensorFiles(DEBUG_LEVEL);
...@@ -5288,6 +5317,7 @@ private Panel panel1, ...@@ -5288,6 +5317,7 @@ private Panel panel1,
public MultipleExtensionsFileFilter (String [] patterns) { public MultipleExtensionsFileFilter (String [] patterns) {
this.patterns=patterns.clone(); this.patterns=patterns.clone();
} }
@Override
public boolean accept (File file) { public boolean accept (File file) {
int i; int i;
String name=file.getName(); String name=file.getName();
...@@ -5297,6 +5327,7 @@ private Panel panel1, ...@@ -5297,6 +5327,7 @@ private Panel panel1,
} }
return false; return false;
} }
@Override
public String getDescription() { public String getDescription() {
return description; return description;
} }
...@@ -6617,6 +6648,7 @@ private Panel panel1, ...@@ -6617,6 +6648,7 @@ private Panel panel1,
final long startTime = System.nanoTime(); final long startTime = System.nanoTime();
for (int ithread = 0; ithread < threads.length; ithread++) { for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() { threads[ithread] = new Thread() {
@Override
public void run() { public void run() {
float [] pixels=null; // will be initialized at first use float [] pixels=null; // will be initialized at first use
float [] kernelPixels=null; // will be initialized at first use float [] kernelPixels=null; // will be initialized at first use
...@@ -6759,6 +6791,7 @@ private Panel panel1, ...@@ -6759,6 +6791,7 @@ private Panel panel1,
final long startTime = System.nanoTime(); final long startTime = System.nanoTime();
for (int ithread = 0; ithread < threads.length; ithread++) { for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() { threads[ithread] = new Thread() {
@Override
public void run() { public void run() {
double [][] tile= new double[nChn][debayerParameters.size * debayerParameters.size ]; double [][] tile= new double[nChn][debayerParameters.size * debayerParameters.size ];
double [][] both_masks; double [][] both_masks;
...@@ -7006,6 +7039,7 @@ private Panel panel1, ...@@ -7006,6 +7039,7 @@ private Panel panel1,
final long startTime = System.nanoTime(); final long startTime = System.nanoTime();
for (int ithread = 0; ithread < threads.length; ithread++) { for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() { threads[ithread] = new Thread() {
@Override
public void run() { public void run() {
double [] tile= new double[size * size ]; double [] tile= new double[size * size ];
int tileY,tileX; int tileY,tileX;
......
...@@ -711,7 +711,7 @@ public class QuadCLT { ...@@ -711,7 +711,7 @@ public class QuadCLT {
imp_clt.show(); imp_clt.show();
} }
FileSaver fs=new FileSaver(imp_clt); FileSaver fs=new FileSaver(imp_clt);
fs.saveAsTiffStack(cltPath); fs.saveAsTiffStack(cltPath); // directory does not exist
} }
} }
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment