Loading src/main/java/com/elphel/imagej/cameras/CLTParameters.java +78 −0 Original line number Original line Diff line number Diff line Loading @@ -392,6 +392,19 @@ public class CLTParameters { public double tex_distort = 0.8; // Maximal texture distortion to accumulate multiple scenes (0 - any) public double tex_distort = 0.8; // Maximal texture distortion to accumulate multiple scenes (0 - any) public double tex_mb = 1.0; // Reduce texture weight if motion blur exceeds this (as square of MB length) public double tex_mb = 1.0; // Reduce texture weight if motion blur exceeds this (as square of MB length) public boolean tex_um = true; // Use unsharp mask filter for textures public double tex_um_sigma = 10.0; // Unsharp mask sigma for textures public double tex_um_weight = 0.97;// Unsharp mask weight public boolean tex_lwir_autorange = true; // Autorange LWIR textures public boolean tex_um_fixed = false; // Use fixed range after unsharp mask instead of autorange public double tex_um_range = 500; // Full range after unsharp mask public boolean tex_hist_norm = true; // Normalize texture histogram public double tex_hist_amount = 0.7; // Texture histogram normalization amount (0.0 - no normalization, 1.0 - full normalization) public int tex_hist_bins = 1024; // Number of histogram bins to use for texture histograms public int tex_hist_segments = 32; // Number of evenly-spaced percentiles to use for histogram normalization public boolean tex_color = true; // Use pseudo-colored textures public int tex_palette = 2; // Palette number for pseudo colors public boolean show_textures = true; // show generated textures public boolean show_textures = true; // show generated textures public boolean debug_filters = false;// show intermediate results of filtering public boolean debug_filters = false;// show intermediate results of filtering // not used anywhere so far // not used anywhere so far Loading Loading @@ -1394,6 +1407,19 @@ public class CLTParameters { properties.setProperty(prefix+"tex_distort", this.tex_distort+""); // double properties.setProperty(prefix+"tex_distort", this.tex_distort+""); // double properties.setProperty(prefix+"tex_mb", this.tex_mb+""); // double properties.setProperty(prefix+"tex_mb", this.tex_mb+""); // double properties.setProperty(prefix+"tex_um", this.tex_um+""); // boolean properties.setProperty(prefix+"tex_um_sigma", this.tex_um_sigma+""); // double properties.setProperty(prefix+"tex_um_weight", this.tex_um_weight+""); // double properties.setProperty(prefix+"tex_lwir_autorange", this.tex_lwir_autorange+""); // boolean properties.setProperty(prefix+"tex_um_fixed", this.tex_um_fixed+""); // boolean properties.setProperty(prefix+"tex_um_range", this.tex_um_range+""); // double properties.setProperty(prefix+"tex_hist_norm", this.tex_hist_norm+""); // boolean properties.setProperty(prefix+"tex_hist_amount", this.tex_hist_amount+""); // double properties.setProperty(prefix+"tex_hist_bins", this.tex_hist_bins+""); // int properties.setProperty(prefix+"tex_hist_segments", this.tex_hist_segments+""); // int properties.setProperty(prefix+"tex_color", this.tex_color+""); // boolean properties.setProperty(prefix+"tex_palette", this.tex_palette+""); // int properties.setProperty(prefix+"show_textures", this.show_textures+""); properties.setProperty(prefix+"show_textures", this.show_textures+""); properties.setProperty(prefix+"debug_filters", this.debug_filters+""); properties.setProperty(prefix+"debug_filters", this.debug_filters+""); Loading Loading @@ -2274,6 +2300,19 @@ public class CLTParameters { if (properties.getProperty(prefix+"tex_distort")!=null) this.tex_distort=Double.parseDouble(properties.getProperty(prefix+"tex_distort")); if (properties.getProperty(prefix+"tex_distort")!=null) this.tex_distort=Double.parseDouble(properties.getProperty(prefix+"tex_distort")); if (properties.getProperty(prefix+"tex_mb")!=null) this.tex_mb=Double.parseDouble(properties.getProperty(prefix+"tex_mb")); if (properties.getProperty(prefix+"tex_mb")!=null) this.tex_mb=Double.parseDouble(properties.getProperty(prefix+"tex_mb")); if (properties.getProperty(prefix+"tex_um")!=null) this.tex_um=Boolean.parseBoolean(properties.getProperty(prefix+"tex_um")); if (properties.getProperty(prefix+"tex_um_sigma")!=null) this.tex_um_sigma=Double.parseDouble(properties.getProperty(prefix+"tex_um_sigma")); if (properties.getProperty(prefix+"tex_um_weight")!=null) this.tex_um_weight=Double.parseDouble(properties.getProperty(prefix+"tex_um_weight")); if (properties.getProperty(prefix+"tex_lwir_autorange")!=null) this.tex_lwir_autorange=Boolean.parseBoolean(properties.getProperty(prefix+"tex_lwir_autorange")); if (properties.getProperty(prefix+"tex_um_fixed")!=null) this.tex_um_fixed=Boolean.parseBoolean(properties.getProperty(prefix+"tex_um_fixed")); if (properties.getProperty(prefix+"tex_um_range")!=null) this.tex_um_range=Double.parseDouble(properties.getProperty(prefix+"tex_um_range")); if (properties.getProperty(prefix+"tex_hist_norm")!=null) this.tex_hist_norm=Boolean.parseBoolean(properties.getProperty(prefix+"tex_hist_norm")); if (properties.getProperty(prefix+"tex_hist_amount")!=null) this.tex_hist_amount=Double.parseDouble(properties.getProperty(prefix+"tex_hist_amount")); if (properties.getProperty(prefix+"tex_hist_bins")!=null) this.tex_hist_bins=Integer.parseInt(properties.getProperty(prefix+"tex_hist_bins")); if (properties.getProperty(prefix+"tex_hist_segments")!=null) this.tex_hist_segments=Integer.parseInt(properties.getProperty(prefix+"tex_hist_segments")); if (properties.getProperty(prefix+"tex_color")!=null) this.tex_color=Boolean.parseBoolean(properties.getProperty(prefix+"tex_color")); if (properties.getProperty(prefix+"tex_palette")!=null) this.tex_palette=Integer.parseInt(properties.getProperty(prefix+"tex_palette")); if (properties.getProperty(prefix+"show_textures")!=null) this.show_textures=Boolean.parseBoolean(properties.getProperty(prefix+"show_textures")); if (properties.getProperty(prefix+"show_textures")!=null) this.show_textures=Boolean.parseBoolean(properties.getProperty(prefix+"show_textures")); if (properties.getProperty(prefix+"debug_filters")!=null) this.debug_filters=Boolean.parseBoolean(properties.getProperty(prefix+"debug_filters")); if (properties.getProperty(prefix+"debug_filters")!=null) this.debug_filters=Boolean.parseBoolean(properties.getProperty(prefix+"debug_filters")); Loading Loading @@ -3313,6 +3352,32 @@ public class CLTParameters { "Maximal texture distortion to accumulate multiple scenes (neighbor tile center offset from the uniform grid. 0 - do not filter"); "Maximal texture distortion to accumulate multiple scenes (neighbor tile center offset from the uniform grid. 0 - do not filter"); gd.addNumericField("Maximal motion blur to reduce weight",this.tex_mb, 5,7,"pix", gd.addNumericField("Maximal motion blur to reduce weight",this.tex_mb, 5,7,"pix", "Reduce texture weight if motion blur exceeds this (as square of MB length)."); "Reduce texture weight if motion blur exceeds this (as square of MB length)."); gd.addMessage ("Textures rendering"); gd.addCheckbox ("Apply unsharp mask", this.tex_um, "Use unsharp mask filter for texture."); gd.addNumericField("Unsharp mask sigma", this.tex_um_sigma, 5,7,"pix", "Unsharp mask sigma for textures."); gd.addNumericField("Unsharp mask weight", this.tex_um_weight, 5,7,"", "Unsharp mask weight."); gd.addCheckbox ("Autorange LWIR textures", this.tex_lwir_autorange, "Autorange LWIR textures (inluding after unsharp mask)."); gd.addCheckbox ("Fixed range (after unsharp only)", this.tex_um_fixed, "Use fixed range after unsharp mask instead of autorange."); gd.addNumericField("Full range", this.tex_um_range, 5,7,"counts", "Full range after unsharp mask."); gd.addCheckbox ("Normalize texture histogram", this.tex_hist_norm, "Normalize texture histogram."); gd.addNumericField("Histogram normalization amount", this.tex_hist_amount, 5,7,"", "Texture histogram normalization amount (0.0 - no normalization, 1.0 - full normalization)."); gd.addNumericField("Number of histogram bins", this.tex_hist_bins, 0,3,"", "Number of histogram bins to use for texture histograms."); gd.addNumericField("Number of histogram percentiles", this.tex_hist_segments, 0,3,"", "Number of evenly-spaced percentiles to use for histogram normalization."); gd.addCheckbox ("Use pseudo-color", this.tex_color, "Use pseudo-colored textures (false - monochrome, float)."); gd.addNumericField("Palette number", this.tex_palette, 0,3,"", "Palette number for pseudo colors."); gd.addMessage ("Earlier 3D generation parameters"); gd.addMessage ("Earlier 3D generation parameters"); gd.addCheckbox ("Show generated textures", this.show_textures); gd.addCheckbox ("Show generated textures", this.show_textures); gd.addCheckbox ("show intermediate results of filtering", this.debug_filters); gd.addCheckbox ("show intermediate results of filtering", this.debug_filters); Loading Loading @@ -4329,6 +4394,19 @@ public class CLTParameters { this.tex_distort = gd.getNextNumber(); this.tex_distort = gd.getNextNumber(); this.tex_mb = gd.getNextNumber(); this.tex_mb = gd.getNextNumber(); this.tex_um = gd.getNextBoolean(); this.tex_um_sigma = gd.getNextNumber(); this.tex_um_weight = gd.getNextNumber(); this.tex_lwir_autorange = gd.getNextBoolean(); this.tex_um_fixed = gd.getNextBoolean(); this.tex_um_range = gd.getNextNumber(); this.tex_hist_norm = gd.getNextBoolean(); this.tex_hist_amount = gd.getNextNumber(); this.tex_hist_bins = (int) gd.getNextNumber(); this.tex_hist_segments = (int) gd.getNextNumber(); this.tex_color = gd.getNextBoolean(); this.tex_palette = (int) gd.getNextNumber(); this.show_textures= gd.getNextBoolean(); this.show_textures= gd.getNextBoolean(); this.debug_filters= gd.getNextBoolean(); this.debug_filters= gd.getNextBoolean(); this.min_smth= gd.getNextNumber(); this.min_smth= gd.getNextNumber(); Loading src/main/java/com/elphel/imagej/tileprocessor/OpticalFlow.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -5296,10 +5296,12 @@ public class OpticalFlow { clt_parameters, // CLTParameters clt_parameters, clt_parameters, // CLTParameters clt_parameters, colorProcParameters, // ColorProcParameters colorProcParameters, colorProcParameters, // ColorProcParameters colorProcParameters, rgbParameters, // EyesisCorrectionParameters.RGBParameters rgbParameters, rgbParameters, // EyesisCorrectionParameters.RGBParameters rgbParameters, quadCLTs[quadCLTs.length-1], // quadCLT_main, // final QuadCLT parameter_scene, // to use for rendering parameters in multi-series sequences // if null - use reference scene quadCLTs, // QuadCLT [] scenes, quadCLTs, // QuadCLT [] scenes, combo_dsn_final, //double [][] combo_dsn_final, // null OK, will read file combo_dsn_final, //double [][] combo_dsn_final, // null OK, will read file updateStatus, // final boolean updateStatus, updateStatus, // final boolean updateStatus, debugLevel + 1); // final int debugLevel) debugLevel); // + 1); // final int debugLevel) System.out.println ("TexturedModel.output3d() -> "+ok_3d); System.out.println ("TexturedModel.output3d() -> "+ok_3d); } } Loading Loading
src/main/java/com/elphel/imagej/cameras/CLTParameters.java +78 −0 Original line number Original line Diff line number Diff line Loading @@ -392,6 +392,19 @@ public class CLTParameters { public double tex_distort = 0.8; // Maximal texture distortion to accumulate multiple scenes (0 - any) public double tex_distort = 0.8; // Maximal texture distortion to accumulate multiple scenes (0 - any) public double tex_mb = 1.0; // Reduce texture weight if motion blur exceeds this (as square of MB length) public double tex_mb = 1.0; // Reduce texture weight if motion blur exceeds this (as square of MB length) public boolean tex_um = true; // Use unsharp mask filter for textures public double tex_um_sigma = 10.0; // Unsharp mask sigma for textures public double tex_um_weight = 0.97;// Unsharp mask weight public boolean tex_lwir_autorange = true; // Autorange LWIR textures public boolean tex_um_fixed = false; // Use fixed range after unsharp mask instead of autorange public double tex_um_range = 500; // Full range after unsharp mask public boolean tex_hist_norm = true; // Normalize texture histogram public double tex_hist_amount = 0.7; // Texture histogram normalization amount (0.0 - no normalization, 1.0 - full normalization) public int tex_hist_bins = 1024; // Number of histogram bins to use for texture histograms public int tex_hist_segments = 32; // Number of evenly-spaced percentiles to use for histogram normalization public boolean tex_color = true; // Use pseudo-colored textures public int tex_palette = 2; // Palette number for pseudo colors public boolean show_textures = true; // show generated textures public boolean show_textures = true; // show generated textures public boolean debug_filters = false;// show intermediate results of filtering public boolean debug_filters = false;// show intermediate results of filtering // not used anywhere so far // not used anywhere so far Loading Loading @@ -1394,6 +1407,19 @@ public class CLTParameters { properties.setProperty(prefix+"tex_distort", this.tex_distort+""); // double properties.setProperty(prefix+"tex_distort", this.tex_distort+""); // double properties.setProperty(prefix+"tex_mb", this.tex_mb+""); // double properties.setProperty(prefix+"tex_mb", this.tex_mb+""); // double properties.setProperty(prefix+"tex_um", this.tex_um+""); // boolean properties.setProperty(prefix+"tex_um_sigma", this.tex_um_sigma+""); // double properties.setProperty(prefix+"tex_um_weight", this.tex_um_weight+""); // double properties.setProperty(prefix+"tex_lwir_autorange", this.tex_lwir_autorange+""); // boolean properties.setProperty(prefix+"tex_um_fixed", this.tex_um_fixed+""); // boolean properties.setProperty(prefix+"tex_um_range", this.tex_um_range+""); // double properties.setProperty(prefix+"tex_hist_norm", this.tex_hist_norm+""); // boolean properties.setProperty(prefix+"tex_hist_amount", this.tex_hist_amount+""); // double properties.setProperty(prefix+"tex_hist_bins", this.tex_hist_bins+""); // int properties.setProperty(prefix+"tex_hist_segments", this.tex_hist_segments+""); // int properties.setProperty(prefix+"tex_color", this.tex_color+""); // boolean properties.setProperty(prefix+"tex_palette", this.tex_palette+""); // int properties.setProperty(prefix+"show_textures", this.show_textures+""); properties.setProperty(prefix+"show_textures", this.show_textures+""); properties.setProperty(prefix+"debug_filters", this.debug_filters+""); properties.setProperty(prefix+"debug_filters", this.debug_filters+""); Loading Loading @@ -2274,6 +2300,19 @@ public class CLTParameters { if (properties.getProperty(prefix+"tex_distort")!=null) this.tex_distort=Double.parseDouble(properties.getProperty(prefix+"tex_distort")); if (properties.getProperty(prefix+"tex_distort")!=null) this.tex_distort=Double.parseDouble(properties.getProperty(prefix+"tex_distort")); if (properties.getProperty(prefix+"tex_mb")!=null) this.tex_mb=Double.parseDouble(properties.getProperty(prefix+"tex_mb")); if (properties.getProperty(prefix+"tex_mb")!=null) this.tex_mb=Double.parseDouble(properties.getProperty(prefix+"tex_mb")); if (properties.getProperty(prefix+"tex_um")!=null) this.tex_um=Boolean.parseBoolean(properties.getProperty(prefix+"tex_um")); if (properties.getProperty(prefix+"tex_um_sigma")!=null) this.tex_um_sigma=Double.parseDouble(properties.getProperty(prefix+"tex_um_sigma")); if (properties.getProperty(prefix+"tex_um_weight")!=null) this.tex_um_weight=Double.parseDouble(properties.getProperty(prefix+"tex_um_weight")); if (properties.getProperty(prefix+"tex_lwir_autorange")!=null) this.tex_lwir_autorange=Boolean.parseBoolean(properties.getProperty(prefix+"tex_lwir_autorange")); if (properties.getProperty(prefix+"tex_um_fixed")!=null) this.tex_um_fixed=Boolean.parseBoolean(properties.getProperty(prefix+"tex_um_fixed")); if (properties.getProperty(prefix+"tex_um_range")!=null) this.tex_um_range=Double.parseDouble(properties.getProperty(prefix+"tex_um_range")); if (properties.getProperty(prefix+"tex_hist_norm")!=null) this.tex_hist_norm=Boolean.parseBoolean(properties.getProperty(prefix+"tex_hist_norm")); if (properties.getProperty(prefix+"tex_hist_amount")!=null) this.tex_hist_amount=Double.parseDouble(properties.getProperty(prefix+"tex_hist_amount")); if (properties.getProperty(prefix+"tex_hist_bins")!=null) this.tex_hist_bins=Integer.parseInt(properties.getProperty(prefix+"tex_hist_bins")); if (properties.getProperty(prefix+"tex_hist_segments")!=null) this.tex_hist_segments=Integer.parseInt(properties.getProperty(prefix+"tex_hist_segments")); if (properties.getProperty(prefix+"tex_color")!=null) this.tex_color=Boolean.parseBoolean(properties.getProperty(prefix+"tex_color")); if (properties.getProperty(prefix+"tex_palette")!=null) this.tex_palette=Integer.parseInt(properties.getProperty(prefix+"tex_palette")); if (properties.getProperty(prefix+"show_textures")!=null) this.show_textures=Boolean.parseBoolean(properties.getProperty(prefix+"show_textures")); if (properties.getProperty(prefix+"show_textures")!=null) this.show_textures=Boolean.parseBoolean(properties.getProperty(prefix+"show_textures")); if (properties.getProperty(prefix+"debug_filters")!=null) this.debug_filters=Boolean.parseBoolean(properties.getProperty(prefix+"debug_filters")); if (properties.getProperty(prefix+"debug_filters")!=null) this.debug_filters=Boolean.parseBoolean(properties.getProperty(prefix+"debug_filters")); Loading Loading @@ -3313,6 +3352,32 @@ public class CLTParameters { "Maximal texture distortion to accumulate multiple scenes (neighbor tile center offset from the uniform grid. 0 - do not filter"); "Maximal texture distortion to accumulate multiple scenes (neighbor tile center offset from the uniform grid. 0 - do not filter"); gd.addNumericField("Maximal motion blur to reduce weight",this.tex_mb, 5,7,"pix", gd.addNumericField("Maximal motion blur to reduce weight",this.tex_mb, 5,7,"pix", "Reduce texture weight if motion blur exceeds this (as square of MB length)."); "Reduce texture weight if motion blur exceeds this (as square of MB length)."); gd.addMessage ("Textures rendering"); gd.addCheckbox ("Apply unsharp mask", this.tex_um, "Use unsharp mask filter for texture."); gd.addNumericField("Unsharp mask sigma", this.tex_um_sigma, 5,7,"pix", "Unsharp mask sigma for textures."); gd.addNumericField("Unsharp mask weight", this.tex_um_weight, 5,7,"", "Unsharp mask weight."); gd.addCheckbox ("Autorange LWIR textures", this.tex_lwir_autorange, "Autorange LWIR textures (inluding after unsharp mask)."); gd.addCheckbox ("Fixed range (after unsharp only)", this.tex_um_fixed, "Use fixed range after unsharp mask instead of autorange."); gd.addNumericField("Full range", this.tex_um_range, 5,7,"counts", "Full range after unsharp mask."); gd.addCheckbox ("Normalize texture histogram", this.tex_hist_norm, "Normalize texture histogram."); gd.addNumericField("Histogram normalization amount", this.tex_hist_amount, 5,7,"", "Texture histogram normalization amount (0.0 - no normalization, 1.0 - full normalization)."); gd.addNumericField("Number of histogram bins", this.tex_hist_bins, 0,3,"", "Number of histogram bins to use for texture histograms."); gd.addNumericField("Number of histogram percentiles", this.tex_hist_segments, 0,3,"", "Number of evenly-spaced percentiles to use for histogram normalization."); gd.addCheckbox ("Use pseudo-color", this.tex_color, "Use pseudo-colored textures (false - monochrome, float)."); gd.addNumericField("Palette number", this.tex_palette, 0,3,"", "Palette number for pseudo colors."); gd.addMessage ("Earlier 3D generation parameters"); gd.addMessage ("Earlier 3D generation parameters"); gd.addCheckbox ("Show generated textures", this.show_textures); gd.addCheckbox ("Show generated textures", this.show_textures); gd.addCheckbox ("show intermediate results of filtering", this.debug_filters); gd.addCheckbox ("show intermediate results of filtering", this.debug_filters); Loading Loading @@ -4329,6 +4394,19 @@ public class CLTParameters { this.tex_distort = gd.getNextNumber(); this.tex_distort = gd.getNextNumber(); this.tex_mb = gd.getNextNumber(); this.tex_mb = gd.getNextNumber(); this.tex_um = gd.getNextBoolean(); this.tex_um_sigma = gd.getNextNumber(); this.tex_um_weight = gd.getNextNumber(); this.tex_lwir_autorange = gd.getNextBoolean(); this.tex_um_fixed = gd.getNextBoolean(); this.tex_um_range = gd.getNextNumber(); this.tex_hist_norm = gd.getNextBoolean(); this.tex_hist_amount = gd.getNextNumber(); this.tex_hist_bins = (int) gd.getNextNumber(); this.tex_hist_segments = (int) gd.getNextNumber(); this.tex_color = gd.getNextBoolean(); this.tex_palette = (int) gd.getNextNumber(); this.show_textures= gd.getNextBoolean(); this.show_textures= gd.getNextBoolean(); this.debug_filters= gd.getNextBoolean(); this.debug_filters= gd.getNextBoolean(); this.min_smth= gd.getNextNumber(); this.min_smth= gd.getNextNumber(); Loading
src/main/java/com/elphel/imagej/tileprocessor/OpticalFlow.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -5296,10 +5296,12 @@ public class OpticalFlow { clt_parameters, // CLTParameters clt_parameters, clt_parameters, // CLTParameters clt_parameters, colorProcParameters, // ColorProcParameters colorProcParameters, colorProcParameters, // ColorProcParameters colorProcParameters, rgbParameters, // EyesisCorrectionParameters.RGBParameters rgbParameters, rgbParameters, // EyesisCorrectionParameters.RGBParameters rgbParameters, quadCLTs[quadCLTs.length-1], // quadCLT_main, // final QuadCLT parameter_scene, // to use for rendering parameters in multi-series sequences // if null - use reference scene quadCLTs, // QuadCLT [] scenes, quadCLTs, // QuadCLT [] scenes, combo_dsn_final, //double [][] combo_dsn_final, // null OK, will read file combo_dsn_final, //double [][] combo_dsn_final, // null OK, will read file updateStatus, // final boolean updateStatus, updateStatus, // final boolean updateStatus, debugLevel + 1); // final int debugLevel) debugLevel); // + 1); // final int debugLevel) System.out.println ("TexturedModel.output3d() -> "+ok_3d); System.out.println ("TexturedModel.output3d() -> "+ok_3d); } } Loading