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
91f2ace8
Commit
91f2ace8
authored
Jan 14, 2022
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding arbitrary reference frame (not just the last), debugging 'Super
batch'
parent
dc3b8518
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
124 additions
and
45 deletions
+124
-45
EyesisCorrections.java
.../java/com/elphel/imagej/correction/EyesisCorrections.java
+1
-1
Eyesis_Correction.java
.../java/com/elphel/imagej/correction/Eyesis_Correction.java
+3
-1
OpticalFlow.java
...ain/java/com/elphel/imagej/tileprocessor/OpticalFlow.java
+35
-30
QuadCLT.java
src/main/java/com/elphel/imagej/tileprocessor/QuadCLT.java
+5
-0
QuadCLTCPU.java
...main/java/com/elphel/imagej/tileprocessor/QuadCLTCPU.java
+18
-5
TwoQuadCLT.java
...main/java/com/elphel/imagej/tileprocessor/TwoQuadCLT.java
+62
-8
No files found.
src/main/java/com/elphel/imagej/correction/EyesisCorrections.java
View file @
91f2ace8
...
@@ -2705,7 +2705,7 @@ public class EyesisCorrections {
...
@@ -2705,7 +2705,7 @@ public class EyesisCorrections {
png
,
png
,
show
,
show
,
jpegQuality
,
// <0 - keep current, 0 - force Tiff, >0 use for JPEG
jpegQuality
,
// <0 - keep current, 0 - force Tiff, >0 use for JPEG
this
.
debugLevel
);
this
.
debugLevel
+
3
);
}
}
...
...
src/main/java/com/elphel/imagej/correction/Eyesis_Correction.java
View file @
91f2ace8
...
@@ -7141,7 +7141,9 @@ public class Eyesis_Correction implements PlugIn, ActionListener {
...
@@ -7141,7 +7141,9 @@ public class Eyesis_Correction implements PlugIn, ActionListener {
QuadCLT
quadCLT
=
use_aux
?
QUAD_CLT_AUX
:
QUAD_CLT
;
QuadCLT
quadCLT
=
use_aux
?
QUAD_CLT_AUX
:
QUAD_CLT
;
ColorProcParameters
colorProcParameters
=
use_aux
?
COLOR_PROC_PARAMETERS_AUX
:
COLOR_PROC_PARAMETERS
;
ColorProcParameters
colorProcParameters
=
use_aux
?
COLOR_PROC_PARAMETERS_AUX
:
COLOR_PROC_PARAMETERS
;
try
{
try
{
TWO_QUAD_CLT
.
interIntraExportML
(
quadCLT
,
// QuadCLT quadCLT_main,
TWO_QUAD_CLT
.
interIntraExportML
(
quadCLT
,
// QuadCLT quadCLT_main,
-
1
,
// use last // int indx_ref, // = num_scenes - 1;
CLT_PARAMETERS
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
CLT_PARAMETERS
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
DEBAYER_PARAMETERS
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
DEBAYER_PARAMETERS
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
colorProcParameters
,
// EyesisCorrectionParameters.ColorProcParameters colorProcParameters,
colorProcParameters
,
// EyesisCorrectionParameters.ColorProcParameters colorProcParameters,
...
...
src/main/java/com/elphel/imagej/tileprocessor/OpticalFlow.java
View file @
91f2ace8
...
@@ -1526,7 +1526,8 @@ public class OpticalFlow {
...
@@ -1526,7 +1526,8 @@ public class OpticalFlow {
}
}
int
iwidth
=
imax_tX
-
imin_tX
+
1
;
int
iwidth
=
imax_tX
-
imin_tX
+
1
;
int
iheight
=
imax_tY
-
imin_tY
+
1
;
int
iheight
=
imax_tY
-
imin_tY
+
1
;
if
((
iwidth
<=
0
)
||
(
iheight
<=
0
))
{
//// if ((iwidth <= 0) || (iheight <= 0)) {
if
((
iwidth
<=
1
)
||
(
iheight
<=
1
))
{
System
.
out
.
println
(
"prepareSceneTiles(): iwidth ="
+
iwidth
+
", iheight ="
+
iheight
+
", min_tX="
+
min_tX
+
", imin_tY="
+
imin_tY
+
", max_tX="
+
max_tX
+
", imax_tY="
+
imax_tY
);
System
.
out
.
println
(
"prepareSceneTiles(): iwidth ="
+
iwidth
+
", iheight ="
+
iheight
+
", min_tX="
+
min_tX
+
", imin_tY="
+
imin_tY
+
", max_tX="
+
max_tX
+
", imax_tY="
+
imax_tY
);
continue
;
continue
;
}
}
...
@@ -3480,8 +3481,8 @@ public class OpticalFlow {
...
@@ -3480,8 +3481,8 @@ public class OpticalFlow {
}
}
double
[][]
disparity_map
=
null
;
double
[][]
disparity_map
=
null
;
for
(
int
nrefine
=
0
;
nrefine
<
max_refines
;
nrefine
++)
{
for
(
int
nrefine
=
0
;
nrefine
<
max_refines
;
nrefine
++)
{
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
int
mcorr_sel
=
Correlation2d
.
corrSelEncode
(
clt_parameters
.
img_dtt
,
scenes
[
indx_ref
].
getNumSensors
());
int
mcorr_sel
=
Correlation2d
.
corrSelEncode
(
clt_parameters
.
img_dtt
,
scenes
[
indx_ref
].
getNumSensors
());
disparity_map
=
correlateInterscene
(
disparity_map
=
correlateInterscene
(
clt_parameters
,
// final CLTParameters clt_parameters,
clt_parameters
,
// final CLTParameters clt_parameters,
...
@@ -3496,8 +3497,8 @@ public class OpticalFlow {
...
@@ -3496,8 +3497,8 @@ public class OpticalFlow {
false
,
// final boolean no_map, // do not generate disparity_map (time-consuming LMA)
false
,
// final boolean no_map, // do not generate disparity_map (time-consuming LMA)
debug_level
-
5
);
// final int debug_level)
debug_level
-
5
);
// final int debug_level)
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
(
new
ShowDoubleFloatArrays
()).
showArrays
(
(
new
ShowDoubleFloatArrays
()).
showArrays
(
disparity_map
,
disparity_map
,
...
@@ -3699,8 +3700,8 @@ public class OpticalFlow {
...
@@ -3699,8 +3700,8 @@ public class OpticalFlow {
}
}
}
}
for
(
int
nrefine
=
0
;
nrefine
<
max_refines
;
nrefine
++)
{
for
(
int
nrefine
=
0
;
nrefine
<
max_refines
;
nrefine
++)
{
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
double
[][]
disparity_map
=
double
[][]
disparity_map
=
// double [][][][][] clt_corr_partial =
// double [][][][][] clt_corr_partial =
...
@@ -3713,8 +3714,8 @@ public class OpticalFlow {
...
@@ -3713,8 +3714,8 @@ public class OpticalFlow {
nrefine
,
// final int nrefine, // just for debug title
nrefine
,
// final int nrefine, // just for debug title
debug_level
-
5
);
// final int debug_level)
debug_level
-
5
);
// final int debug_level)
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
if
(
debug_level
>
0
)
{
if
(
debug_level
>
0
)
{
(
new
ShowDoubleFloatArrays
()).
showArrays
(
(
new
ShowDoubleFloatArrays
()).
showArrays
(
disparity_map
,
disparity_map
,
...
@@ -3972,8 +3973,8 @@ public class OpticalFlow {
...
@@ -3972,8 +3973,8 @@ public class OpticalFlow {
}
}
ImagePlus
imp_stack
=
new
ImagePlus
(
"scene_outlines"
,
stack
);
ImagePlus
imp_stack
=
new
ImagePlus
(
"scene_outlines"
,
stack
);
imp_stack
.
getProcessor
().
resetMinAndMax
();
//
imp_stack.getProcessor().resetMinAndMax();
imp_stack
.
show
();
//
imp_stack.show();
return
imp_stack
;
return
imp_stack
;
}
}
...
@@ -3987,6 +3988,7 @@ public class OpticalFlow {
...
@@ -3987,6 +3988,7 @@ public class OpticalFlow {
int
debug_level
int
debug_level
)
)
{
{
boolean
generate_outlines
=
true
;
// TODO: move to configs
System
.
out
.
println
(
"intersceneExport(), scene timestamp="
+
ref_scene
.
getImageName
());
System
.
out
.
println
(
"intersceneExport(), scene timestamp="
+
ref_scene
.
getImageName
());
int
num_scenes
=
scenes
.
length
;
int
num_scenes
=
scenes
.
length
;
String
[]
combo_dsn_titles
=
{
"disp"
,
"strength"
,
"disp_lma"
,
"num_valid"
,
"change"
};
String
[]
combo_dsn_titles
=
{
"disp"
,
"strength"
,
"disp_lma"
,
"num_valid"
,
"change"
};
...
@@ -4023,7 +4025,7 @@ public class OpticalFlow {
...
@@ -4023,7 +4025,7 @@ public class OpticalFlow {
final
int
tilesX
=
ref_scene
.
getTileProcessor
().
getTilesX
();
final
int
tilesX
=
ref_scene
.
getTileProcessor
().
getTilesX
();
final
int
tilesY
=
ref_scene
.
getTileProcessor
().
getTilesY
();
final
int
tilesY
=
ref_scene
.
getTileProcessor
().
getTilesY
();
final
int
tiles
=
tilesX
*
tilesY
;
final
int
tiles
=
tilesX
*
tilesY
;
if
(
debug_level
>
100
)
{
// add parameter?
if
(
generate_outlines
)
{
//
debug_level > 100) { // add parameter?
int
extra
=
10
;
// pixels around largest outline
int
extra
=
10
;
// pixels around largest outline
int
scale
=
4
;
int
scale
=
4
;
...
@@ -4042,8 +4044,11 @@ public class OpticalFlow {
...
@@ -4042,8 +4044,11 @@ public class OpticalFlow {
line_width_corners
,
// int line_width_corners,
line_width_corners
,
// int line_width_corners,
line_color_outline
,
// Color line_color_outline,
line_color_outline
,
// Color line_color_outline,
line_color_corners
// Color line_color_corners
line_color_corners
// Color line_color_corners
);
);
imp_outlines
.
show
();
ref_scene
.
saveImagePlusInModelDirectory
(
"scene_outlines"
,
// String suffix,
imp_outlines
);
// ImagePlus imp)
// imp_outlines.show();
}
}
final
double
[][]
combo_dsn_change
=
new
double
[
combo_dsn_titles
.
length
]
[
tiles
];
final
double
[][]
combo_dsn_change
=
new
double
[
combo_dsn_titles
.
length
]
[
tiles
];
for
(
int
i
=
0
;
i
<
combo_dsn
.
length
;
i
++)
{
// 4 elements: "disp", "strength","disp_lma","num_valid"
for
(
int
i
=
0
;
i
<
combo_dsn
.
length
;
i
++)
{
// 4 elements: "disp", "strength","disp_lma","num_valid"
...
@@ -4792,8 +4797,8 @@ public class OpticalFlow {
...
@@ -4792,8 +4797,8 @@ public class OpticalFlow {
}
}
}
}
for
(
int
nrefine
=
0
;
nrefine
<
max_refines
;
nrefine
++)
{
for
(
int
nrefine
=
0
;
nrefine
<
max_refines
;
nrefine
++)
{
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
int
mcorr_sel
=
Correlation2d
.
corrSelEncode
(
clt_parameters
.
img_dtt
,
scenes
[
indx_ref
].
getNumSensors
());
int
mcorr_sel
=
Correlation2d
.
corrSelEncode
(
clt_parameters
.
img_dtt
,
scenes
[
indx_ref
].
getNumSensors
());
double
[][]
disparity_map
=
double
[][]
disparity_map
=
correlateInterscene
(
correlateInterscene
(
...
@@ -4809,8 +4814,8 @@ public class OpticalFlow {
...
@@ -4809,8 +4814,8 @@ public class OpticalFlow {
false
,
// final boolean no_map, // do not generate disparity_map (time-consuming LMA)
false
,
// final boolean no_map, // do not generate disparity_map (time-consuming LMA)
debug_level
-
5
);
// final int debug_level)
debug_level
-
5
);
// final int debug_level)
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
if
(
debug_level
>
0
)
{
if
(
debug_level
>
0
)
{
(
new
ShowDoubleFloatArrays
()).
showArrays
(
(
new
ShowDoubleFloatArrays
()).
showArrays
(
...
@@ -5228,8 +5233,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
...
@@ -5228,8 +5233,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
wis_wh
,
// final int [] wh,
wis_wh
,
// final int [] wh,
image_dtt
.
transform_size
,
// final int transform_size,
image_dtt
.
transform_size
,
// final int transform_size,
threadsMax
);
// final int threadsMax) // maximal number of threads to launch
threadsMax
);
// final int threadsMax) // maximal number of threads to launch
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
}
}
if
((
vis_corr_pd
!=
null
)
||
(
fclt_corrs
!=
null
))
{
// calculate and extract correlation
if
((
vis_corr_pd
!=
null
)
||
(
fclt_corrs
!=
null
))
{
// calculate and extract correlation
image_dtt
.
clt_process_tl_correlations_GPU
(
// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
image_dtt
.
clt_process_tl_correlations_GPU
(
// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
...
@@ -5276,8 +5281,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
...
@@ -5276,8 +5281,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
threadsMax
);
// final int threadsMax) // maximal number of threads to launch
threadsMax
);
// final int threadsMax) // maximal number of threads to launch
}
}
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
//nscene
//nscene
if
(
debug_dhv
!=
null
)
{
if
(
debug_dhv
!=
null
)
{
debug_dhv
[
3
*
nscene
+
0
]
=
disparity_map
[
ImageDtt
.
DISPARITY_INDEX_CM
];
debug_dhv
[
3
*
nscene
+
0
]
=
disparity_map
[
ImageDtt
.
DISPARITY_INDEX_CM
];
...
@@ -5450,8 +5455,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
...
@@ -5450,8 +5455,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
dbg_titles
);
dbg_titles
);
}
}
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
final
float
[][][]
fclt_corr
=
new
float
[
tilesX
*
tilesY
][][];
final
float
[][][]
fclt_corr
=
new
float
[
tilesX
*
tilesY
][][];
image_dtt
.
clt_process_tl_correlations_GPU
(
// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
image_dtt
.
clt_process_tl_correlations_GPU
(
// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
clt_parameters
.
img_dtt
,
// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
clt_parameters
.
img_dtt
,
// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
...
@@ -5914,8 +5919,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
...
@@ -5914,8 +5919,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
}
}
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
if
(
vis_corr_td
!=
null
)
{
// add combined data as the last slice
if
(
vis_corr_td
!=
null
)
{
// add combined data as the last slice
vis_corr_td
[
num_scenes
]
=
ImageDtt
.
corr_td_wnd
(
vis_corr_td
[
num_scenes
]
=
ImageDtt
.
corr_td_wnd
(
...
@@ -6281,8 +6286,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
...
@@ -6281,8 +6286,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
}
}
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
// Normalize accumulated corelations
// Normalize accumulated corelations
if
(
ref_scene
.
hasGPU
())
{
if
(
ref_scene
.
hasGPU
())
{
accumulateCorrelationsAcOnly
(
accumulateCorrelationsAcOnly
(
...
@@ -6385,8 +6390,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
...
@@ -6385,8 +6390,8 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
}
}
Runtime
.
getRuntime
().
gc
();
///
Runtime.getRuntime().gc();
System
.
out
.
println
(
"--- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
///
System.out.println("--- Free memory="+Runtime.getRuntime().freeMemory()+" (of "+Runtime.getRuntime().totalMemory()+")");
if
(
show_accumulated_correlations
||
(
accum_2d_corr
!=
null
)){
// -1
if
(
show_accumulated_correlations
||
(
accum_2d_corr
!=
null
)){
// -1
float
[][]
accum_2d_img
=
ImageDtt
.
corr_partial_dbg
(
// not used in lwir
float
[][]
accum_2d_img
=
ImageDtt
.
corr_partial_dbg
(
// not used in lwir
fclt_corr
,
// final float [][][] fcorr_data, // [tile][pair][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
fclt_corr
,
// final float [][][] fcorr_data, // [tile][pair][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
...
...
src/main/java/com/elphel/imagej/tileprocessor/QuadCLT.java
View file @
91f2ace8
...
@@ -109,6 +109,11 @@ public class QuadCLT extends QuadCLTCPU {
...
@@ -109,6 +109,11 @@ public class QuadCLT extends QuadCLTCPU {
}
}
}
}
void
setQuadClt
()
{
if
(
gpuQuad
!=
null
)
{
gpuQuad
.
updateQuadCLT
(
this
);
// to re-load new set of Bayer images to the GPU
}
}
public
QuadCLT
(
QuadCLTCPU
pq
,
String
name
)
{
public
QuadCLT
(
QuadCLTCPU
pq
,
String
name
)
{
super
(
pq
,
name
);
super
(
pq
,
name
);
...
...
src/main/java/com/elphel/imagej/tileprocessor/QuadCLTCPU.java
View file @
91f2ace8
...
@@ -222,9 +222,12 @@ public class QuadCLTCPU {
...
@@ -222,9 +222,12 @@ public class QuadCLTCPU {
return
null
;
return
null
;
}
}
void
restoreQuadClt
(
QuadCLT
savedQuadClt
)
{
void
restoreQuadClt
(
QuadCLT
savedQuadClt
)
{
// do nothing
}
}
void
setQuadClt
()
{
// do nothing
}
double
[][][][][][]
getCltKernels
()
{
double
[][][][][][]
getCltKernels
()
{
return
clt_kernels
;
return
clt_kernels
;
}
}
...
@@ -937,10 +940,6 @@ public class QuadCLTCPU {
...
@@ -937,10 +940,6 @@ public class QuadCLTCPU {
}
}
public
ImagePlus
saveDoubleArrayInModelDirectory
(
public
ImagePlus
saveDoubleArrayInModelDirectory
(
String
suffix
,
String
suffix
,
String
[]
labels
,
// or null
String
[]
labels
,
// or null
...
@@ -959,6 +958,20 @@ public class QuadCLTCPU {
...
@@ -959,6 +958,20 @@ public class QuadCLTCPU {
return
imp
;
return
imp
;
}
}
public
void
saveImagePlusInModelDirectory
(
String
suffix
,
ImagePlus
imp
)
{
String
x3d_path
=
getX3dDirectory
();
String
file_name
=
image_name
+
suffix
;
String
file_path
=
x3d_path
+
Prefs
.
getFileSeparator
()
+
file_name
+
".tiff"
;
FileSaver
fs
=
new
FileSaver
(
imp
);
fs
.
saveAsTiff
(
file_path
);
System
.
out
.
println
(
"saveDoubleArrayInModelDirectory(): saved "
+
file_path
);
}
public
double
[][]
readDoubleArrayFromModelDirectory
(
public
double
[][]
readDoubleArrayFromModelDirectory
(
String
suffix
,
String
suffix
,
int
num_slices
,
// (0 - all)
int
num_slices
,
// (0 - all)
...
...
src/main/java/com/elphel/imagej/tileprocessor/TwoQuadCLT.java
View file @
91f2ace8
...
@@ -8518,6 +8518,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -8518,6 +8518,7 @@ if (debugLevel > -100) return true; // temporarily !
// FIXME: *********** update adjustSeries to use QUADCLTCPU ! **********
// FIXME: *********** update adjustSeries to use QUADCLTCPU ! **********
// (QuadCLT [])
// (QuadCLT [])
quadCLTs
,
// QuadCLT [] scenes, // ordered by increasing timestamps
quadCLTs
,
// QuadCLT [] scenes, // ordered by increasing timestamps
ref_index
,
// int ref_index,
clt_parameters
.
ofp
.
debug_level_optical
);
// 1); // -1); // int debug_level);
clt_parameters
.
ofp
.
debug_level_optical
);
// 1); // -1); // int debug_level);
System
.
out
.
println
(
"End of interSeriesLMA()"
);
System
.
out
.
println
(
"End of interSeriesLMA()"
);
}
}
...
@@ -9007,6 +9008,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -9007,6 +9008,7 @@ if (debugLevel > -100) return true; // temporarily !
public
void
interIntraExportML
(
public
void
interIntraExportML
(
QuadCLT
quadCLT_main
,
// tiles should be set
QuadCLT
quadCLT_main
,
// tiles should be set
int
indx_ref
,
// = num_scenes - 1;
CLTParameters
clt_parameters
,
CLTParameters
clt_parameters
,
EyesisCorrectionParameters
.
DebayerParameters
debayerParameters
,
EyesisCorrectionParameters
.
DebayerParameters
debayerParameters
,
ColorProcParameters
colorProcParameters
,
ColorProcParameters
colorProcParameters
,
...
@@ -9062,7 +9064,10 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -9062,7 +9064,10 @@ if (debugLevel > -100) return true; // temporarily !
String
[]
sts
=
ref_only
?
(
new
String
[
0
])
:
ers_reference
.
getScenes
();
String
[]
sts
=
ref_only
?
(
new
String
[
0
])
:
ers_reference
.
getScenes
();
// get list of all other scenes
// get list of all other scenes
int
num_scenes
=
sts
.
length
+
1
;
int
num_scenes
=
sts
.
length
+
1
;
int
indx_ref
=
num_scenes
-
1
;
// int indx_ref = num_scenes - 1;
if
(
indx_ref
<
0
)
{
indx_ref
=
num_scenes
-
1
;
}
QuadCLT
[]
scenes
=
new
QuadCLT
[
num_scenes
];
QuadCLT
[]
scenes
=
new
QuadCLT
[
num_scenes
];
scenes
[
indx_ref
]
=
ref_quadCLT
;
scenes
[
indx_ref
]
=
ref_quadCLT
;
...
@@ -11175,14 +11180,16 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11175,14 +11180,16 @@ if (debugLevel > -100) return true; // temporarily !
final
int
debugLevel
)
throws
Exception
final
int
debugLevel
)
throws
Exception
{
{
if
((
quadCLT_main
!=
null
)
&&
(
quadCLT_main
.
getGPU
()
!=
null
))
{
if
((
quadCLT_main
!=
null
)
&&
(
quadCLT_main
.
getGPU
()
!=
null
))
{
quadCLT_main
.
getGPU
().
resetGeometryCorrection
();
quadCLT_main
.
setQuadClt
();
// ignore previous result,
quadCLT_main
.
gpuResetCorrVector
();
// .getGPU().resetGeometryCorrectionVector();
// quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main
.
resetBayer
();
// quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
// quadCLT_main.resetBayer();
}
}
if
((
quadCLT_aux
!=
null
)
&&
(
quadCLT_aux
.
getGPU
()
!=
null
))
{
if
((
quadCLT_aux
!=
null
)
&&
(
quadCLT_aux
.
getGPU
()
!=
null
))
{
quadCLT_aux
.
getGPU
().
resetGeometryCorrection
();
quadCLT_aux
.
setQuadClt
();
quadCLT_aux
.
gpuResetCorrVector
();
// .getGPU().resetGeometryCorrectionVector();
// quadCLT_aux.getGPU().resetGeometryCorrection();
quadCLT_aux
.
resetBayer
();
// quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
// quadCLT_aux.resetBayer();
}
}
...
@@ -11222,6 +11229,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11222,6 +11229,7 @@ if (debugLevel > -100) return true; // temporarily !
}
}
for
(
int
nSet
=
0
;
nSet
<
set_channels
.
length
;
nSet
++){
for
(
int
nSet
=
0
;
nSet
<
set_channels
.
length
;
nSet
++){
/*
if ((quadCLT_main != null) && (quadCLT_main.getGPU() != null)) { //TODO: is it needed here? WAs not needed before - verify
if ((quadCLT_main != null) && (quadCLT_main.getGPU() != null)) { //TODO: is it needed here? WAs not needed before - verify
quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
...
@@ -11231,7 +11239,8 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11231,7 +11239,8 @@ if (debugLevel > -100) return true; // temporarily !
quadCLT_aux.getGPU().resetGeometryCorrection();
quadCLT_aux.getGPU().resetGeometryCorrection();
quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_aux.resetBayer();
quadCLT_aux.resetBayer();
}
}*/
// nset -> name - n1, n2 (in
// nset -> name - n1, n2 (in
String
set_name
=
set_channels
[
nSet
].
set_name
;
String
set_name
=
set_channels
[
nSet
].
set_name
;
int
nSet_main
=
-
1
,
nSet_aux
=
-
1
;
int
nSet_main
=
-
1
,
nSet_aux
=
-
1
;
...
@@ -11846,6 +11855,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11846,6 +11855,7 @@ if (debugLevel > -100) return true; // temporarily !
// System.out.println("batchLwirRig(): processing "+(quadCLT_main.getTotalFiles(set_channels_main)+quadCLT_aux.getTotalFiles(set_channels_aux))+" files ("+set_channels_main.length+" file sets) finished at "+
// System.out.println("batchLwirRig(): processing "+(quadCLT_main.getTotalFiles(set_channels_main)+quadCLT_aux.getTotalFiles(set_channels_aux))+" files ("+set_channels_main.length+" file sets) finished at "+
int
num_main
=
(
quadCLT_main
==
null
)?
0
:
quadCLT_main
.
getTotalFiles
(
set_channels_main
);
int
num_main
=
(
quadCLT_main
==
null
)?
0
:
quadCLT_main
.
getTotalFiles
(
set_channels_main
);
int
num_aux
=
(
quadCLT_aux
==
null
)?
0
:
quadCLT_aux
.
getTotalFiles
(
set_channels_aux
);
int
num_aux
=
(
quadCLT_aux
==
null
)?
0
:
quadCLT_aux
.
getTotalFiles
(
set_channels_aux
);
/*
if ((quadCLT_main != null) && (quadCLT_main.getGPU() != null)) { //TODO: is it needed here? WAs not needed before - verify
if ((quadCLT_main != null) && (quadCLT_main.getGPU() != null)) { //TODO: is it needed here? WAs not needed before - verify
quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
...
@@ -11856,6 +11866,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11856,6 +11866,7 @@ if (debugLevel > -100) return true; // temporarily !
quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_aux.resetBayer();
quadCLT_aux.resetBayer();
}
}
*/
// Process LWIR16 tasks applicable to scene series rather than individual scenes
// Process LWIR16 tasks applicable to scene series rather than individual scenes
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_pose_pairs_main
)
{
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_pose_pairs_main
)
{
TestInterLMA
(
quadCLT_main
,
// QUAD_CLT, // QuadCLT quadCLT_main,
TestInterLMA
(
quadCLT_main
,
// QUAD_CLT, // QuadCLT quadCLT_main,
...
@@ -11891,8 +11902,29 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11891,8 +11902,29 @@ if (debugLevel > -100) return true; // temporarily !
debugLevel
);
debugLevel
);
}
}
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_pose_scene_main
)
{
int
ref_index
=
50
;
// temporarily, will make evently distributed
interSeriesLMA
(
quadCLT_main
,
// QUAD_CLT, // QuadCLT quadCLT_main,
ref_index
,
// int ref_index,
clt_parameters
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
debayerParameters
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
colorProcParameters
,
// COLOR_PROC_PARAMETERS, //EyesisCorrectionParameters.ColorProcParameters
// colorProcParameters,
channelGainParameters
,
// CorrectionColorProc.ColorGainsParameters channelGainParameters,
rgbParameters
,
// EyesisCorrectionParameters.RGBParameters rgbParameters,
equirectangularParameters
,
// EyesisCorrectionParameters.EquirectangularParameters
// equirectangularParameters,
properties
,
// Properties properties,
true
,
// false, // boolean reset_from_extrinsics,
threadsMax
,
// final int threadsMax, // maximal number of threads to launch
updateStatus
,
// final boolean updateStatus,
debugLevel
);
}
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_ml_last_main
)
{
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_ml_last_main
)
{
interIntraExportML
(
quadCLT_main
,
// QuadCLT quadCLT_main,
interIntraExportML
(
quadCLT_main
,
// QuadCLT quadCLT_main,
-
1
,
// use last // int indx_ref, // = num_scenes - 1;
clt_parameters
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
clt_parameters
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
debayerParameters
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
debayerParameters
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
colorProcParameters
,
// EyesisCorrectionParameters.ColorProcParameters colorProcParameters,
colorProcParameters
,
// EyesisCorrectionParameters.ColorProcParameters colorProcParameters,
...
@@ -11940,8 +11972,28 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11940,8 +11972,28 @@ if (debugLevel > -100) return true; // temporarily !
debugLevel
);
debugLevel
);
}
}
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_pose_scene_aux
)
{
int
ref_index
=
50
;
// temporarily, will make evently distributed
interSeriesLMA
(
quadCLT_aux
,
// QUAD_CLT, // QuadCLT quadCLT_main,
ref_index
,
// int ref_index,
clt_parameters
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
debayerParameters
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
colorProcParameters_aux
,
// COLOR_PROC_PARAMETERS, //EyesisCorrectionParameters.ColorProcParameters
// colorProcParameters,
channelGainParameters
,
// CorrectionColorProc.ColorGainsParameters channelGainParameters,
rgbParameters
,
// EyesisCorrectionParameters.RGBParameters rgbParameters,
equirectangularParameters
,
// EyesisCorrectionParameters.EquirectangularParameters
// equirectangularParameters,
properties
,
// Properties properties,
true
,
// false, // boolean reset_from_extrinsics,
threadsMax
,
// final int threadsMax, // maximal number of threads to launch
updateStatus
,
// final boolean updateStatus,
debugLevel
);
}
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_ml_last_aux
)
{
if
(
quadCLT_main
.
correctionsParameters
.
clt_batch_ml_last_aux
)
{
interIntraExportML
(
quadCLT_aux
,
// QuadCLT quadCLT_main,
interIntraExportML
(
quadCLT_aux
,
// QuadCLT quadCLT_main,
-
1
,
// use last // int indx_ref, // = num_scenes - 1;
clt_parameters
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
clt_parameters
,
// EyesisCorrectionParameters.DCTParameters dct_parameters,
debayerParameters
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
debayerParameters
,
// EyesisCorrectionParameters.DebayerParameters debayerParameters,
colorProcParameters_aux
,
// EyesisCorrectionParameters.ColorProcParameters colorProcParameters,
colorProcParameters_aux
,
// EyesisCorrectionParameters.ColorProcParameters colorProcParameters,
...
@@ -11954,6 +12006,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11954,6 +12006,7 @@ if (debugLevel > -100) return true; // temporarily !
updateStatus
,
// final boolean updateStatus,
updateStatus
,
// final boolean updateStatus,
debugLevel
);
debugLevel
);
}
}
/*
if ((quadCLT_main != null) && (quadCLT_main.getGPU() != null)) { //TODO: is it needed here? WAs not needed before - verify
if ((quadCLT_main != null) && (quadCLT_main.getGPU() != null)) { //TODO: is it needed here? WAs not needed before - verify
quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main.getGPU().resetGeometryCorrection();
quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_main.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
...
@@ -11964,6 +12017,7 @@ if (debugLevel > -100) return true; // temporarily !
...
@@ -11964,6 +12017,7 @@ if (debugLevel > -100) return true; // temporarily !
quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_aux.gpuResetCorrVector(); // .getGPU().resetGeometryCorrectionVector();
quadCLT_aux.resetBayer();
quadCLT_aux.resetBayer();
}
}
*/
System
.
out
.
println
(
"batchLwirRig(): processing "
+(
num_main
+
num_aux
)+
" files ("
+
set_channels
.
length
+
" file sets) finished at "
+
System
.
out
.
println
(
"batchLwirRig(): processing "
+(
num_main
+
num_aux
)+
" files ("
+
set_channels
.
length
+
" file sets) finished at "
+
IJ
.
d2s
(
0.000000001
*(
System
.
nanoTime
()-
this
.
startTime
),
3
)+
" sec, --- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
IJ
.
d2s
(
0.000000001
*(
System
.
nanoTime
()-
this
.
startTime
),
3
)+
" sec, --- Free memory="
+
Runtime
.
getRuntime
().
freeMemory
()+
" (of "
+
Runtime
.
getRuntime
().
totalMemory
()+
")"
);
...
...
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