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
e1fd09c9
Commit
e1fd09c9
authored
Sep 28, 2020
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implementing multi-frame ERS matching
parent
48429931
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
474 additions
and
21 deletions
+474
-21
pom.xml
pom.xml
+15
-0
Eyesis_Correction.java
.../java/com/elphel/imagej/correction/Eyesis_Correction.java
+6
-1
ErsCorrection.java
...n/java/com/elphel/imagej/tileprocessor/ErsCorrection.java
+436
-0
GeometryCorrection.java
...a/com/elphel/imagej/tileprocessor/GeometryCorrection.java
+17
-20
No files found.
pom.xml
View file @
e1fd09c9
...
...
@@ -119,6 +119,21 @@
<version>
1.7.5
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-numbers-quaternion -->
<!--
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-quaternion</artifactId>
<version>1.0-beta1</version>
</dependency>
-->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-math3
</artifactId>
<version>
3.6.1
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/elphel/imagej/correction/Eyesis_Correction.java
View file @
e1fd09c9
...
...
@@ -88,6 +88,7 @@ import com.elphel.imagej.lwir.LwirReader;
import
com.elphel.imagej.readers.EyesisTiff
;
import
com.elphel.imagej.tensorflow.TensorflowInferModel
;
import
com.elphel.imagej.tileprocessor.DttRad2
;
import
com.elphel.imagej.tileprocessor.ErsCorrection
;
import
com.elphel.imagej.tileprocessor.ImageDtt
;
import
com.elphel.imagej.tileprocessor.MLStats
;
import
com.elphel.imagej.tileprocessor.QuadCLT
;
...
...
@@ -718,6 +719,8 @@ private Panel panel1,
addButton
(
"IMU aux"
,
panelClt_GPU
,
color_conf_process_aux
);
addButton
(
"ERS aux"
,
panelClt_GPU
,
color_process_aux
);
addButton
(
"Rotations_test"
,
panelClt_GPU
,
color_stop
);
plugInFrame
.
add
(
panelClt_GPU
);
}
if
(
LWIR_MODE
)
{
...
...
@@ -5193,7 +5196,9 @@ private Panel panel1,
/// imp.show();
/// }
}
/* ======================================================================== */
}
else
if
(
label
.
equals
(
"Rotations_test"
))
{
ErsCorrection
.
test_rotations
();
//JTabbedTest
// End of buttons code
}
...
...
src/main/java/com/elphel/imagej/tileprocessor/ErsCorrection.java
0 → 100644
View file @
e1fd09c9
This diff is collapsed.
Click to expand it.
src/main/java/com/elphel/imagej/tileprocessor/GeometryCorrection.java
View file @
e1fd09c9
...
...
@@ -80,30 +80,30 @@ public class GeometryCorrection {
public
double
heading
=
0.0
;
// degrees, CW (from top) - positive
public
int
numSensors
=
4
;
pr
ivate
double
[]
forward
=
null
;
pr
ivate
double
[]
right
=
null
;
pr
ivate
double
[]
height
=
null
;
pr
ivate
double
[]
roll
=
null
;
// degrees, CW (to target) - positive
pr
otected
double
[]
forward
=
null
;
pr
otected
double
[]
right
=
null
;
pr
otected
double
[]
height
=
null
;
pr
otected
double
[]
roll
=
null
;
// degrees, CW (to target) - positive
public
double
[][]
pXY0
=
null
;
// sensor center XY in pixels
pr
ivate
double
common_right
;
// mm right, camera center
pr
ivate
double
common_forward
;
// mm forward (to target), camera center
pr
ivate
double
common_height
;
// mm up, camera center
pr
ivate
double
common_roll
;
// degrees CW (to target) camera as a whole
pr
ivate
double
[][]
XYZ_he
;
// all cameras coordinates transformed to eliminate heading and elevation (rolls preserved)
pr
ivate
double
[][]
XYZ_her
=
null
;
// XYZ of the lenses in a corrected CCS (adjusted for to elevation, heading, common_roll)
pr
ivate
double
[][]
rXY
=
null
;
// XY pairs of the in a normal plane, relative to disparityRadius
pr
ivate
double
[][]
rXY_ideal
=
{{-
0.5
,
-
0.5
},
{
0.5
,-
0.5
},
{-
0.5
,
0.5
},
{
0.5
,
0.5
}};
pr
otected
double
common_right
;
// mm right, camera center
pr
otected
double
common_forward
;
// mm forward (to target), camera center
pr
otected
double
common_height
;
// mm up, camera center
pr
otected
double
common_roll
;
// degrees CW (to target) camera as a whole
pr
otected
double
[][]
XYZ_he
;
// all cameras coordinates transformed to eliminate heading and elevation (rolls preserved)
pr
otected
double
[][]
XYZ_her
=
null
;
// XYZ of the lenses in a corrected CCS (adjusted for to elevation, heading, common_roll)
pr
otected
double
[][]
rXY
=
null
;
// XY pairs of the in a normal plane, relative to disparityRadius
pr
otected
double
[][]
rXY_ideal
=
{{-
0.5
,
-
0.5
},
{
0.5
,-
0.5
},
{-
0.5
,
0.5
},
{
0.5
,
0.5
}};
public
double
cameraRadius
=
0
;
// average distance from the "mass center" of the sensors to the sensors
public
double
disparityRadius
=
150.0
;
// distance between cameras to normalize disparity units to. sqrt(2)*disparityRadius for quad camera (~=150mm)?
pr
ivate
double
[]
rByRDist
=
null
;
pr
ivate
double
stepR
=
0.0004
;
// 0004 - double, 0.0002 - float to fit into GPU shared memory (was 0.001);
pr
ivate
double
maxR
=
2.0
;
// calculate up to this*distortionRadius
pr
otected
double
[]
rByRDist
=
null
;
pr
otected
double
stepR
=
0.0004
;
// 0004 - double, 0.0002 - float to fit into GPU shared memory (was 0.001);
pr
otected
double
maxR
=
2.0
;
// calculate up to this*distortionRadius
pr
ivate
Matrix
m_balance_xy
=
null
;
// [2*numSensors][2*numSensors] 8x8 matrix to make XY ports correction to have average == 0
pr
ivate
Matrix
m_balance_dd
=
null
;
// [2*numSensors+1)][2*numSensors] 9x8 matrix to extract disparity from dd
pr
otected
Matrix
m_balance_xy
=
null
;
// [2*numSensors][2*numSensors] 8x8 matrix to make XY ports correction to have average == 0
pr
otected
Matrix
m_balance_dd
=
null
;
// [2*numSensors+1)][2*numSensors] 9x8 matrix to extract disparity from dd
...
...
@@ -3631,9 +3631,6 @@ matrix([[-0.125, -0.125, 0.125, 0.125, -0.125, 0.125, -0. , -0. , -0.
return
pXY
;
}
// private Matrix m_balance_xy = null; // [2*numSensors][2*numSensors] 8x8 matrix to make XY ports correction to have average == 0
// private Matrix m_balance_dd = null; // [2*numSensors+1)][2*numSensors] 9x8 matrix to extract disparity from dd
// calculate non-distorted x/y pairs (relative to optical centers) for each port and derivatives
public
double
[]
getPortsDDNDAndDerivativesNew
(
// USED in lwir
...
...
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