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
ba860911
Commit
ba860911
authored
Jul 13, 2022
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Before individual weights for X/Y interscene matching
parent
7b84dba6
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
102 additions
and
29 deletions
+102
-29
EyesisCorrectionParameters.java
...com/elphel/imagej/cameras/EyesisCorrectionParameters.java
+1
-1
Corr2dLMA.java
src/main/java/com/elphel/imagej/tileprocessor/Corr2dLMA.java
+42
-10
Correlation2d.java
...n/java/com/elphel/imagej/tileprocessor/Correlation2d.java
+12
-0
ImageDtt.java
src/main/java/com/elphel/imagej/tileprocessor/ImageDtt.java
+9
-2
ImageDttCPU.java
...ain/java/com/elphel/imagej/tileprocessor/ImageDttCPU.java
+7
-0
ImageDttParameters.java
...a/com/elphel/imagej/tileprocessor/ImageDttParameters.java
+5
-4
IntersceneMatchParameters.java
...lphel/imagej/tileprocessor/IntersceneMatchParameters.java
+2
-2
OpticalFlow.java
...ain/java/com/elphel/imagej/tileprocessor/OpticalFlow.java
+23
-9
TwoQuadCLT.java
...main/java/com/elphel/imagej/tileprocessor/TwoQuadCLT.java
+1
-1
No files found.
src/main/java/com/elphel/imagej/cameras/EyesisCorrectionParameters.java
View file @
ba860911
...
...
@@ -185,7 +185,7 @@ public class EyesisCorrectionParameters {
public
boolean
clt_batch_skip_scenes
=
false
;
// Skip all per-scene processing, go directly to processing sequences
public
boolean
clt_batch_pose_pairs_main
=
false
;
// calculate pair-wise camera poses
public
boolean
clt_batch_pose_last_main
=
false
;
// calculate camera poses re
al
tive to the last scene
public
boolean
clt_batch_pose_last_main
=
false
;
// calculate camera poses re
la
tive to the last scene
public
boolean
clt_batch_pose_scene_main
=
false
;
// calculate camera poses relative to all other ones
public
int
clt_batch_offset_main
=
0
;
// when selecting multiple reference scene, offset from the last one
public
int
clt_batch_step_main
=
3
;
// step (decreasing timestamp) to select reference frames in a sequence
...
...
src/main/java/com/elphel/imagej/tileprocessor/Corr2dLMA.java
View file @
ba860911
...
...
@@ -2596,6 +2596,7 @@ public class Corr2dLMA {
// has common threshold for scale ratios for foreground and background corr. maximums
public
double
[][]
lmaDisparityStrength
(
boolean
bypass_tests
,
// keep even weak for later analysis. Normally - only in test mode
double
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
double
lma_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
double
lma_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -2607,6 +2608,7 @@ public class Corr2dLMA {
double
lma_ac_offset
// add to a,c coefficients for near-lines where A,C could become negative because of window
){
return
lmaDisparityStrengths
(
bypass_tests
,
//boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
lmas_min_amp
,
// double lmas_min_amp_fg, // minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
lmas_min_amp
,
// double lmas_min_amp_bg, // Same for bg correlation max (only used for multi-max)
lma_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
...
...
@@ -2623,6 +2625,7 @@ public class Corr2dLMA {
// has separate thresholds for scale ratios for foreground and background corr. maximums
public
double
[][][]
lmaDisparityStrengths
(
boolean
bypass_tests
,
// keep even weak for later analysis. Normally - only in test mode
double
lmas_min_amp_fg
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
double
lmas_min_amp_bg
,
// Same for bg correlation max (only used for multi-max)
double
lma_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
...
...
@@ -2635,7 +2638,9 @@ public class Corr2dLMA {
boolean
dbg_mode
,
double
lma_ac_offset
// add to a,c coefficients for near-lines where A,C could become negative because of window
){
double
[][][]
ds
=
new
double
[
numMax
][
numTiles
][
dbg_mode
?
13
:
3
];
double
[][][]
ds
=
new
double
[
numMax
][
numTiles
][
dbg_mode
?
14
:
3
];
int
reason_index
=
(
dbg_mode
&&
bypass_tests
)?
13
:-
1
;
double
[]
rms
=
getRmsTile
();
for
(
int
nmax
=
0
;
nmax
<
numMax
;
nmax
++)
{
double
[][]
maxmin_amp
=
getMaxMinAmpTile
(
nmax
);
// nmax
...
...
@@ -2669,32 +2674,60 @@ public class Corr2dLMA {
double
avg
=
0.50
*(
maxmin_amp
[
tile
][
0
]+
maxmin_amp
[
tile
][
1
]);
// max_min[1] can be negative - filter it out?
double
rrms
=
rms
[
tile
]/
avg
;
if
((
lma_max_rel_rms
>
0.00
)
&&
(
rrms
>
lma_max_rel_rms
))
{
continue
;
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
1
;
}
else
{
continue
;
}
}
if
(
Math
.
max
(
abc
[
tile
][
0
],
abc
[
tile
][
2
])
<
(
lma_min_max_ac
+
lma_ac_offset
))
{
// so old lma_min_max_ac will stay
continue
;
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
2
;
}
else
{
continue
;
}
}
if
((
lma_min_min_ac
>
0.0
)
&&
((
abc
[
tile
][
0
]
<
lma_min_min_ac
)
||
(
abc
[
tile
][
2
]
<
lma_min_min_ac
))){
continue
;
// too large a or c (not sharp along at least one direction)
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
3
;
}
else
{
continue
;
// too large a or c (not sharp along at least one direction)
}
}
double
area
=
0.0
;
double
area
=
100
0.0
;
if
((
abc
[
tile
][
0
]
>
0.0
)
&&
(
abc
[
tile
][
2
]
>
0.0
))
{
// double area_old = 1.0/abc[tile][0] + 1.0/abc[tile][2]; // area of a maximum
area
=
1.0
/
Math
.
sqrt
(
abc
[
tile
][
0
]
*
abc
[
tile
][
2
]);
if
((
lma_max_area
>
0
)
&&
(
area
>
lma_max_area
))
{
continue
;
// too wide maximum
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
4
;
}
else
{
continue
;
// too wide maximum
}
}
}
else
{
continue
;
// not a maximum
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
5
;
}
else
{
continue
;
// not a maximum (keep area = 1000.0)
}
}
double
strength
=
Math
.
sqrt
(
avg
/
rrms
);
// double disparity = -all_pars[DISP_INDEX + offs];
if
((
strength
<
lma_min_strength
)
||
Double
.
isNaN
(
disparity
))
{
continue
;
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
6
;
}
else
{
continue
;
}
}
double
ac
=
abc
[
tile
][
0
]
*
abc
[
tile
][
2
];
if
(
ac
<
0
)
{
continue
;
if
(
bypass_tests
)
{
if
((
reason_index
>
0
)
&&
(
ds
[
nmax
][
tile
][
reason_index
]
==
0
))
ds
[
nmax
][
tile
][
reason_index
]
=
7
;
}
else
{
continue
;
}
}
double
strength1
=
Math
.
sqrt
(
strength
*
Math
.
sqrt
(
ac
));
// / area ); // new strength
ds
[
nmax
][
tile
][
0
]
=
disparity
;
...
...
@@ -2711,7 +2744,6 @@ public class Corr2dLMA {
ds
[
nmax
][
tile
][
10
]
=
strength
;
ds
[
nmax
][
tile
][
11
]
=
rrms
;
ds
[
nmax
][
tile
][
12
]
=
rms
[
tile
];
}
}
}
...
...
src/main/java/com/elphel/imagej/tileprocessor/Correlation2d.java
View file @
ba860911
...
...
@@ -3801,7 +3801,9 @@ public class Correlation2d {
}
// double [][] ds = lma.getDisparityStrength();
ds
=
lma
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lma_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lma_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -3906,6 +3908,7 @@ public class Correlation2d {
}
// double [][] ds = lma.getDisparityStrength();
ds
=
lma
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lma_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lma_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -4414,6 +4417,7 @@ public class Correlation2d {
double
[][]
dispStr
=
lma
.
lmaDisparityStrength
(
//TODO: add parameter to filter out negative minimums ?
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -4423,6 +4427,7 @@ public class Correlation2d {
imgdtt_params
.
lma_str_scale
,
// convert lma-generated strength to match previous ones - scale
imgdtt_params
.
lma_str_offset
,
// convert lma-generated strength to match previous ones - add to result
imgdtt_params
.
lma_ac_offset
// Add to A, C coefficients for near-lines where A,C could become negative because of window
);
if
(
dispStr
[
0
][
1
]
<=
0
)
{
lmaSuccess
=
false
;
...
...
@@ -4942,6 +4947,8 @@ public class Correlation2d {
if
(
lmaSuccess
)
{
lma
.
updateFromVector
();
double
[][][]
dispStrs
=
lma
.
lmaDisparityStrengths
(
//TODO: add parameter to filter out negative minimums ?
imgdtt_params
.
lmamask_dbg
,
// false, // boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_min_amp_bg
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
...
...
@@ -4953,6 +4960,11 @@ public class Correlation2d {
imgdtt_params
.
lma_str_offset
,
// convert lma-generated strength to match previous ones - add to result
false
,
// boolean dbg_mode
imgdtt_params
.
lma_ac_offset
// Add to A, C coefficients for near-lines where A,C could become negative because of window
);
for
(
int
nmax
=
00
;
nmax
<
dispStrs
.
length
;
nmax
++)
if
(
dispStrs
[
nmax
][
0
][
1
]
<=
0
)
{
lmaSuccess
=
false
;
...
...
src/main/java/com/elphel/imagej/tileprocessor/ImageDtt.java
View file @
ba860911
...
...
@@ -2860,8 +2860,11 @@ public class ImageDtt extends ImageDttCPU {
// keep for now for mono, find out what do they mean for macro mode
final
int
corr_size
=
transform_size
*
2
-
1
;
final
String
[]
debug_lma_titles_nobi
=
{
"disp_samples"
,
"num_cnvx_samples"
,
"num_comb_samples"
,
"num_lmas"
,
"num_iters"
,
"rms"
};
final
String
[]
debug_lma_titles_bi
=
{
"disparity"
,
"strength_mod"
,
"strength"
,
"area"
,
"ac"
,
"min(a,c)"
,
"max(a,c)"
,
"a"
,
"c"
,
"b"
,
"str1"
,
"rrms"
,
"rms"
};
//FIXME: lmaDisparityStrengths expects length = 14;
final
String
[]
debug_lma_titles_nobi
=
{
"disp_samples"
,
"num_cnvx_samples"
,
"num_comb_samples"
,
"num_lmas"
,
"num_iters"
,
"rms"
};
final
String
[]
debug_lma_titles_bi
=
{
"disparity"
,
"strength_mod"
,
"strength"
,
"area"
,
"ac"
,
"min(a,c)"
,
"max(a,c)"
,
"a"
,
"c"
,
"b"
,
"str1"
,
"rrms"
,
"rms"
,
"fail_reason"
};
final
String
[]
debug_lma_titles
=
imgdtt_params
.
bimax_dual_LMA
?
debug_lma_titles_bi:
debug_lma_titles_nobi
;
// final double [][] debug_lma = imgdtt_params.lmamask_dbg? (new double [6][tilesX*tilesY]):null;
final
double
[][]
debug_lma
=
imgdtt_params
.
lmamask_dbg
?
(
new
double
[
debug_lma_titles
.
length
][
tilesX
*
tilesY
]):
null
;
...
...
@@ -3237,6 +3240,7 @@ public class ImageDtt extends ImageDttCPU {
if
(
lma_dual
!=
null
)
{
boolean
dbg_dispStrs
=
(
debug_lma
!=
null
);
double
[][][]
dispStrs
=
lma_dual
.
lmaDisparityStrengths
(
//TODO: add parameter to filter out negative minimums ?
dbg_dispStrs
,
// false, // boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_min_amp_bg
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
...
...
@@ -3365,6 +3369,7 @@ public class ImageDtt extends ImageDttCPU {
double
[][]
ds
=
null
;
if
(
lma2
!=
null
)
{
ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -4821,6 +4826,7 @@ public class ImageDtt extends ImageDttCPU {
if
(
dbg_img
!=
null
)
dbg_img
[
1
][
nclust
]
=
1.0
;
// was for single tile
disp_str
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -5119,6 +5125,7 @@ public class ImageDtt extends ImageDttCPU {
if
(
lma2
!=
null
)
{
// was for single tile
disp_str
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
src/main/java/com/elphel/imagej/tileprocessor/ImageDttCPU.java
View file @
ba860911
...
...
@@ -2234,6 +2234,7 @@ public class ImageDttCPU {
if
(
lma2
!=
null
)
{
dbg_num_good_lma
++;
disp_str
[
cTile
]
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -2418,6 +2419,7 @@ public class ImageDttCPU {
double
[][]
ddnd
=
lma2
.
getDdNd
();
double
[]
stats
=
lma2
.
getStats
(
num_good_tiles
);
double
[][]
lma_ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lma_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lma_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -3156,6 +3158,7 @@ public class ImageDttCPU {
double
[][]
ds
=
null
;
if
(
lma2
!=
null
)
{
ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -4262,6 +4265,7 @@ public class ImageDttCPU {
double
[][]
ds
=
null
;
if
(
lma2
!=
null
)
{
ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -5183,6 +5187,7 @@ public class ImageDttCPU {
double
[][]
ds
=
null
;
if
(
lma2
!=
null
)
{
ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -15610,6 +15615,7 @@ public class ImageDttCPU {
double
[][]
ds
=
null
;
if
(
lma2
!=
null
)
{
ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
@@ -16621,6 +16627,7 @@ public class ImageDttCPU {
double
[][]
ds
=
null
;
if
(
lma2
!=
null
)
{
ds
=
lma2
.
lmaDisparityStrength
(
false
,
// boolean bypass_tests, // keep even weak for later analysis. Normally - only in test mode
imgdtt_params
.
lmas_min_amp
,
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
imgdtt_params
.
lmas_max_rel_rms
,
// maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params
.
lmas_min_strength
,
// minimal composite strength (sqrt(average amp squared over absolute RMS)
...
...
src/main/java/com/elphel/imagej/tileprocessor/ImageDttParameters.java
View file @
ba860911
...
...
@@ -221,11 +221,11 @@ public class ImageDttParameters {
// for small disparities 0.5...0.7 is OK, for larger, and small objects on uniform background, may need 0.2
public
double
lmas_min_amp
=
0.1
;
// minimal ratio of minimal pair correlation amplitude to maximal pair correlation amplitude
public
double
lmas_min_amp_bg
=
0.01
;
// same for background objects (all but fg)
public
double
lmas_max_rel_rms
=
0.3
;
// LWIR16: 0.5 maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
public
double
lmas_min_strength
=
1.1
;
// 0.7; // LWIR16: 0.4 minimal composite strength (sqrt(average amp squared over absolute RMS)
public
double
lmas_min_max_ac
=
0.175
;
// 0.14; // LWIR16: 0.01 maximal of a and C coefficients minimum (measures sharpest point/line)
public
double
lmas_max_rel_rms
=
0.
5
;
// 0.
3; // LWIR16: 0.5 maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
public
double
lmas_min_strength
=
1.
0
;
// 1.
1; // 0.7; // LWIR16: 0.4 minimal composite strength (sqrt(average amp squared over absolute RMS)
public
double
lmas_min_max_ac
=
0.
04
;
// 0.
175; // 0.14; // LWIR16: 0.01 maximal of a and C coefficients minimum (measures sharpest point/line)
public
double
lmas_min_min_ac
=
0.003
;
// LWIR16: 0.007 minimal of a and C coefficients minimum (measures sharpest point)
public
double
lmas_max_area
=
30.0
;
// LWIR16: 0.0 maximal half-area (if > 0.0)
public
double
lmas_max_area
=
45.0
;
//
30.0; // LWIR16: 0.0 maximal half-area (if > 0.0)
// public boolean lma_gaussian = false; // model correlation maximum as a Gaussian (false - as a parabola)
public
int
lma_gaussian
=
0
;
// 0 - parabola, 1 - Gaussian, 2 - limited parabola, 3 - limited squared parabola
...
...
@@ -1128,6 +1128,7 @@ public class ImageDttParameters {
for
(
int
i
=
0
;
i
<
4
;
i
++)
for
(
int
j
=
0
;
j
<
2
;
j
++)
{
this
.
lma_dbg_offset
[
i
][
j
]=
gd
.
getNextNumber
();
}
return
;
}
...
...
src/main/java/com/elphel/imagej/tileprocessor/IntersceneMatchParameters.java
View file @
ba860911
...
...
@@ -181,8 +181,8 @@ public class IntersceneMatchParameters {
public
double
pd_weight
=
0.5
;
// correlations (post) accumulated in PD
public
boolean
td_nopd_only
=
true
;
// only use TD accumulated data if no safe PD is available for the tile.
public
double
min_str
=
0.25
;
// minimal correlation strength for all but TD-accumulated layer
public
double
min_str_sum
=
0.8
;
// minimal correlation strength for TD-accumulated layer
public
double
min_str
=
0.2
;
// 0.2
5; // minimal correlation strength for all but TD-accumulated layer
public
double
min_str_sum
=
0.
7
;
// 0.
8; // minimal correlation strength for TD-accumulated layer
public
int
min_neibs
=
2
;
// minimal number of strong neighbors (> min_str)
public
double
weight_zero_neibs
=
0.2
;
// Reduce weight for no-neib (1.0 for all 8)
public
double
half_disparity
=
5.0
;
// Reduce weight twice for this disparity
...
...
src/main/java/com/elphel/imagej/tileprocessor/OpticalFlow.java
View file @
ba860911
...
...
@@ -4632,7 +4632,11 @@ public class OpticalFlow {
String
scenes_suffix
=
quadCLTs
[
quadCLTs
.
length
-
1
].
getImageName
()+
"-SEQ-"
+
IntersceneMatchParameters
.
MODES3D
[
mode3d
+
1
]
+
"-"
+(
toRGB
?
"COLOR"
:
"MONO"
);
if
(!
toRGB
&&
um_mono
)
{
scenes_suffix
+=
String
.
format
(
"-UM%.1f_%.2f"
,
um_sigma
,
um_weight
);
if
(
mono_fixed
)
{
scenes_suffix
+=
String
.
format
(
"-UM%.1f_%.2f_%.0f"
,
um_sigma
,
um_weight
,
mono_range
);
}
else
{
scenes_suffix
+=
String
.
format
(
"-UM%.1f_%.2f_A"
,
um_sigma
,
um_weight
);
}
}
int
num_stereo
=
(
is_stereo
&&
(
mode3d
>
0
))?
2
:
1
;
// only for 3D views
boolean
combine_left_right
=
(
num_stereo
>
1
)
&&
(
stereo_merge
||
(
anaglyth_en
&&
!
toRGB
));
...
...
@@ -4645,13 +4649,13 @@ public class OpticalFlow {
-
view_back_meters
};
// Z offset
if
(
num_stereo
>
1
)
{
scenes_suffix
=
scenes_suffix_pair
+
((
nstereo
>
0
)?
"-RIGHT"
:
"-LEFT"
);
// check if opposite
scenes_suffix
+=
"-B"
+
views
[
ibase
][
0
]
;
scenes_suffix
+=
"-B"
+
String
.
format
(
"%.0f"
,
views
[
ibase
][
0
])
;
}
if
(
views
[
ibase
][
1
]
!=
0
)
{
scenes_suffix
+=
"-Y"
+
views
[
ibase
][
1
]
;
scenes_suffix
+=
"-Y"
+
String
.
format
(
"%.0f"
,
views
[
ibase
][
1
])
;
}
if
(
views
[
ibase
][
2
]
!=
0
)
{
scenes_suffix
+=
"-Z"
+
views
[
ibase
][
2
]
;
scenes_suffix
+=
"-Z"
+
String
.
format
(
"%.0f"
,
views
[
ibase
][
2
])
;
}
double
[][]
ds_vantage
=
new
double
[][]
{
selected_disparity
,
selected_strength
};
if
((
views
[
ibase
][
0
]
!=
0
)
||
(
views
[
ibase
][
1
]
!=
0
)
||
(
views
[
ibase
][
2
]
!=
0
))
{
...
...
@@ -5039,13 +5043,16 @@ public class OpticalFlow {
double
[]
atr_offset
=
ZERO3
;
String
scenes_suffix
=
""
;
if
(
img_views
[
ibase
][
0
]
!=
0
)
{
scenes_suffix
+=
"-B"
+
img_views
[
ibase
][
0
];
scenes_suffix
+=
"-B"
+
String
.
format
(
"%.0f"
,
img_views
[
ibase
][
0
]);
}
if
(
img_views
[
ibase
][
1
]
!=
0
)
{
scenes_suffix
+=
"-Y"
+
img_views
[
ibase
][
1
];
scenes_suffix
+=
"-Y"
+
String
.
format
(
"%.0f"
,
img_views
[
ibase
][
1
]);
}
if
(
img_views
[
ibase
][
2
]
!=
0
)
{
scenes_suffix
+=
"-Z"
+
img_views
[
ibase
][
2
];
scenes_suffix
+=
"-Z"
+
String
.
format
(
"%.0f"
,
img_views
[
ibase
][
2
]);
}
// calculate virtual view fg_ds_virt from the reference ds_fg;
boolean
debug_ds_fg_virt
=
false
;
// false;
...
...
@@ -11689,7 +11696,7 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
if
(
ref_scene
.
getGPU
()
!=
null
)
{
ref_scene
.
getGPU
().
setGpu_debug_level
(
debug_level
-
4
);
// monitor GPU ops >=-1
}
final
double
disparity_corr
=
0.0
;
// (z_correction == 0) ? 0.0 : geometryCorrection.getDisparityFromZ(1.0/z_correction);
final
double
disparity_corr
=
0.0
0
;
// (z_correction == 0) ? 0.0 : geometryCorrection.getDisparityFromZ(1.0/z_correction);
//ref_disparity
if
(
ref_disparity
==
null
)
{
ref_disparity
=
ref_scene
.
getDLS
()[
use_lma_dsi
?
1
:
0
];
...
...
@@ -11830,7 +11837,10 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
threadsMax
,
// final int threadsMax, // maximal number of threads to launch
debug_level
);
// final int globalDebugLevel);
if
(
coord_motion
==
null
)
{
System
.
out
.
println
(
"clt_process_tl_interscene() returned null"
);
return
null
;
}
if
(
mov_en
)
{
String
debug_image_name
=
mov_debug_images
?
(
scene
.
getImageName
()+
"-"
+
ref_scene
.
getImageName
()+
"-movements"
):
null
;
boolean
[]
move_mask
=
getMovementMask
(
...
...
@@ -12626,6 +12636,10 @@ public double[][] correlateIntersceneDebug( // only uses GPU and quad
sensor_mask_inter
,
// final int sensor_mask_inter, // The bitmask - which sensors to correlate, -1 - all.
facc_2d_img
,
// final float [][][] accum_2d_corr, // if [1][][] - return accumulated 2d correlations (all pairs)final float [][][] accum_2d_corr, // if [1][][] - return accumulated 2d correlations (all pairs)
debug_level
);
// 1); // -1); // int debug_level);
if
(
coord_motion
==
null
)
{
System
.
out
.
println
(
"adjustPairsLMAInterscene() returned null"
);
return
null
;
}
intersceneLma
.
prepareLMA
(
camera_xyz0
,
// final double [] scene_xyz0, // camera center in world coordinates (or null to use instance)
camera_atr0
,
// final double [] scene_atr0, // camera orientation relative to world frame (or null to use instance)
...
...
src/main/java/com/elphel/imagej/tileprocessor/TwoQuadCLT.java
View file @
ba860911
...
...
@@ -11599,7 +11599,7 @@ if (debugLevel > -100) return true; // temporarily !
}
}
}
else
{
for
(
int
i
=
0
;
i
<
quadCLTs
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
quadCLTs
.
length
;
i
++)
{
// requise DSI for each model
numCorrMax
[
i
]
=
multisceneLY
.
getNumCorrMax
(
clt_parameters
,
// CLTParameters clt_parameters,
lma_only
,
// boolean lma_only,
...
...
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