Commit ebc7ffad authored by Andrey Filippov's avatar Andrey Filippov

Generating keyframe 16-images

parent 748d396b
......@@ -307,6 +307,7 @@ public class IntersceneMatchParameters {
public boolean reuse_video = false; // dry-run video generation, just reassemble video fragments (active if !generate_mapped)
public boolean save_mapped_color = false; // may be not needed when using AVI
public boolean save_mapped_mono = true; // may be not needed when using AVI
public boolean generate_keyframes = false; // generate all sensor images for keyframes, matching DSI_MAIN, not motion blur corrected.
public boolean generate_raw = false;
public boolean generate_inf = false;
public boolean generate_fg = true;
......@@ -1697,8 +1698,8 @@ min_str_neib_fpn 0.35
"Show generated scene sequences in (pseudo) color mode. Disabled in batch mode");
gd.addCheckbox ("Show scene sequences in monochrome", this.show_mapped_mono,
"Show generated scene sequences in monochrome mode. May use Unsharp Mask. Disabled in batch mode.");
gd.addCheckbox ("Save all-sensor keyframe images", this.generate_keyframes,
"Generate all sensor images for keyframes, matching DSI_MAIN, not motion blur corrected.");
gd.addCheckbox ("Generate RAW images", this.generate_raw,
"Raw images from single (top) camera using original view - just after aberration correction and aligning sensors .");
gd.addCheckbox ("Generate INF images", this.generate_inf,
......@@ -3556,6 +3557,7 @@ min_str_neib_fpn 0.35
this.gen_avi_mono = gd.getNextBoolean(); // as video
this.show_mapped_color = gd.getNextBoolean();
this.show_mapped_mono = gd.getNextBoolean();
this.generate_keyframes = gd.getNextBoolean();
this.generate_raw = gd.getNextBoolean();
this.generate_inf = gd.getNextBoolean();
this.generate_fg = gd.getNextBoolean();
......@@ -4720,6 +4722,7 @@ min_str_neib_fpn 0.35
properties.setProperty(prefix+"show_mapped_color", this.show_mapped_color+""); // boolean
properties.setProperty(prefix+"show_mapped_mono", this.show_mapped_mono+""); // boolean
properties.setProperty(prefix+"generate_keyframes", this.generate_keyframes+""); // boolean
properties.setProperty(prefix+"generate_raw", this.generate_raw+""); // boolean
properties.setProperty(prefix+"generate_inf", this.generate_inf+""); // boolean
properties.setProperty(prefix+"generate_fg", this.generate_fg+""); // boolean
......@@ -5831,6 +5834,7 @@ min_str_neib_fpn 0.35
if (properties.getProperty(prefix+"show_mapped_color")!=null) this.show_mapped_color=Boolean.parseBoolean(properties.getProperty(prefix+"show_mapped_color"));
if (properties.getProperty(prefix+"show_mapped_mono")!=null) this.show_mapped_mono=Boolean.parseBoolean(properties.getProperty(prefix+"show_mapped_mono"));
if (properties.getProperty(prefix+"generate_keyframes")!=null) this.generate_keyframes=Boolean.parseBoolean(properties.getProperty(prefix+"generate_keyframes"));
if (properties.getProperty(prefix+"generate_raw")!=null) this.generate_raw=Boolean.parseBoolean(properties.getProperty(prefix+"generate_raw"));
if (properties.getProperty(prefix+"generate_inf")!=null) this.generate_inf=Boolean.parseBoolean(properties.getProperty(prefix+"generate_inf"));
if (properties.getProperty(prefix+"generate_fg")!=null) this.generate_fg=Boolean.parseBoolean(properties.getProperty(prefix+"generate_fg"));
......@@ -6968,6 +6972,7 @@ min_str_neib_fpn 0.35
imp.show_mapped_color = this.show_mapped_color;
imp.show_mapped_mono = this.show_mapped_mono;
imp.generate_keyframes = this.generate_keyframes;
imp.generate_raw = this.generate_raw;
imp.generate_inf = this.generate_inf;
imp.generate_fg = this.generate_fg;
......
......@@ -4151,6 +4151,8 @@ public class OpticalFlow {
double disp_scan_step = clt_parameters.disp_scan_step;
int disp_scan_count = clt_parameters.disp_scan_count;
boolean no_bg_generate = !clt_parameters.generate_bg;
boolean generate_keyframes = clt_parameters.imp.generate_keyframes;
boolean no_lma = false;
if (fast) {
no_lma = true;
......@@ -4230,6 +4232,26 @@ public class OpticalFlow {
}
boolean ran_photo_each = false;
quadCLT_ref.tp.resetCLTPasses();
if (generate_keyframes) {
int tile_size = quadCLT_ref.getTileSize();
int [] wh = {quadCLT_ref.getTilesX()*tile_size,quadCLT_ref.getTilesY()*tile_size};
double [][] keyframe16 = quadCLT_ref.renderDoubleFromTDMono (
-1, // all sensors // final int sensor_mask,
wh, // null, // int [] wh,
false); // boolean use_reference
String [] titles16 = new String [keyframe16.length];
for (int i = 0; i <titles16.length; i++) {
titles16[i] = "port_"+i;
}
quadCLT_ref.saveDoubleArrayInModelDirectory(
"-KEYFRAME-SENSORS", // String suffix,
titles16, // String [] labels, // or null
keyframe16, // double [][] data,
wh[0], // int width,
wh[1]); // int height)
}
// perform photometric here, after first DSI
if (!skip_photo && (photo_each && (!quadCLT_ref.isPhotometricThis() || !batch_mode))) {
// if (debugLevel > -3) {
......
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