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