Commit ebc7ffad authored by Andrey Filippov's avatar Andrey Filippov
Browse files

Generating keyframe 16-images

parent 748d396b
Loading
Loading
Loading
Loading
+15 −10
Original line number Diff line number Diff line
@@ -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;
+22 −0
Original line number Diff line number Diff line
@@ -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) {