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
e5955421
Commit
e5955421
authored
Jun 07, 2026
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New ROI and save enables
parent
2dea0a92
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
2 deletions
+35
-2
CuasDetectRT.java
src/main/java/com/elphel/imagej/cuas/rt/CuasDetectRT.java
+6
-1
IntersceneMatchParameters.java
...lphel/imagej/tileprocessor/IntersceneMatchParameters.java
+29
-1
No files found.
src/main/java/com/elphel/imagej/cuas/rt/CuasDetectRT.java
View file @
e5955421
package
com
.
elphel
.
imagej
.
cuas
.
rt
;
import
java.awt.Rectangle
;
import
java.nio.file.Path
;
import
com.elphel.imagej.cameras.CLTParameters
;
...
...
@@ -167,6 +168,10 @@ public class CuasDetectRT {
int
curt_vel_radius
=
clt_parameters
.
imp
.
curt_vel_radius
;
double
[]
curt_temp_weights
=
clt_parameters
.
imp
.
curt_temp_weights
.
clone
();
boolean
curt_save_c5full
=
clt_parameters
.
imp
.
curt_save_c5full
;
boolean
curt_save_c5rect
=
clt_parameters
.
imp
.
curt_save_c5rect
;
Rectangle
curt_save_select
=
clt_parameters
.
imp
.
curt_save_select
;
// Initialize LoG and other kernel parameters, calculate LoG first, show results
int
kernel3d3_rad
=
1
;
...
...
@@ -278,7 +283,7 @@ public class CuasDetectRT {
// System.arraycopy(dpixels_log, 1, dpixels_pyramid[0], 0, dpixels_pyramid[0].length);
int
center9
=
4
;
int
num_hist_5d
=
cuasRTUtils
.
getNumHist
();
boolean
save_5d_pixels
=
debugLevel
>
-
4
;
boolean
save_5d_pixels
=
curt_save_c5full
;
//
debugLevel > -4;
String
title_conv5d
=
getBaseName
()+
SUFFIX_CONV5D
+
"-PSF"
+
d2s
(
cuasRTUtils
.
getPsfRadius
())+
"-KR"
+
d2s
(
cuasRTUtils
.
getKernel2dRadius
())+
"-NHIST"
+
num_hist_5d
+
"-VELRAD"
+
curt_vel_radius
+
"-VELDEC"
+
curt_vel_decimate
;
...
...
src/main/java/com/elphel/imagej/tileprocessor/IntersceneMatchParameters.java
View file @
e5955421
...
...
@@ -1146,12 +1146,19 @@ min_str_neib_fpn 0.35
public
int
curt_vel_radius
=
5
;
// velocities radius in decimated samples
public
double
[]
curt_temp_weights
=
{
1
,
1
,
1
,
1
,
1
};
// historic weights for 5D convolution ([0] is the latest sample)
// debug/saving images
public
boolean
curt_save_c5full
=
false
;
// save fine velocities [direction][scene][subpixels]
public
boolean
curt_save_c5rect
=
true
;
// save fine velocities for selected rectangle only [scene][flattened image]
public
Rectangle
curt_save_select
=
new
Rectangle
(
98
,
265
,
82
,
24
);
// Example selection for 1773135527_803834
// Airplane mode
public
boolean
air_mode_en
=
false
;
// enable airplane mode
public
boolean
air_sync_ims
=
true
;
// IMS is synchronized
public
boolean
air_disp_corr
=
true
;
// refine disparity offset from IMS movements
public
boolean
air_disp_corr_save
=
false
;
// apply disparity correction to the geometry correction of the master_CLT
// Flat ground detection
public
double
fgnd_percent_low
=
0.01
;
// Discard lowest outliers. Percentile to remove lowest elevation outliers during initial terrain filtering
public
double
fgnd_percent_high
=
0.2
;
// Discard highest outliers. Percentile to remove highest elevation outliers during initial terrain filtering.
...
...
@@ -3407,8 +3414,13 @@ min_str_neib_fpn 0.35
gd
.
addStringField
(
"Historic weight for 5D convolution"
,
IntersceneMatchParameters
.
doublesToString
(
curt_temp_weights
),
80
,
"Historic weights for 5D convolution ([0] is the latest sample). Will be normalized"
);
gd
.
addMessage
(
"=== Debug, saving images ==="
);
gd
.
addCheckbox
(
"Save full velocities hyperstack"
,
this
.
curt_save_c5full
,
"save fine velocities [direction][scene][subpixels]."
);
gd
.
addCheckbox
(
"Save velocities for rectangle"
,
this
.
curt_save_c5rect
,
"save fine velocities for selected rectangle only [scene][flattened image]."
);
gd
.
addStringField
(
"Output selection Rectangle"
,
rectangleToString
(
curt_save_select
),
40
,
"Selection Rectangle:left, top, width,height"
);
//
gd
.
addTab
(
"Airplane"
,
"Airplane mode (fast forward movement, low vertical speed"
);
gd
.
addCheckbox
(
"Enable airplane mode"
,
this
.
air_mode_en
,
"Apply algorithms specific to the airplane mode."
);
...
...
@@ -4901,6 +4913,10 @@ min_str_neib_fpn 0.35
this
.
curt_vel_radius
=
(
int
)
gd
.
getNextNumber
();
this
.
curt_temp_weights
=
IntersceneMatchParameters
.
StringToDoubles
(
gd
.
getNextString
(),
0
);
this
.
curt_save_c5full
=
gd
.
getNextBoolean
();
this
.
curt_save_c5rect
=
gd
.
getNextBoolean
();
this
.
curt_save_select
=
stringToRectangle
(
gd
.
getNextString
());
// Rectangle
this
.
air_mode_en
=
gd
.
getNextBoolean
();
this
.
air_sync_ims
=
gd
.
getNextBoolean
();
this
.
air_disp_corr
=
gd
.
getNextBoolean
();
...
...
@@ -6223,6 +6239,10 @@ min_str_neib_fpn 0.35
properties
.
setProperty
(
prefix
+
"curt_vel_radius"
,
this
.
curt_vel_radius
+
""
);
// int
properties
.
setProperty
(
prefix
+
"curt_temp_weights"
,
IntersceneMatchParameters
.
doublesToString
(
this
.
curt_temp_weights
));
properties
.
setProperty
(
prefix
+
"curt_save_c5full"
,
this
.
curt_save_c5full
+
""
);
// boolean
properties
.
setProperty
(
prefix
+
"curt_save_c5rect"
,
this
.
curt_save_c5rect
+
""
);
// boolean
properties
.
setProperty
(
prefix
+
"curt_save_select"
,
rectangleToString
(
curt_save_select
)+
""
);
// Rectangle
properties
.
setProperty
(
prefix
+
"air_mode_en"
,
this
.
air_mode_en
+
""
);
// boolean
properties
.
setProperty
(
prefix
+
"air_sync_ims"
,
this
.
air_sync_ims
+
""
);
// boolean
properties
.
setProperty
(
prefix
+
"air_disp_corr"
,
this
.
air_disp_corr
+
""
);
// boolean
...
...
@@ -7530,6 +7550,10 @@ min_str_neib_fpn 0.35
if
(
properties
.
getProperty
(
prefix
+
"curt_vel_radius"
)!=
null
)
this
.
curt_vel_radius
=
Integer
.
parseInt
(
properties
.
getProperty
(
prefix
+
"curt_vel_radius"
));
if
(
properties
.
getProperty
(
prefix
+
"curt_temp_weights"
)!=
null
)
this
.
curt_temp_weights
=
IntersceneMatchParameters
.
StringToDoubles
(
properties
.
getProperty
(
prefix
+
"curt_temp_weights"
),
0
);
// use 0
if
(
properties
.
getProperty
(
prefix
+
"curt_save_c5full"
)!=
null
)
this
.
curt_save_c5full
=
Boolean
.
parseBoolean
(
properties
.
getProperty
(
prefix
+
"curt_save_c5full"
));
if
(
properties
.
getProperty
(
prefix
+
"curt_save_c5rect"
)!=
null
)
this
.
curt_save_c5rect
=
Boolean
.
parseBoolean
(
properties
.
getProperty
(
prefix
+
"curt_save_c5rect"
));
if
(
properties
.
getProperty
(
prefix
+
"curt_save_select"
)!=
null
)
this
.
curt_save_select
=
stringToRectangle
((
String
)
properties
.
getProperty
(
prefix
+
"curt_save_select"
));
if
(
properties
.
getProperty
(
prefix
+
"air_mode_en"
)!=
null
)
this
.
air_mode_en
=
Boolean
.
parseBoolean
(
properties
.
getProperty
(
prefix
+
"air_mode_en"
));
if
(
properties
.
getProperty
(
prefix
+
"air_sync_ims"
)!=
null
)
this
.
air_sync_ims
=
Boolean
.
parseBoolean
(
properties
.
getProperty
(
prefix
+
"air_sync_ims"
));
if
(
properties
.
getProperty
(
prefix
+
"air_disp_corr"
)!=
null
)
this
.
air_disp_corr
=
Boolean
.
parseBoolean
(
properties
.
getProperty
(
prefix
+
"air_disp_corr"
));
...
...
@@ -8815,6 +8839,10 @@ min_str_neib_fpn 0.35
imp
.
curt_vel_radius
=
this
.
curt_vel_radius
;
imp
.
curt_temp_weights
=
this
.
curt_temp_weights
.
clone
();
imp
.
curt_save_c5full
=
this
.
curt_save_c5full
;
imp
.
curt_save_c5rect
=
this
.
curt_save_c5rect
;
imp
.
curt_save_select
=
new
Rectangle
(
this
.
curt_save_select
);
imp
.
air_mode_en
=
this
.
air_mode_en
;
imp
.
air_sync_ims
=
this
.
air_sync_ims
;
imp
.
air_disp_corr
=
this
.
air_disp_corr
;
...
...
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