Esempio n. 1
0
 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()
Esempio n. 2
0
 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()
Esempio n. 3
0
    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()