mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-24 13:20:43 +08:00
add new tests
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
import numpy as np
|
||||
from numpy.testing import run_module_suite, assert_array_equal, assert_raises
|
||||
import unittest
|
||||
|
||||
from skimage import data
|
||||
from skimage.morphology import cmorph, disk
|
||||
from skimage.filter import rank
|
||||
from skimage.filter.rank import _crank8, _crank16, _crank16_percentiles
|
||||
|
||||
|
||||
def test_random_sizes():
|
||||
@@ -18,26 +16,26 @@ def test_random_sizes():
|
||||
|
||||
image8 = np.ones((m, n), dtype=np.uint8)
|
||||
out8 = np.empty_like(image8)
|
||||
_crank8.mean(image=image8, selem=elem, mask=mask, out=out8,
|
||||
rank.mean(image=image8, selem=elem, mask=mask, out=out8,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image8.shape, out8.shape)
|
||||
_crank8.mean(image=image8, selem=elem, mask=mask, out=out8,
|
||||
rank.mean(image=image8, selem=elem, mask=mask, out=out8,
|
||||
shift_x=+1, shift_y=+1)
|
||||
assert_array_equal(image8.shape, out8.shape)
|
||||
|
||||
image16 = np.ones((m, n), dtype=np.uint16)
|
||||
out16 = np.empty_like(image8, dtype=np.uint16)
|
||||
_crank16.mean(image=image16, selem=elem, mask=mask, out=out16,
|
||||
rank.mean(image=image16, selem=elem, mask=mask, out=out16,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image16.shape, out16.shape)
|
||||
_crank16.mean(image=image16, selem=elem, mask=mask, out=out16,
|
||||
rank.mean(image=image16, selem=elem, mask=mask, out=out16,
|
||||
shift_x=+1, shift_y=+1)
|
||||
assert_array_equal(image16.shape, out16.shape)
|
||||
|
||||
_crank16_percentiles.mean(image=image16, mask=mask, out=out16,
|
||||
rank.percentile_mean(image=image16, mask=mask, out=out16,
|
||||
selem=elem, shift_x=0, shift_y=0, p0=.1, p1=.9)
|
||||
assert_array_equal(image16.shape, out16.shape)
|
||||
_crank16_percentiles.mean(image=image16, mask=mask, out=out16,
|
||||
rank.percentile_mean(image=image16, mask=mask, out=out16,
|
||||
selem=elem, shift_x=+1, shift_y=+1, p0=.1, p1=.9)
|
||||
assert_array_equal(image16.shape, out16.shape)
|
||||
|
||||
@@ -51,7 +49,7 @@ def test_compare_with_cmorph_dilate():
|
||||
|
||||
for r in range(1, 20, 1):
|
||||
elem = np.ones((r, r), dtype=np.uint8)
|
||||
_crank8.maximum(image=image, selem=elem, out=out, mask=mask)
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask)
|
||||
cm = cmorph.dilate(image=image, selem=elem)
|
||||
assert_array_equal(out, cm)
|
||||
|
||||
@@ -65,7 +63,7 @@ def test_compare_with_cmorph_erode():
|
||||
|
||||
for r in range(1, 20, 1):
|
||||
elem = np.ones((r, r), dtype=np.uint8)
|
||||
_crank8.minimum(image=image, selem=elem, out=out, mask=mask)
|
||||
rank.minimum(image=image, selem=elem, out=out, mask=mask)
|
||||
cm = cmorph.erode(image=image, selem=elem)
|
||||
assert_array_equal(out, cm)
|
||||
|
||||
@@ -79,8 +77,8 @@ def test_bitdepth():
|
||||
|
||||
for i in range(5):
|
||||
image = np.ones((100, 100),dtype=np.uint16) * 255 * 2**i
|
||||
r = _crank16_percentiles.mean(image=image, selem=elem, mask=mask,
|
||||
out=out, shift_x=0, shift_y=0, p0=.1, p1=.9, bitdepth=8 + i)
|
||||
r = rank.percentile_mean(image=image, selem=elem, mask=mask,
|
||||
out=out, shift_x=0, shift_y=0, p0=.1, p1=.9)
|
||||
|
||||
|
||||
def test_population():
|
||||
@@ -91,7 +89,7 @@ def test_population():
|
||||
out = np.empty_like(image)
|
||||
mask = np.ones(image.shape, dtype=np.uint8)
|
||||
|
||||
_crank8.pop(image=image, selem=elem, out=out, mask=mask)
|
||||
rank.pop(image=image, selem=elem, out=out, mask=mask)
|
||||
r = np.array([[4, 6, 6, 6, 4],
|
||||
[6, 9, 9, 9, 6],
|
||||
[6, 9, 9, 9, 6],
|
||||
@@ -117,7 +115,7 @@ def test_structuring_element8():
|
||||
out = np.empty_like(image)
|
||||
mask = np.ones(image.shape, dtype=np.uint8)
|
||||
|
||||
_crank8.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=1, shift_y=1)
|
||||
assert_array_equal(r, out)
|
||||
|
||||
@@ -126,7 +124,7 @@ def test_structuring_element8():
|
||||
image[2, 2] = 255
|
||||
out = np.empty_like(image)
|
||||
|
||||
_crank16.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=1, shift_y=1)
|
||||
assert_array_equal(r, out)
|
||||
|
||||
@@ -134,12 +132,20 @@ def test_structuring_element8():
|
||||
def test_fail_on_bitdepth():
|
||||
# should fail because data bitdepth is too high for the function
|
||||
|
||||
image = np.ones((100, 100), dtype=np.uint16) * 255
|
||||
image = np.ones((100, 100), dtype=np.uint16) * 2**12
|
||||
elem = np.ones((3, 3), dtype=np.uint8)
|
||||
out = np.empty_like(image)
|
||||
mask = np.ones(image.shape, dtype=np.uint8)
|
||||
assert_raises(ValueError, rank.percentile_mean, image=image,
|
||||
selem=elem, out=out, mask=mask, shift_x=0, shift_y=0)
|
||||
|
||||
def test_pass_on_bitdepth():
|
||||
# should pass because data bitdepth is not too high for the function
|
||||
|
||||
image = np.ones((100, 100), dtype=np.uint16) * 2**11
|
||||
elem = np.ones((3, 3), dtype=np.uint8)
|
||||
out = np.empty_like(image)
|
||||
mask = np.ones(image.shape, dtype=np.uint8)
|
||||
assert_raises(AssertionError, _crank16_percentiles.mean, image=image,
|
||||
selem=elem, out=out, mask=mask, shift_x=0, shift_y=0, bitdepth=4)
|
||||
|
||||
|
||||
def test_inplace_output():
|
||||
@@ -210,13 +216,13 @@ def test_trivial_selem8():
|
||||
image[1,2] = 16
|
||||
|
||||
elem = np.array([[0, 0, 0], [0, 1, 0],[0, 0, 0]], dtype=np.uint8)
|
||||
_crank8.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank8.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank8.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
|
||||
@@ -233,13 +239,13 @@ def test_trivial_selem16():
|
||||
image[1,2] = 16
|
||||
|
||||
elem = np.array([[0, 0, 0], [0, 1, 0],[0, 0, 0]], dtype=np.uint8)
|
||||
_crank16.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank16.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank16.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
|
||||
@@ -256,13 +262,13 @@ def test_smallest_selem8():
|
||||
image[1,2] = 16
|
||||
|
||||
elem = np.array([[1]], dtype=np.uint8)
|
||||
_crank8.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank8.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank8.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
|
||||
@@ -279,13 +285,13 @@ def test_smallest_selem16():
|
||||
image[1,2] = 16
|
||||
|
||||
elem = np.array([[1]], dtype=np.uint8)
|
||||
_crank16.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.mean(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank16.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.minimum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
_crank16.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
rank.maximum(image=image, selem=elem, out=out, mask=mask,
|
||||
shift_x=0, shift_y=0)
|
||||
assert_array_equal(image, out)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user