Exemplo n.º 1
0
def test_geodesic_distance2d():
    I = np.asarray(Image.open('data/img2d.png').convert('L'), np.float32)
    S = np.zeros_like(I, np.uint8)
    S[100][100] = 1
    t0 = time.time()
    D1 = geodesic_distance.geodesic2d_fast_marching(I, S)
    t1 = time.time()
    D2 = geodesic_distance.geodesic2d_raster_scan(I, S)
    dt1 = t1 - t0
    dt2 = time.time() - t1
    print "runtime(s) of fast marching {0:}".format(dt1)
    print "runtime(s) of raster  scan  {0:}".format(dt2)
    plt.subplot(1, 3, 1)
    plt.imshow(I, cmap='gray')
    plt.autoscale(False)
    plt.plot([100], [100], 'ro')
    plt.axis('off')
    plt.title('input image')

    plt.subplot(1, 3, 2)
    plt.imshow(D1)
    plt.axis('off')
    plt.title('fast marching')

    plt.subplot(1, 3, 3)
    plt.imshow(D2)
    plt.axis('off')
    plt.title('ranster scan')
    plt.show()
Exemplo n.º 2
0
def test_geodesic_distance2d():
    I = np.asarray(Image.open('./data/img2d.png').convert('L'), np.float32)
    S = np.zeros_like(I, np.uint8)
    S[100][100] = 1
    t0 = time.time()
    D1 = geodesic_distance.geodesic2d_fast_marching(I,S)
    t1 = time.time()
    D2 = geodesic_distance.geodesic3d_raster_scan(I,S,np.float32(0),np.float32(1))
    dt1 = t1 - t0
    dt2 = time.time() - t1
    print( "runtime(s) of fast marching {}".format(dt1))
    print( "runtime(s) of raster  scan  {}".format(dt2))
    plt.subplot(1,3,1); plt.imshow(I)
    plt.subplot(1,3,2); plt.imshow(D1)
    plt.subplot(1,3,3); plt.imshow(D2)
    plt.show()
Exemplo n.º 3
0
def test_geodesic_distance2d():
    I = np.asarray(Image.open('data/img2d.png').convert('L'), np.float32)
    S = np.zeros_like(I, np.uint8)
    S[100][100] = 1
    t0 = time.time()
    D1 = geodesic_distance.geodesic2d_fast_marching(I, S)
    t1 = time.time()
    D2 = geodesic_distance_2d(I, S, 1.0, 2)
    dt1 = t1 - t0
    dt2 = time.time() - t1
    D3 = geodesic_distance_2d(I, S, 0.0, 2)
    D4 = geodesic_distance_2d(I, S, 0.5, 2)
    print("runtime(s) of fast marching {0:}".format(dt1))
    print("runtime(s) of raster  scan  {0:}".format(dt2))

    plt.figure(figsize=(15, 5))
    plt.subplot(1, 5, 1)
    plt.imshow(I, cmap='gray')
    plt.autoscale(False)
    plt.plot([100], [100], 'ro')
    plt.axis('off')
    plt.title('(a) input image \n with a seed point')

    plt.subplot(1, 5, 2)
    plt.imshow(D1)
    plt.axis('off')
    plt.title('(b) Geodesic distance \n based on fast marching')

    plt.subplot(1, 5, 3)
    plt.imshow(D2)
    plt.axis('off')
    plt.title('(c) Geodesic distance \n based on ranster scan')

    plt.subplot(1, 5, 4)
    plt.imshow(D3)
    plt.axis('off')
    plt.title('(d) Euclidean distance')

    plt.subplot(1, 5, 5)
    plt.imshow(D4)
    plt.axis('off')
    plt.title('(e) Mexture of Geodesic \n and Euclidean distance')
    plt.show()
Exemplo n.º 4
0
def test_geodesic_distance2d(img, seed_pos):
    I = np.asanyarray(img, np.float32)
    S = np.zeros((I.shape[0], I.shape[1]), np.uint8)
    S[seed_pos[0]][seed_pos[1]] = 1
    t0 = time.time()
    D1 = geodesic_distance.geodesic2d_fast_marching(I, S)
    t1 = time.time()
    D2 = geodesic_distance_2d(I, S, 1.0, 2)
    dt1 = t1 - t0
    dt2 = time.time() - t1
    D3 = geodesic_distance_2d(I, S, 0.0, 2)
    D4 = geodesic_distance_2d(I, S, 0.5, 2)
    print("runtime(s) of fast marching {0:}".format(dt1))
    print("runtime(s) of raster  scan  {0:}".format(dt2))

    plt.figure(figsize=(15, 5))
    plt.subplot(1, 5, 1)
    plt.imshow(img)
    plt.autoscale(False)
    plt.plot([seed_pos[0]], [seed_pos[1]], 'ro')
    plt.axis('off')
    plt.title('(a) input image \n with a seed point')

    plt.subplot(1, 5, 2)
    plt.imshow(D1)
    plt.axis('off')
    plt.title('(b) Geodesic distance \n based on fast marching')

    plt.subplot(1, 5, 3)
    plt.imshow(D2)
    plt.axis('off')
    plt.title('(c) Geodesic distance \n based on ranster scan')

    plt.subplot(1, 5, 4)
    plt.imshow(D3)
    plt.axis('off')
    plt.title('(d) Euclidean distance')

    plt.subplot(1, 5, 5)
    plt.imshow(D4)
    plt.axis('off')
    plt.title('(e) Mexture of Geodesic \n and Euclidean distance')
    plt.show()