Commit 22872131 authored by Andrey Filippov's avatar Andrey Filippov

Fixed no-tile (empty) meshes export

parent afd1853a
...@@ -266,9 +266,13 @@ public class CorrectionColorProc { ...@@ -266,9 +266,13 @@ public class CorrectionColorProc {
} }
this.denoiseMaskChroma=dmask; // (global, used to return denoise mask to save/show this.denoiseMaskChroma=dmask; // (global, used to return denoise mask to save/show
this.denoiseMaskChromaWidth=width; // width of the this.denoiseMaskChroma image this.denoiseMaskChromaWidth=width; // width of the this.denoiseMaskChroma image
} else {
if ((width <= 0) || (height <= 0)) {
System.out.println("***** BUG oin processColorsWeights: width="+width+", height="+height+" ****");
} else { } else {
gb.blurDouble(dpixels_pr, width, height, colorProcParameters.chromaBrightSigma, colorProcParameters.chromaBrightSigma, 0.01); gb.blurDouble(dpixels_pr, width, height, colorProcParameters.chromaBrightSigma, colorProcParameters.chromaBrightSigma, 0.01);
gb.blurDouble(dpixels_pb, 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 this.denoiseMaskChroma=null; // (global, used to return denoise mask to save/show
} }
for (i=0;i<dpixels_pr.length;i++) { for (i=0;i<dpixels_pr.length;i++) {
......
...@@ -169,8 +169,12 @@ public class CLTPass3d{ ...@@ -169,8 +169,12 @@ public class CLTPass3d{
selected[ty * tilesX + tx] = false; // may be omitted selected[ty * tilesX + tx] = false; // may be omitted
} }
} }
if (maxX < 0) {
texture_bounds = null;
} else {
texture_bounds = new Rectangle(minX, minY, maxX - minX +1, maxY - minY +1 ); texture_bounds = new Rectangle(minX, minY, maxX - minX +1, maxY - minY +1 );
} }
}
public Rectangle getTextureBounds(){ public Rectangle getTextureBounds(){
return texture_bounds; return texture_bounds;
......
...@@ -8226,6 +8226,7 @@ public class QuadCLT { ...@@ -8226,6 +8226,7 @@ public class QuadCLT {
threadsMax, // maximal number of threads to launch threadsMax, // maximal number of threads to launch
updateStatus, updateStatus,
batch_mode ? -5: debugLevel); batch_mode ? -5: debugLevel);
if (texturePath != null) { // null if empty image
double [] scan_disparity = new double [tilesX * tilesY]; double [] scan_disparity = new double [tilesX * tilesY];
int indx = 0; int indx = 0;
// boolean [] scan_selected = scan.getSelected(); // boolean [] scan_selected = scan.getSelected();
...@@ -8263,6 +8264,7 @@ public class QuadCLT { ...@@ -8263,6 +8264,7 @@ public class QuadCLT {
bgndScan.setSelected(bg_sel_backup); bgndScan.setSelected(bg_sel_backup);
} }
} }
}
...@@ -8300,7 +8302,9 @@ public class QuadCLT { ...@@ -8300,7 +8302,9 @@ public class QuadCLT {
threadsMax, // maximal number of threads to launch threadsMax, // maximal number of threads to launch
updateStatus, updateStatus,
batch_mode ? -5: debugLevel); batch_mode ? -5: debugLevel);
if (texturePath == null) {
continue; // empty image
}
CLTPass3d scan = tp.clt_3d_passes.get(scanIndex); CLTPass3d scan = tp.clt_3d_passes.get(scanIndex);
// TODO: use new updated disparity, for now just what was forced for the picture // TODO: use new updated disparity, for now just what was forced for the picture
...@@ -8388,6 +8392,9 @@ public class QuadCLT { ...@@ -8388,6 +8392,9 @@ public class QuadCLT {
double maxDispTriangle double maxDispTriangle
) throws IOException ) throws IOException
{ {
if (bounds == null) {
return;
}
int [][] indices = tp.getCoordIndices( // starting with 0, -1 - not selected int [][] indices = tp.getCoordIndices( // starting with 0, -1 - not selected
bounds, bounds,
selected); selected);
...@@ -8683,6 +8690,10 @@ public class QuadCLT { ...@@ -8683,6 +8690,10 @@ public class QuadCLT {
boolean [] borderTiles = scan.border_tiles; boolean [] borderTiles = scan.border_tiles;
double [][][][] texture_tiles = scan.texture_tiles; double [][][][] texture_tiles = scan.texture_tiles;
scan.updateSelection(); // update .selected field (all selected, including border) and Rectangle bounds 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); double [][]alphaFade = tp.getAlphaFade(clt_parameters.transform_size);
if ((debugLevel > 0) && (scanIndex == 1)) { if ((debugLevel > 0) && (scanIndex == 1)) {
String [] titles = new String[16]; String [] titles = new String[16];
...@@ -8754,6 +8765,9 @@ public class QuadCLT { ...@@ -8754,6 +8765,9 @@ public class QuadCLT {
int width = resize ? (clt_parameters.transform_size * scan.getTextureBounds().width): (clt_parameters.transform_size * tilesX); 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); 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( ImagePlus imp_texture_cluster = linearStackToColor(
clt_parameters, clt_parameters,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment