Example #1
0
def sift_pan_desc_generator(path='/home/aurora/hdd/workspace/PycharmProjects/data/N20040103G/'):
    filelists = getFiles(path)
    feature = []
    for index, file in enumerate(filelists):
        sift.process_image(file, 'pan'+str(index)+'.sift')
        feature.append('pan'+str(index)+'.sift')
    return feature
Example #2
0
def sift_aurora_desc_generator(path, des):
    filelists = getFiles(path)
    feature = []
    for index, file in enumerate(filelists):
        sift.process_image(file, des+str(index)+'.sift')
        feature.append(des+str(index)+'.sift')
    return feature
Example #3
0
def sift_pan_desc_generator(path='/home/aurora/hdd/workspace/PycharmProjects/data/N20040103G/'):
    filelists = getFiles(path)
    feature = []
    for index, file in enumerate(filelists):
        sift.process_image(file, 'pan'+str(index)+'.sift')
        feature.append('pan'+str(index)+'.sift')
    return feature
Example #4
0
def sift_matrix():
    featurelist = sift_pan_desc_generator('/home/aurora/hdd/workspace/PycharmProjects/data/pcv_img/panoimages/')
    imlist = getFiles('/home/aurora/hdd/workspace/PycharmProjects/data/pcv_img/panoimages/')
    nbr_images = len(imlist)
    matchscores = np.zeros((nbr_images, nbr_images))
    for i in range(nbr_images):
        for j in range(i, nbr_images):
            print 'comparing ', imlist[i], imlist[j]
            l1, d1 = sift.read_feature_from_file(featurelist[i])
            l2, d2 = sift.read_feature_from_file(featurelist[j])

            matches = sift.match_twosided(d1, d2)
            nbr_matches = sum(matches > 0)
            print 'number of matches = ', nbr_matches
            matchscores[i, j] = nbr_matches
    for i in range(nbr_images):
        for j in range(i + 1, nbr_images):
            matchscores[j, i] = matchscores[i, j]
    np.save('pan_img_matchscore', matchscores)
Example #5
0
def sift_matrix():
    featurelist = sift_pan_desc_generator('/home/aurora/hdd/workspace/PycharmProjects/data/pcv_img/panoimages/')
    imlist = getFiles('/home/aurora/hdd/workspace/PycharmProjects/data/pcv_img/panoimages/')
    nbr_images = len(imlist)
    matchscores = np.zeros((nbr_images, nbr_images))
    for i in range(nbr_images):
        for j in range(i, nbr_images):
            print 'comparing ', imlist[i], imlist[j]
            l1, d1 = sift.read_feature_from_file(featurelist[i])
            l2, d2 = sift.read_feature_from_file(featurelist[j])

            matches = sift.match_twosided(d1, d2)
            nbr_matches = sum(matches > 0)
            print 'number of matches = ', nbr_matches
            matchscores[i, j] = nbr_matches
    for i in range(nbr_images):
        for j in range(i + 1, nbr_images):
            matchscores[j, i] = matchscores[i, j]
    np.save('pan_img_matchscore', matchscores)
Example #6
0
                filename = str(i) + '.png'
                im.save(filename)  # 需要一定大小的临时文件
                g.add_node(
                    pydot.Node(str(i),
                               fontcolor='transparent',
                               shape='rectangle',
                               image=path + filename))
                # 图像对中的第二副图像
                im = Image.open(imlist[j])
                im.thumbnail((100, 100))
                filename = str(j) + '.png'
                im.save(filename)  # 需要一定大小的临时文件
                g.add_node(
                    pydot.Node(str(j),
                               fontcolor='transparent',
                               shape='rectangle',
                               image=path + filename))

                g.add_edge(pydot.Edge(str(i), str(j)))
    g.write_png('whitehouse.png')


if __name__ == '__main__':
    # sift_matrix()
    matchscores = np.load('pan_img_matchscore.npy')
    imlist = getFiles(
        '/home/aurora/hdd/workspace/PycharmProjects/data/pcv_img/panoimages/')
    nbr_images = len(imlist)
    path = '/home/aurora/workspace/PycharmProjects/aurora_detection/img_proc/'
    generat_graph(matchscores, imlist, nbr_images, path)
Example #7
0
    threshold = 2
    # not using the default DAG
    g = pydot.Dot(graph_type='graph')
    for i in range(nbr_images):
        for j in range(i + 1, nbr_images):
            if matchscores[i, j] > threshold:
                # 图像对中的第一幅图像
                im = Image.open(imlist[i])
                im.thumbnail((100, 100))
                filename = str(i) + '.png'
                im.save(filename)  # 需要一定大小的临时文件
                g.add_node(pydot.Node(str(i), fontcolor='transparent', shape='rectangle', image=path + filename))
                # 图像对中的第二副图像
                im = Image.open(imlist[j])
                im.thumbnail((100, 100))
                filename = str(j) + '.png'
                im.save(filename)  # 需要一定大小的临时文件
                g.add_node(pydot.Node(str(j), fontcolor='transparent', shape='rectangle', image=path + filename))

                g.add_edge(pydot.Edge(str(i), str(j)))
    g.write_png('whitehouse.png')


if __name__=='__main__':
    # sift_matrix()
    matchscores = np.load('pan_img_matchscore.npy')
    imlist = getFiles('/home/aurora/hdd/workspace/PycharmProjects/data/pcv_img/panoimages/')
    nbr_images = len(imlist)
    path = '/home/aurora/workspace/PycharmProjects/aurora_detection/img_proc/'
    generat_graph(matchscores, imlist, nbr_images, path)