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.")
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)
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)
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})