def main(args): image = cv.LoadImage( args.input_image) featuremap = FeatureMap() featuremap.read_from_file( args.input_features ) classifier = load_classifier_from_file( args.classifier ) if not classifier.is_trained(): print "Warning: using an untrained classifier. This will probably break." label_set = LabelSet() label_set.read_from_file( args.label_set ) window = ClickWindow( image, args.zoom_out) while(True): cont = update_all_windows() if not cont: break if window.update_label: click_pt = window.click_pt closest_pt = min( featuremap.get_feature_points(), key = lambda pt: l2_dist(pt,click_pt) ) feature = featuremap.get_feature( closest_pt ) shape = featuremap.get_shape( closest_pt ) size = featuremap.get_size( closest_pt ) label = classifier.predict_label( feature ) label_name = "None" if label==0 else label_set.get_label_name(label) label_color = cv.RGB(0,0,0) if label==0 else label_set.get_label_color(label) print "Predicted label: %d (%s)"%(label, label_name); window.set_patch( closest_pt, shape, size, label_color ) window.update_label = False
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
def main(args): if args.output_directory: directory = args.output_directory else: directory = os.path.dirname(args.input_features) if directory == "": directory = "." print "No output directory specified. Defaulting to %s" % directory if not os.path.exists(directory): os.makedirs(directory) if args.output_prefix: prefix = args.output_prefix else: prefix, extension = os.path.splitext( os.path.basename(args.input_features)) print "No output prefix selected. Defaulting to %s" % prefix output_file = "%s/%s.libsvm" % (directory, prefix) fm = FeatureMap() fm.read_from_file(args.input_features) labeled_features = [] for pt in fm.get_feature_points(): feature = fm.get_feature(pt) label = fm.get_label(pt) if label < 0: continue if (not args.include_unlabeled) and label == 0: continue labeled_features.append((label, feature)) f = open(output_file, 'w') print len(labeled_features) for (label, feature) in labeled_features: f.write("%d\t" % label) for i, val in enumerate(feature): if val == 0: continue f.write("%d:%f " % (i, val)) f.write("\n") f.close()
def main(args): if args.output_directory: directory = args.output_directory else: directory = os.path.dirname(args.input_features) if directory == "": directory = "." print "No output directory specified. Defaulting to %s"%directory if not os.path.exists(directory): os.makedirs(directory) if args.output_prefix: prefix = args.output_prefix else: prefix, extension = os.path.splitext(os.path.basename(args.input_features)) print "No output prefix selected. Defaulting to %s"%prefix output_file = "%s/%s.libsvm"%(directory,prefix) fm = FeatureMap() fm.read_from_file( args.input_features ) labeled_features = [] for pt in fm.get_feature_points(): feature = fm.get_feature(pt) label = fm.get_label(pt) if label < 0: continue if (not args.include_unlabeled) and label == 0: continue labeled_features.append( (label, feature) ) f = open(output_file,'w') print len(labeled_features) for (label, feature) in labeled_features: f.write("%d\t"%label) for i,val in enumerate(feature): if val == 0: continue f.write("%d:%f "%(i,val)) f.write("\n") f.close()