Example #1
0
 def test_isodata_linspace(self):
     image = cp.linspace(-127, 0, 256)
     assert -63.8 < threshold_isodata(image) < -63.6
     assert_array_almost_equal(
         threshold_isodata(image, return_all=True),
         [-63.74804688, -63.25195312],
     )
Example #2
0
def test_isodata_coins_image():
    coins = util.img_as_ubyte(coinsd)

    threshold = threshold_isodata(coins)
    assert np.floor((coins[coins <= threshold].mean() +
                     coins[coins > threshold].mean()) / 2.0) == threshold
    assert threshold == 107

    assert_array_equal(threshold_isodata(coins, return_all=True), [107])
Example #3
0
def test_isodata_camera_image():
    camera = util.img_as_ubyte(camerad)

    threshold = threshold_isodata(camera)
    assert np.floor((camera[camera <= threshold].mean() +
                     camera[camera > threshold].mean()) / 2.0) == threshold
    assert threshold == 102

    assert_array_equal(threshold_isodata(camera, return_all=True), [102, 103])
Example #4
0
def test_isodata_moon_image_negative_float():
    moon = util.img_as_ubyte(moond).astype(cp.float64)
    moon -= 100

    assert -14 < threshold_isodata(moon) < -13

    thresholds = threshold_isodata(moon, return_all=True)
    # fmt: off
    assert_array_almost_equal(thresholds,
        [-13.83789062, -12.84179688, -11.84570312, 22.02148438,   # noqa
          23.01757812,  24.01367188,  38.95507812, 39.95117188])  # noqa
Example #5
0
def test_isodata_moon_image():
    moon = util.img_as_ubyte(moond)

    threshold = threshold_isodata(moon)
    assert np.floor((moon[moon <= threshold].mean() +
                     moon[moon > threshold].mean()) / 2.0) == threshold
    assert threshold == 86

    thresholds = threshold_isodata(moon, return_all=True)
    for threshold in thresholds:
        assert np.floor((moon[moon <= threshold].mean() +
                         moon[moon > threshold].mean()) / 2.0) == threshold
    assert_array_equal(thresholds, [86, 87, 88, 122, 123, 124, 139, 140])
Example #6
0
def test_isodata_moon_image_negative_int():
    moon = util.img_as_ubyte(moond).astype(cp.int32)
    moon -= 100

    threshold = threshold_isodata(moon)
    assert np.floor((moon[moon <= threshold].mean() +
                     moon[moon > threshold].mean()) / 2.0) == threshold
    assert threshold == -14

    thresholds = threshold_isodata(moon, return_all=True)
    for threshold in thresholds:
        assert np.floor((moon[moon <= threshold].mean() +
                         moon[moon > threshold].mean()) / 2.0) == threshold
    assert_array_equal(thresholds, [-14, -13, -12, 22, 23, 24, 39, 40])
Example #7
0
def test_isodata_camera_image_counts():
    camera = util.img_as_ubyte(camerad)
    counts, bin_centers = histogram(camera.ravel(), 256, source_range='image')
    threshold = threshold_isodata(hist=counts)
    assert threshold == 102
Example #8
0
def test_isodata_camera_image_histogram():
    camera = util.img_as_ubyte(camerad)
    hist = histogram(camera.ravel(), 256, source_range='image')
    threshold = threshold_isodata(hist=hist)
    assert threshold == 102
Example #9
0
 def test_isodata_16bit(self):
     np.random.seed(0)
     imfloat = cp.array(np.random.rand(256, 256))
     assert 0.49 < threshold_isodata(imfloat, nbins=1024) < 0.51
     assert all(0.49 < threshold_isodata(imfloat, nbins=1024,
                                         return_all=True))
Example #10
0
 def test_isodata_blank_zero(self):
     image = cp.zeros((5, 5), dtype=cp.uint8)
     assert threshold_isodata(image) == 0
     assert_array_equal(threshold_isodata(image, return_all=True), [0])
Example #11
0
 def test_isodata(self):
     assert threshold_isodata(self.image) == 2
     assert_array_equal(threshold_isodata(self.image, return_all=True), [2])