Exemple #1
0
 def predict_label(self, feature):
     knn = compute_knn(self._labeled_features,
                       lambda lf: self.dist(feature, lf.feature), self._k)
     label_counts = {}
     for lf in knn:
         if not lf.label in label_counts.keys():
             label_counts[lf.label] = 0
         label_counts[lf.label] += 1
     return max(label_counts.keys(), key=lambda k: label_counts[k])
 def predict_label( self, feature ):
     knn = compute_knn( self._labeled_features,
                        lambda lf: self.dist(feature, lf.feature ),
                        self._k )
     label_counts = {}
     for lf in knn:
         if not lf.label in label_counts.keys():
             label_counts[lf.label] = 0
         label_counts[lf.label] += 1
     return max(label_counts.keys(), key = lambda k: label_counts[k])
def main(args):
    compared_image = cv.LoadImage( args.compared_image)
    reference_image = cv.LoadImage( args.reference_image )
    compared_featuremap = FeatureMap()
    compared_featuremap.read_from_file( args.compared_features )
    reference_featuremap = FeatureMap()
    reference_featuremap.read_from_file( args.reference_features )
    compare_window = ClickWindow( compared_image, args.compare_zoom_out)
    reference_window = ReferenceWindow( reference_image, args.reference_zoom_out)
    reference_window.move( compare_window.size()[0], 0 ) 

    #nn_solver = pyflann.FLANN()
    while(True):
        cont = update_all_windows()
        if not cont:
            break
        if compare_window.update_nn:
            click_pt = compare_window.click_pt
            closest_pt = min( compared_featuremap.get_feature_points(),
                              key = lambda pt: l2_dist(pt,click_pt) )
            compared_feature = compared_featuremap.get_feature( closest_pt )
            distance_map = {}
            shape_map = {}
            size_map = {}
            for pt in reference_featuremap.get_feature_points():
                distance_map[pt] = l2_dist( compared_feature,
                                              reference_featuremap.get_feature(pt) )
                shape_map[pt] = reference_featuremap.get_shape(pt)
                size_map[pt] = reference_featuremap.get_size(pt)
            
            knn = compute_knn( distance_map.keys(), lambda pt: distance_map[pt], 20 )
            reference_window.set_knn( knn  )
            reference_window.set_distance_map( distance_map )
            reference_window.set_shape_map( shape_map )
            reference_window.set_size_map( size_map )
            compare_window.update_nn = False