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