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

updated version working

parent 7f9773fb
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -175,7 +175,7 @@ public class ComboMatch {
		boolean display_pairs =            false;
		boolean create_map =               false;
		boolean create_equalize =          false;
		boolean use_saved_collection = false; // true; // false;
		boolean use_saved_collection = true; // false;
		boolean save_collection =      false; // true;
		boolean process_correlation = true; // use false to save new version of data
		int     num_tries_fit =       10;
@@ -339,7 +339,7 @@ public class ComboMatch {
				maps_collection = OrthoMapsCollection.readOrthoMapsCollection (orthoMapsCollection_path);
			} catch (ClassNotFoundException | IOException e) {
				use_files_list = true;
				System.out.println("Saved data not found: "+orthoMapsCollection_path+", building from a list "+files_list_path);
				System.out.println("Saved data not found (or is corrupt): "+orthoMapsCollection_path+", building from a list "+files_list_path);
			}
			//files_list_path
			if (!use_files_list) {
@@ -361,10 +361,12 @@ public class ComboMatch {
		}
		
		if (import_export) {
			return updateImportExport(
			boolean OK = updateImportExport(
					omtch_img_set, // String files_base
					maps_collection); //						OrthoMapsCollection maps_collection

			if (!OK) {
				return false;
			}
		}
		
		
@@ -867,7 +869,7 @@ public class ComboMatch {
			maps_collection.processComboMap(
					clt_parameters, // CLTParameters    clt_parameters,
					debugLevel);
			return true;
//			return true; // need to save AGL?
		}
		
		// for all modes - needed for create_overlaps || process_correlation || render_match || pattern_match
@@ -2689,7 +2691,7 @@ adjusted affines[1] for a pair: 1694564291_293695/1694564778_589341
		gd.addStringField ("Scene affines full path",    affines_path, 150, "Path to import/export scenes affines.");     
		gd.addStringField ("Pairwise affines full path", affines2_path, 150, "Path to import/export scenes pairs affines.");     
		gd.addCheckbox    ("Update scene files",         update_files,   "Re-read files as specified in .list file, possibly changing versions");
		gd.addCheckbox    ("Update files metadata",      update_lla,     "Re-read files metadata (if it was modified)");
		gd.addCheckbox    ("Update files metadata",      update_lla,     "Re-read files metadata (if it was modified), needed to calculate AGL.");
		gd.addCheckbox    ("Update kernels/patterns",    update_kernel_patterns, "Re-read kernels and patterns from *.list file");
		gd.addCheckbox    ("Export scene affines",       export_affine,  "Export per-scene affines in text format for migration.");
		gd.addCheckbox    ("Export pairs affines",       export_affine2, "Export per-pair  affines in text format for migration.");
@@ -2726,7 +2728,7 @@ adjusted affines[1] for a pair: 1694564291_293695/1694564778_589341
		if (update_lla) {
			System.out.println("Updating map files metadata");
			maps_collection.updateLLA();
			maps_collection.updateNumberScenes();
//			maps_collection.updateNumberScenes(); It is very long
			maps_collection.updateSfmGain();
		}
		if (update_kernel_patterns) {
@@ -2807,14 +2809,14 @@ adjusted affines[1] for a pair: 1694564291_293695/1694564778_589341
					}
				}
			}
			maps_collection.updateNumberScenes();
//			maps_collection.updateNumberScenes();
			System.out.println("Updated "+num_updated_affines+" affines of "+affine_import.size()+" specified. There are "+
			maps_collection.ortho_maps.length+" maps in the system.");
		}
		if (import_affine2) {
			ArrayList<Affine2Import> affine2_import = new ArrayList<Affine2Import>();
			OrthoMapsCollection.getPathsAndScenesFromSourceList(
					affines_path,
					affines2_path,
					null,            // scenes0,
					null,            // ArrayList<AltitudeMismatchKernel> kernels,
					null,            // ArrayList<GroundObjectPattern>    patterns);
@@ -2823,6 +2825,7 @@ adjusted affines[1] for a pair: 1694564291_293695/1694564778_589341
					null,            // ArrayList<AffineImport>           affine_import,
					affine2_import); // ArrayList<Affine2Import>          affine2_import) {
			int num_updated_affines = 0;
			int num_new_affines = 0;
			for (Affine2Import affine2Import: affine2_import) {
				OrthoMap map =  maps_collection.getMap(affine2Import.name1);
				if (map != null) {
@@ -2831,6 +2834,7 @@ adjusted affines[1] for a pair: 1694564291_293695/1694564778_589341
						if (overwrite_affine || !pom.isAffineNonTrivial()) {
							pom.setOverlap(affine2Import.overlap);
							pom.setAffine(affine2Import.affine); // does not clone - OK
							num_updated_affines++;
						}						
					} else {
						OrthoMap map2 =  maps_collection.getMap(affine2Import.name2);
@@ -2841,15 +2845,12 @@ adjusted affines[1] for a pair: 1694564291_293695/1694564778_589341
								Double.NaN,             // double rms,
								zoom_lev,               // int zoom_lev,
								affine2Import.overlap); // double overlap)
						map.setMatch(map2.getName(), pom);
						num_new_affines++;
					}


				}




			}
			System.out.println("Updated "+num_updated_affines+" pairwise affines, setup new "+num_new_affines+" matches. Specified "+affine2_import.size()+" matches.");
		}

		if (update_bl_bc) {
+4 −4
Original line number Diff line number Diff line
@@ -201,16 +201,16 @@ public class OrthoMap implements Comparable <OrthoMap>, Serializable{
	}

	public int getWidth() {
		return getImageData().getWidth(); // orig_width;
		return getImage().getWidth(); // orig_width;
	}
	public int getHeight() {
		return getImageData().getHeight(); //orig_height;
		return getImage().getHeight(); //orig_height;
	}
	public int getAltWidth() {
		return getAltData().getWidth(); // orig_width;
		return getAlt().getWidth(); // orig_width;
	}
	public int getAltHeight() {
		return getAltData().getHeight(); //orig_height;
		return getAlt().getHeight(); //orig_height;
	}
	
	public void setMatch(
+11 −1
Original line number Diff line number Diff line
@@ -62,8 +62,9 @@ public class OrthoMapsCollection implements Serializable{
	
	public static final int VERSION_PRE_ORIENT =  100;
	public static final int VERSION_POST_ORIENT = 101;
	public static final int VERSION_ORANGE =      102;
	
	public static int       LATEST_VERSION = VERSION_POST_ORIENT; // 100; // use when read from .list
	public static int       LATEST_VERSION = VERSION_ORANGE; // 100; // use when read from .list
///	public transient int    current_version = LATEST_VERSION;
	public static int       CURRENT_VERSION = LATEST_VERSION;
	
@@ -341,14 +342,19 @@ public class OrthoMapsCollection implements Serializable{
				System.out.println("updateLLa(): n="+n);
			}
			ortho_maps[n].updateLLA();
			IJ.showStatus("Updating LLA "+n+" of "+ortho_maps.length);
			IJ.showProgress(1.0*n/ortho_maps.length);
		}
		updateAGL();
	}
	
	public void updateAGL() {
		for (int n = 0; n < ortho_maps.length; n++) {
			IJ.showStatus("Updating AGL "+n+" of "+ortho_maps.length);
			ortho_maps[n].agl = Double.NaN;
			ortho_maps[n].agl = ortho_maps[n].getAGL();
			IJ.showProgress(1.0*n/ortho_maps.length);
			
		}		
	}
	
@@ -7122,7 +7128,11 @@ public class OrthoMapsCollection implements Serializable{
			for (int nscene=0; nscene<indices.length; nscene++) {
				int indx = indices[nscene];
				System.out.println("Scene="+indx+", agl="+ortho_maps[indx].getAGL());
				
				double [] qorient = ortho_maps[indx].getQOrinet(); // QuatUtils.invert(ortho_maps[indx].getQOrinet());
				if (qorient == null) {
					qorient = new double [] {1,0,0,0};
				}
				final int src_width = ortho_maps[indx].getImageData().width;   // assuming same image size for alt and texture
				final int src_height = ortho_maps[indx].getImageData().height; // assuming same image size for alt and texture
				final double [] image_data = ortho_maps[indx].getImageData().getDData();
+20 −11
Original line number Diff line number Diff line
@@ -49,11 +49,15 @@ public class PairwiseOrthoMatch implements Serializable {
	
	private void writeObject(ObjectOutputStream oos) throws IOException {
		oos.defaultWriteObject();
		if (jtj == null) {
			oos.writeObject(Double.NaN);
		} else {
			for (int i = 0; i < jtj.length; i++) {
				for (int j = i; j < jtj[i].length; j++) {
					oos.writeObject(jtj[i][j]);
				}
			}
		}
//		oos.writeObject(overlap);
//		oos.writeObject(equalize1to0);
//		oos.writeObject(alt_data);
@@ -64,9 +68,14 @@ public class PairwiseOrthoMatch implements Serializable {
	private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
		ois.defaultReadObject();
		jtj = new double [6][6]; // readObject does not use constructor!
		readjtj:
			for (int i = 0; i < jtj.length; i++) {
				for (int j = i; j < jtj[i].length; j++) {
					jtj[i][j] = (Double) ois.readObject();
					if (Double.isNaN(jtj[0][0]) && (i==0) && (j==0)) {
						jtj=null;
						break readjtj;
					}
					if (j > i) {
						jtj[j][i] = jtj[i][j];
					}
@@ -79,8 +88,8 @@ public class PairwiseOrthoMatch implements Serializable {
//		alt_data = (double[]) ois.readObject();
//		}
//		if (OrthoMapsCollection.CURRENT_VERSION >= OrthoMapsCollection.VERSION_POST_ORIENT) {
		quat= (double[]) ois.readObject();
		qaffine = (double[][]) ois.readObject();
//		quat= (double[]) ois.readObject();
//		qaffine = (double[][]) ois.readObject();
//		}		
		
	}