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
22872131
Commit
22872131
authored
Jul 22, 2019
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed no-tile (empty) meshes export
parent
afd1853a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
38 deletions
+60
-38
CorrectionColorProc.java
...ava/com/elphel/imagej/correction/CorrectionColorProc.java
+6
-2
CLTPass3d.java
src/main/java/com/elphel/imagej/tileprocessor/CLTPass3d.java
+5
-1
QuadCLT.java
src/main/java/com/elphel/imagej/tileprocessor/QuadCLT.java
+49
-35
No files found.
src/main/java/com/elphel/imagej/correction/CorrectionColorProc.java
View file @
22872131
...
...
@@ -267,8 +267,12 @@ public class CorrectionColorProc {
this
.
denoiseMaskChroma
=
dmask
;
// (global, used to return denoise mask to save/show
this
.
denoiseMaskChromaWidth
=
width
;
// width of the this.denoiseMaskChroma image
}
else
{
gb
.
blurDouble
(
dpixels_pr
,
width
,
height
,
colorProcParameters
.
chromaBrightSigma
,
colorProcParameters
.
chromaBrightSigma
,
0.01
);
gb
.
blurDouble
(
dpixels_pb
,
width
,
height
,
colorProcParameters
.
chromaBrightSigma
,
colorProcParameters
.
chromaBrightSigma
,
0.01
);
if
((
width
<=
0
)
||
(
height
<=
0
))
{
System
.
out
.
println
(
"***** BUG oin processColorsWeights: width="
+
width
+
", height="
+
height
+
" ****"
);
}
else
{
gb
.
blurDouble
(
dpixels_pr
,
width
,
height
,
colorProcParameters
.
chromaBrightSigma
,
colorProcParameters
.
chromaBrightSigma
,
0.01
);
gb
.
blurDouble
(
dpixels_pb
,
width
,
height
,
colorProcParameters
.
chromaBrightSigma
,
colorProcParameters
.
chromaBrightSigma
,
0.01
);
}
this
.
denoiseMaskChroma
=
null
;
// (global, used to return denoise mask to save/show
}
for
(
i
=
0
;
i
<
dpixels_pr
.
length
;
i
++)
{
...
...
src/main/java/com/elphel/imagej/tileprocessor/CLTPass3d.java
View file @
22872131
...
...
@@ -169,7 +169,11 @@ public class CLTPass3d{
selected
[
ty
*
tilesX
+
tx
]
=
false
;
// may be omitted
}
}
texture_bounds
=
new
Rectangle
(
minX
,
minY
,
maxX
-
minX
+
1
,
maxY
-
minY
+
1
);
if
(
maxX
<
0
)
{
texture_bounds
=
null
;
}
else
{
texture_bounds
=
new
Rectangle
(
minX
,
minY
,
maxX
-
minX
+
1
,
maxY
-
minY
+
1
);
}
}
public
Rectangle
getTextureBounds
(){
...
...
src/main/java/com/elphel/imagej/tileprocessor/QuadCLT.java
View file @
22872131
...
...
@@ -8226,41 +8226,43 @@ public class QuadCLT {
threadsMax
,
// maximal number of threads to launch
updateStatus
,
batch_mode
?
-
5
:
debugLevel
);
double
[]
scan_disparity
=
new
double
[
tilesX
*
tilesY
];
int
indx
=
0
;
// boolean [] scan_selected = scan.getSelected();
for
(
int
ty
=
0
;
ty
<
tilesY
;
ty
++)
for
(
int
tx
=
0
;
tx
<
tilesX
;
tx
++){
scan_disparity
[
indx
++]
=
infinity_disparity
;
}
// tp.showScan(
// scan, // CLTPass3d scan,
// "infinityDistance");
boolean
showTri
=
false
;
// ((scanIndex < next_pass + 1) && clt_parameters.show_triangles) ||((scanIndex - next_pass) == 73);
try
{
generateClusterX3d
(
x3dOutput
,
wfOutput
,
// output WSavefront if not null
texturePath
,
"INFINITY"
,
// id (scanIndex - next_pass), // id
"INFINITY"
,
// class
bgndScan
.
getTextureBounds
(),
bgndScan
.
selected
,
scan_disparity
,
// scan.disparity_map[ImageDtt.DISPARITY_INDEX_CM],
clt_parameters
.
transform_size
,
clt_parameters
.
correct_distortions
,
// requires backdrop image to be corrected also
showTri
,
// (scanIndex < next_pass + 1) && clt_parameters.show_triangles,
infinity_disparity
,
// 0.3
clt_parameters
.
grow_disp_max
,
// other_range, // 2.0 'other_range - difference from the specified (*_CM)
clt_parameters
.
maxDispTriangle
);
}
catch
(
IOException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
return
false
;
if
(
texturePath
!=
null
)
{
// null if empty image
double
[]
scan_disparity
=
new
double
[
tilesX
*
tilesY
];
int
indx
=
0
;
// boolean [] scan_selected = scan.getSelected();
for
(
int
ty
=
0
;
ty
<
tilesY
;
ty
++)
for
(
int
tx
=
0
;
tx
<
tilesX
;
tx
++){
scan_disparity
[
indx
++]
=
infinity_disparity
;
}
// tp.showScan(
// scan, // CLTPass3d scan,
// "infinityDistance");
boolean
showTri
=
false
;
// ((scanIndex < next_pass + 1) && clt_parameters.show_triangles) ||((scanIndex - next_pass) == 73);
try
{
generateClusterX3d
(
x3dOutput
,
wfOutput
,
// output WSavefront if not null
texturePath
,
"INFINITY"
,
// id (scanIndex - next_pass), // id
"INFINITY"
,
// class
bgndScan
.
getTextureBounds
(),
bgndScan
.
selected
,
scan_disparity
,
// scan.disparity_map[ImageDtt.DISPARITY_INDEX_CM],
clt_parameters
.
transform_size
,
clt_parameters
.
correct_distortions
,
// requires backdrop image to be corrected also
showTri
,
// (scanIndex < next_pass + 1) && clt_parameters.show_triangles,
infinity_disparity
,
// 0.3
clt_parameters
.
grow_disp_max
,
// other_range, // 2.0 'other_range - difference from the specified (*_CM)
clt_parameters
.
maxDispTriangle
);
}
catch
(
IOException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
return
false
;
}
// maybe not needed
bgndScan
.
setBorderTiles
(
bg_border_backup
);
bgndScan
.
setSelected
(
bg_sel_backup
);
}
// maybe not needed
bgndScan
.
setBorderTiles
(
bg_border_backup
);
bgndScan
.
setSelected
(
bg_sel_backup
);
}
}
...
...
@@ -8300,7 +8302,9 @@ public class QuadCLT {
threadsMax
,
// maximal number of threads to launch
updateStatus
,
batch_mode
?
-
5
:
debugLevel
);
if
(
texturePath
==
null
)
{
continue
;
// empty image
}
CLTPass3d
scan
=
tp
.
clt_3d_passes
.
get
(
scanIndex
);
// TODO: use new updated disparity, for now just what was forced for the picture
...
...
@@ -8388,6 +8392,9 @@ public class QuadCLT {
double
maxDispTriangle
)
throws
IOException
{
if
(
bounds
==
null
)
{
return
;
}
int
[][]
indices
=
tp
.
getCoordIndices
(
// starting with 0, -1 - not selected
bounds
,
selected
);
...
...
@@ -8683,6 +8690,10 @@ public class QuadCLT {
boolean
[]
borderTiles
=
scan
.
border_tiles
;
double
[][][][]
texture_tiles
=
scan
.
texture_tiles
;
scan
.
updateSelection
();
// update .selected field (all selected, including border) and Rectangle bounds
if
(
scan
.
getTextureBounds
()
==
null
)
{
System
.
out
.
println
(
"getPassImage(): Empty image!"
);
return
null
;
}
double
[][]
alphaFade
=
tp
.
getAlphaFade
(
clt_parameters
.
transform_size
);
if
((
debugLevel
>
0
)
&&
(
scanIndex
==
1
))
{
String
[]
titles
=
new
String
[
16
];
...
...
@@ -8754,6 +8765,9 @@ public class QuadCLT {
int
width
=
resize
?
(
clt_parameters
.
transform_size
*
scan
.
getTextureBounds
().
width
):
(
clt_parameters
.
transform_size
*
tilesX
);
int
height
=
resize
?
(
clt_parameters
.
transform_size
*
scan
.
getTextureBounds
().
height
):
(
clt_parameters
.
transform_size
*
tilesY
);
if
((
width
<=
0
)
||
(
height
<=
0
))
{
System
.
out
.
println
(
"***** BUG in getPassImage(): width="
+
width
+
", height="
+
height
+
", resize="
+
resize
+
" ****"
);
}
ImagePlus
imp_texture_cluster
=
linearStackToColor
(
clt_parameters
,
...
...
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