def test_3d_energy_decrease(): a_black = cp.zeros((5, 5, 5)).astype(np.uint8) a_black[2, 2, 2] = 255 a_white = invert(a_black) assert_array_less( meijering(a_black, black_ridges=True).std(), a_black.std() ) assert_array_less( meijering(a_white, black_ridges=False).std(), a_white.std() ) assert_array_less( sato(a_black, black_ridges=True, mode="reflect").std(), a_black.std() ) assert_array_less( sato(a_white, black_ridges=False, mode="reflect").std(), a_white.std() ) assert_array_less(frangi(a_black, black_ridges=True).std(), a_black.std()) assert_array_less(frangi(a_white, black_ridges=False).std(), a_white.std()) assert_array_less( hessian(a_black, black_ridges=True, mode="reflect").std(), a_black.std() ) assert_array_less( hessian(a_white, black_ridges=False, mode="reflect").std(), a_white.std(), )
def test_3d_cropped_camera_image(): a_black = crop(cp.asarray(camera()), ((206, 206), (206, 206))) a_black = cp.dstack([a_black, a_black, a_black]) a_white = invert(a_black) zeros = cp.zeros((100, 100, 3)) ones = cp.ones((100, 100, 3)) assert_allclose( meijering(a_black, black_ridges=True), meijering(a_white, black_ridges=False), ) assert_allclose( sato(a_black, black_ridges=True, mode="reflect"), sato(a_white, black_ridges=False, mode="reflect"), ) assert_allclose(frangi(a_black, black_ridges=True), zeros, atol=1e-3) assert_allclose(frangi(a_white, black_ridges=False), zeros, atol=1e-3) assert_allclose( hessian(a_black, black_ridges=True, mode="reflect"), ones, atol=1 - 1e-7 ) assert_allclose( hessian(a_white, black_ridges=False, mode="reflect"), ones, atol=1 - 1e-7, )
def test_3d_linearity(): a_black = cp.ones((3, 3, 3)).astype(np.uint8) a_white = invert(a_black) assert_allclose( meijering(1 * a_black, black_ridges=True), meijering(10 * a_black, black_ridges=True), atol=1e-3, ) assert_allclose( meijering(1 * a_white, black_ridges=False), meijering(10 * a_white, black_ridges=False), atol=1e-3, ) assert_allclose( sato(1 * a_black, black_ridges=True, mode="reflect"), sato(10 * a_black, black_ridges=True, mode="reflect"), atol=1e-3, ) assert_allclose( sato(1 * a_white, black_ridges=False, mode="reflect"), sato(10 * a_white, black_ridges=False, mode="reflect"), atol=1e-3, ) assert_allclose( frangi(1 * a_black, black_ridges=True), frangi(10 * a_black, black_ridges=True), atol=1e-3, ) assert_allclose( frangi(1 * a_white, black_ridges=False), frangi(10 * a_white, black_ridges=False), atol=1e-3, ) assert_allclose( hessian(1 * a_black, black_ridges=True, mode="reflect"), hessian(10 * a_black, black_ridges=True, mode="reflect"), atol=1e-3, ) assert_allclose( hessian(1 * a_white, black_ridges=False, mode="reflect"), hessian(10 * a_white, black_ridges=False, mode="reflect"), atol=1e-3, )
def test_3d_null_matrix(): a_black = cp.zeros((3, 3, 3)).astype(cp.uint8) a_white = invert(a_black) zeros = cp.zeros((3, 3, 3)) ones = cp.ones((3, 3, 3)) assert_allclose(meijering(a_black, black_ridges=True), zeros, atol=1e-1) assert_allclose(meijering(a_white, black_ridges=False), zeros, atol=1e-1) assert_array_equal(sato(a_black, black_ridges=True, mode="reflect"), zeros) assert_array_equal(sato(a_white, black_ridges=False, mode="reflect"), zeros) assert_allclose(frangi(a_black, black_ridges=True), zeros, atol=1e-3) assert_allclose(frangi(a_white, black_ridges=False), zeros, atol=1e-3) assert_array_equal( hessian(a_black, black_ridges=False, mode="reflect"), ones ) assert_array_equal( hessian(a_white, black_ridges=True, mode="reflect"), ones )