示例#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],
     )
示例#2
0
def test_isodata_camera_image():
    camera = util.img_as_ubyte(camerad)

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

    assert_array_equal(threshold_isodata(camera, return_all=True), [87])
示例#3
0
def test_isodata_coins_image():
    coins = util.img_as_ubyte(coinsd)

    threshold = threshold_isodata(coins)
    assert (cp.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])
示例#4
0
def test_isodata_moon_image():
    moon = util.img_as_ubyte(moond)

    threshold = threshold_isodata(moon)
    assert (cp.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 (cp.floor(
            (moon[moon <= threshold].mean() + moon[moon > threshold].mean()) /
            2.0) == threshold)
    assert_array_equal(thresholds, [86, 87, 88, 122, 123, 124, 139, 140])
示例#5
0
def test_isodata_moon_image_negative_int():
    moon = util.img_as_ubyte(moond).astype(cp.int32)
    moon -= 100

    threshold = threshold_isodata(moon)
    assert (cp.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 (cp.floor(
            (moon[moon <= threshold].mean() + moon[moon > threshold].mean()) /
            2.0) == threshold)
    assert_array_equal(thresholds, [-14, -13, -12, 22, 23, 24, 39, 40])
示例#6
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
示例#7
0
 def test_isodata_16bit(self):
     np.random.seed(0)
     imfloat = cp.asarray(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))
示例#8
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])
示例#9
0
 def test_isodata(self):
     assert threshold_isodata(self.image) == 2
     assert_array_equal(threshold_isodata(self.image, return_all=True), [2])