def save_measurements( self ): ip1 = [] ip2 = [] for i in self.measurement1: ip1.append(i/self.image1.scale) for i in self.loaded_measurement1: ip1.append(i/self.image1.scale) for i in self.measurement2: ip2.append(i/self.image2.scale) for i in self.loaded_measurement2: ip2.append(i/self.image2.scale) write_match_file(self.match_file,ip1,ip2) for i in self.__picked_objects: self.canvas.delete(i) for i in self.__match_draw_objects: self.canvas.delete(i) self.measurement1 = [] self.measurement2 = [] self.loaded_measurement1 = [] self.loaded_measurement2 = [] ip1, ip2 = read_match_file( self.match_file ) for i in ip1: self.loaded_measurement1.append(i*self.image1.scale) for i in ip2: self.loaded_measurement2.append(i*self.image2.scale) self.draw_loaded_matches()
def reload_measurements( self ): self.loaded_measurement1 = [] self.loaded_measurement2 = [] if ( os.path.exists(self.match_file) ): ip1, ip2 = read_match_file( self.match_file ) for i in ip1: self.loaded_measurement1.append(i*self.image1.scale) for i in ip2: self.loaded_measurement2.append(i*self.image2.scale) self.draw_loaded_matches()
def __init__(self, image_name1, image_name2 ): self.root = Tk() self.root.resizable(width=True,height=True) self.obj_height = self.root.winfo_screenheight() #self.obj_width = self.root.winfo_screenwidth()/2*0.8 self.obj_width = self.root.winfo_screenwidth()/2 self.last_click = [-1,-1] self.__tmp_objects = [] self.__match_draw_objects = [] self.__picked_objects = [] self.__match_draw_mode = 0 self.measurement1 = [] self.measurement2 = [] self.loaded_measurement1 = [] self.loaded_measurement2 = [] self.transform = identity(3,float) self.image_name1 = image_name1 self.image_name2 = image_name2 self.match_file = image_name1[:image_name1.rfind(".")] + "__" + image_name2[:image_name2.rfind(".")] + ".match" print "Width height: %i %i\n" % (self.obj_width, self.obj_height) # Loading up input images self.image1 = self.load_image( image_name1 ) self.image2 = self.load_image( image_name2 ) # Creating canvas, and drawing self.canvas = Canvas(self.root, width=self.obj_width*2, height=self.image1.photoimage.height()) self.canvas.create_image(1,1, image=self.image1.photoimage,anchor=NW) self.canvas.create_image(1+self.obj_width,1, image=self.image2.photoimage,anchor=NW) self.canvas.bind("<Button-1>",self.button1_click) self.root.bind("<Key>",self.key_press) # Check to see if a match file exists print "Match: ", self.match_file if ( os.path.exists(self.match_file) ): ip1, ip2 = read_match_file( self.match_file ) for i in ip1: self.loaded_measurement1.append(i*self.image1.scale) for i in ip2: self.loaded_measurement2.append(i*self.image2.scale) self.draw_loaded_matches() self.find_homography() self.update_transform() self.canvas.pack() if ( not os.path.exists(self.match_file) ): self.predict_homography()