Esempio n. 1
0
def test_despeckle_not_in_place():
    fail_message = "despeckle_watershed failed to correctly despeckle not in place"
    example, expected = _despeckle_example()
    calculated = opt.despeckle_watershed(example, in_place=False)
    assert_equal(calculated, expected, fail_message)
    example_2, e = _despeckle_example()
    assert_equal(calculated, expected, "despeckle watershed modified original when not in place.")
Esempio n. 2
0
def test_despeckle_not_in_place():
    fail_message = "despeckle_watershed failed to correctly despeckle not in place"
    example, expected = _despeckle_example()
    calculated = opt.despeckle_watershed(example, in_place=False)
    assert_equal(calculated, expected, fail_message)
    example_2, e = _despeckle_example()
    assert_equal(calculated, expected, "despeckle watershed modified original when not in place.")
Esempio n. 3
0
def test_despeckle_stack():
    fail_message = "despeckle_watershed failed to correctly despeckle a stack of arrays"
    example_single, expected_single = _despeckle_example()
    example = np.dstack((np.rot90(example_single, 2), example_single,
        np.rot90(example_single, 2), example_single)).transpose(2,0,1)
    expected = np.dstack((np.rot90(expected_single, 2), expected_single,
        np.rot90(expected_single, 2), expected_single)).transpose(2,0,1)
    calculated = opt.despeckle_watershed(example)
    assert_equal(calculated, expected, fail_message)
Esempio n. 4
0
def test_despeckle_stack():
    fail_message = "despeckle_watershed failed to correctly despeckle a stack of arrays"
    example_single, expected_single = _despeckle_example()
    example = np.dstack((np.rot90(example_single, 2), example_single,
        np.rot90(example_single, 2), example_single)).transpose(2,0,1)
    expected = np.dstack((np.rot90(expected_single, 2), expected_single,
        np.rot90(expected_single, 2), expected_single)).transpose(2,0,1)
    calculated = opt.despeckle_watershed(example)
    assert_equal(calculated, expected, fail_message)
Esempio n. 5
0
def test_despeckle_in_place():
    fail_message = "despeckle_watershed failed to correctly despeckle in place"
    example, expected = _despeckle_example()
    opt.despeckle_watershed(example, in_place=True)
    assert_equal(example, expected, fail_message)
Esempio n. 6
0
def test_despeckle_in_place():
    fail_message = "despeckle_watershed failed to correctly despeckle in place"
    example, expected = _despeckle_example()
    opt.despeckle_watershed(example, in_place=True)
    assert_equal(example, expected, fail_message)
Esempio n. 7
0
cur_max = 0
for ii in range(membraneTrain.shape[0]):
    print ii
    ws_train[ii, :, :] = morpho.watershed(
        1 - membraneTrain[ii, :, :],
        connectivity=connectivity,
        smooth_thresh=smooth_thresh,
        override_skimage=override,
        minimum_seed_size=min_seed_size) + cur_max

    cur_max = ws_train[ii, :, :].max()

ws_train = ws_train.astype('int64')
print "unique labels in ws:", np.unique(ws_train).size

ws_train = optimized.despeckle_watershed(ws_train)
print "unique labels after despeckling:", np.unique(ws_train).size
ws_train, _, _ = evaluate.relabel_from_one(ws_train)

if ws_train.min() < 1:
    ws_train += (1 - ws_train.min())

ws_train = ws_train.astype('int64')
print "Training watershed complete"

print "Watershed train (VI, ARI)"
vi_ws_train = ev.split_vi(ws_train, gt_train),
ari_ws_train = ev.adj_rand_index(ws_train, gt_train)
print vi_ws_train
print ari_ws_train
gt_test = gt_test.astype('int32')

ws_test=np.zeros(membraneTest.shape)
cur_max = 0
for ii in range(membraneTest.shape[0]):
    print ii
    ws_test[ii,:,:] = morpho.watershed(membraneTest[ii,:,:],
    connectivity=connectivity, smooth_thresh=smooth_thresh,
    override_skimage=override,minimum_seed_size=min_seed_size) + cur_max
    cur_max = ws_test[ii,:,:].max()

print ws_test.dtype
ws_test = ws_test.astype('int64')
print "unique labels in ws:",np.unique(ws_test).size
    
ws_test = optimized.despeckle_watershed(ws_test)
print "unique labels after despeckling:",np.unique(ws_test).size
ws_test, _, _ = evaluate.relabel_from_one(ws_test)
    
if ws_test.min() < 1: 
    ws_test += (1-ws_test.min())

print "Testing watershed complete"

print "Watershed test (VI, ARI)"
vi_ws_test = ev.split_vi(ws_test, gt_test),
ari_ws_test = ev.adj_rand_index(ws_test, gt_test)
print vi_ws_test
print ari_ws_test

scipy.io.savemat('testWS.mat', mdict={'ws_test':ws_test})