Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
imagej-elphel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
3
Issues
3
List
Board
Labels
Milestones
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Elphel
imagej-elphel
Commits
ca083ffb
Commit
ca083ffb
authored
Nov 26, 2021
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed wrong kernel size for LWIR
parent
7c10a29b
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
50 additions
and
10 deletions
+50
-10
Aberration_Calibration.java
...com/elphel/imagej/calibration/Aberration_Calibration.java
+46
-9
EyesisAberrations.java
...java/com/elphel/imagej/calibration/EyesisAberrations.java
+4
-1
No files found.
src/main/java/com/elphel/imagej/calibration/Aberration_Calibration.java
View file @
ca083ffb
...
...
@@ -157,11 +157,20 @@ public class Aberration_Calibration extends PlugInFrame implements ActionListene
public static EyesisAberrations.InterpolateParameters INTERPOLATE= new EyesisAberrations.InterpolateParameters (
32, // insize - size of each kernel (should be square)
4, // step - number of subdivisions from input to output
17, // add_top - add this number of kernel rows to the output above the existent/interpolated
17, // add_left - add this number of kernel columns to the output on the left of the existent/interpolated
18, // add_right - add this number of kernel columns to the output on the right of the existent/interpolated
17, // add_bottom - add this number of kernel rows to the output below the existent/interpolated
2, // step - number of subdivisions from input to output
9, // add_top - add this number of kernel rows to the output above the existent/interpolated
8, // add_left - add this number of kernel columns to the output on the left of the existent/interpolated
9, // add_right - add this number of kernel columns to the output on the right of the existent/interpolated
9, // add_bottom - add this number of kernel rows to the output below the existent/interpolated
0.0 // extrapolate - 0.0 - duplicate, 1.0 - extrapolate outside of the known kernels
);
public static EyesisAberrations.InterpolateParameters INTERPOLATE_LWIR= new EyesisAberrations.InterpolateParameters (
32, // insize - size of each kernel (should be square)
1, // step - number of subdivisions from input to output
8, // add_top - add this number of kernel rows to the output above the existent/interpolated
8, // add_left - add this number of kernel columns to the output on the left of the existent/interpolated
9, // add_right - add this number of kernel columns to the output on the right of the existent/interpolated
9, // add_bottom - add this number of kernel rows to the output below the existent/interpolated
0.0 // extrapolate - 0.0 - duplicate, 1.0 - extrapolate outside of the known kernels
);
...
...
@@ -1241,7 +1250,7 @@ if (MORE_BUTTONS) {
return;
/* ======================================================================== */
} else if (label.equals("Conf. Interpolation")) {
showInterpolateParametersDialog(INTERPOLATE);
showInterpolateParametersDialog(INTERPOLATE
, INTERPOLATE_LWIR
);
return;
/* ======================================================================== */
} else if (label.equals("Conf. Inversion")) {
...
...
@@ -9072,6 +9081,7 @@ if (MORE_BUTTONS) {
boolean interpolatedOK= EYESIS_ABERRATIONS.interpolateKernels ( // save configuration to combined kernels directory before calling this methode
this.SYNC_COMMAND.stopRequested,
INTERPOLATE, // INTERPOLATE
INTERPOLATE_LWIR, // INTERPOLATE_LWIR
MULTIFILE_PSF , // MULTIFILE_PSF = new EyesisAberrations.MultiFilePSF(
true, // saveResult,
false, // showResult,
...
...
@@ -11119,6 +11129,10 @@ if (MORE_BUTTONS) {
startTime-=(System.nanoTime()-tmpTime); // do not count time used for selection of files
filePaths=prepareInterpolateKernelsList(PROCESS_PARAMETERS);
for (fileNum=0;fileNum<filePaths.length;fileNum++) if ((filePaths[fileNum]!=null) && (filePaths[fileNum].length>0)) {
System.out.println("isLwir16()="+LWIR_PARAMETERS.isLwir16());
if (LWIR_PARAMETERS.isLwir16()) {
System.out.println("isLwir16()="+LWIR_PARAMETERS.isLwir16());
}
file=new File(filePaths[fileNum][0][0]);
if (!file.exists()) {
if (DEBUG_LEVEL>1) System.out.println("Raw PSF kernel stack file "+filePaths[fileNum][0][0]+" does not exist");
...
...
@@ -16488,6 +16502,7 @@ private double [][] jacobianByJacobian(double [][] jacobian, boolean [] mask) {
if (select_SIMUL) SIMUL.setProperties( "SIMUL.", properties);
if (select_INTERPOLATE) INTERPOLATE.setProperties( "INTERPOLATE.", properties);
if (select_INTERPOLATE) INTERPOLATE_LWIR.setProperties( "INTERPOLATE_LWIR.", properties);
if (select_INVERSE) INVERSE.setProperties( "INVERSE.", properties);
if (select_PSF_PARS) PSF_PARS.setProperties( "PSF_PARS.", properties);
if (select_OTF_FILTER) OTF_FILTER.setProperties( "OTF_FILTER.", properties);
...
...
@@ -16533,6 +16548,7 @@ private double [][] jacobianByJacobian(double [][] jacobian, boolean [] mask) {
SIMUL.getProperties("SIMUL.", properties);
INTERPOLATE.getProperties("INTERPOLATE.", properties);
INTERPOLATE_LWIR.getProperties("INTERPOLATE_LWIR.", properties);
INVERSE.getProperties("INVERSE.", properties);
PSF_PARS.getProperties("PSF_PARS.", properties);
OTF_FILTER.getProperties("OTF_FILTER.", properties);
...
...
@@ -21224,7 +21240,9 @@ use the result to create a rejectiobn mask - if the energy was high, (multiplica
/* ======================================================================== */
/* ======================================================================== */
public boolean showInterpolateParametersDialog(EyesisAberrations.InterpolateParameters interpolateParameters) {
public boolean showInterpolateParametersDialog(
EyesisAberrations.InterpolateParameters interpolateParameters,
EyesisAberrations.InterpolateParameters interpolateParameters_lwir) {
GenericDialog gd = new GenericDialog("Interpolate kernels parameters");
gd.addNumericField("Input kernel size", interpolateParameters.size, 0); // 64
gd.addNumericField("Interpolation step between original kernels", interpolateParameters.step, 0); //4
...
...
@@ -21233,6 +21251,16 @@ use the result to create a rejectiobn mask - if the energy was high, (multiplica
gd.addNumericField("Interpolation add on the right (in output, subdivided steps)", interpolateParameters.add_right, 0); //16
gd.addNumericField("Interpolation add on the bottom (in output, subdivided steps)", interpolateParameters.add_bottom, 0); //16
gd.addNumericField("Interpolation: extrapolate margins - 0.0 - duplicate, 1.0 - full extrapolate", interpolateParameters.extrapolate,3); //1.0
if (interpolateParameters_lwir!=null) {
gd.addMessage("LWIR (low-res mono) sensors:");
gd.addNumericField("Input kernel size", interpolateParameters_lwir.size, 0); // 64
gd.addNumericField("Interpolation step between original kernels", interpolateParameters_lwir.step, 0); //4
gd.addNumericField("Interpolation add on the top (in output, subdivided steps)", interpolateParameters_lwir.add_top, 0); //16
gd.addNumericField("Interpolation add on the left (in output, subdivided steps)", interpolateParameters_lwir.add_left, 0); //16
gd.addNumericField("Interpolation add on the right (in output, subdivided steps)", interpolateParameters_lwir.add_right, 0); //16
gd.addNumericField("Interpolation add on the bottom (in output, subdivided steps)", interpolateParameters_lwir.add_bottom, 0); //16
gd.addNumericField("Interpolation: extrapolate margins - 0.0 - duplicate, 1.0 - full extrapolate", interpolateParameters_lwir.extrapolate,3); //1.0
}
gd.showDialog();
if (gd.wasCanceled()) return false;
interpolateParameters.size= (int) gd.getNextNumber();
...
...
@@ -21242,6 +21270,15 @@ use the result to create a rejectiobn mask - if the energy was high, (multiplica
interpolateParameters.add_right= (int) gd.getNextNumber();
interpolateParameters.add_bottom= (int) gd.getNextNumber();
interpolateParameters.extrapolate= gd.getNextNumber();
if (interpolateParameters_lwir!=null) {
interpolateParameters_lwir.size= (int) gd.getNextNumber();
interpolateParameters_lwir.step= (int) gd.getNextNumber();
interpolateParameters_lwir.add_top= (int) gd.getNextNumber();
interpolateParameters_lwir.add_left= (int) gd.getNextNumber();
interpolateParameters_lwir.add_right= (int) gd.getNextNumber();
interpolateParameters_lwir.add_bottom= (int) gd.getNextNumber();
interpolateParameters_lwir.extrapolate= gd.getNextNumber();
}
return true;
}
/* ======================================================================== */
src/main/java/com/elphel/imagej/calibration/EyesisAberrations.java
View file @
ca083ffb
...
...
@@ -658,6 +658,7 @@ public class EyesisAberrations {
public
boolean
interpolateKernels
(
AtomicInteger
stopRequested
,
// 1 - stop now, 2 - when convenient
EyesisAberrations
.
InterpolateParameters
interpolateParameters
,
// INTERPOLATE
EyesisAberrations
.
InterpolateParameters
interpolateParameters_lwir
,
// INTERPOLATE
EyesisAberrations
.
MultiFilePSF
multiFilePSF
,
// MULTIFILE_PSF = new EyesisAberrations.MultiFilePSF(
boolean
saveResult
,
boolean
showResult
,
...
...
@@ -721,9 +722,11 @@ public class EyesisAberrations {
System
.
out
.
println
(
"Need a 3-layer stack (for color) or single (for mono) with raw PSF kernels"
);
continue
;
}
boolean
is_mono
=
impSpsf
.
getStackSize
()
==
1
;
System
.
out
.
println
(
"Interpolating "
+
(
is_mono
?
"monochrome"
:
"color"
)
+
" sensor kernel"
);
ImageStack
stack
=
interpolateKernelStack
(
impSpsf
.
getStack
(),
// Image stack, each slice consists of square kernels of one channel
interpolateParameters
,
(
is_mono
?
interpolateParameters_lwir:
interpolateParameters
)
,
updateStatus
,
globalDebugLevel
);
// update status info
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment