scikit-image
52 строки · 1.7 Кб
1from numpy.testing import assert_array_equal
2
3from skimage.color import rgb2gray
4from skimage.data import astronaut, cells3d
5from skimage.filters import gaussian
6from skimage.measure import blur_effect
7
8
9def test_blur_effect():
10"""Test that the blur metric increases with more blurring."""
11image = astronaut()
12B0 = blur_effect(image, channel_axis=-1)
13B1 = blur_effect(gaussian(image, sigma=1, channel_axis=-1), channel_axis=-1)
14B2 = blur_effect(gaussian(image, sigma=4, channel_axis=-1), channel_axis=-1)
15assert 0 <= B0 < 1
16assert B0 < B1 < B2
17
18
19def test_blur_effect_h_size():
20"""Test that the blur metric decreases with increasing size of the
21re-blurring filter.
22"""
23image = astronaut()
24B0 = blur_effect(image, h_size=3, channel_axis=-1)
25B1 = blur_effect(image, channel_axis=-1) # default h_size is 11
26B2 = blur_effect(image, h_size=30, channel_axis=-1)
27assert 0 <= B0 < 1
28assert B0 > B1 > B2
29
30
31def test_blur_effect_channel_axis():
32"""Test that passing an RGB image is equivalent to passing its grayscale
33version.
34"""
35image = astronaut()
36B0 = blur_effect(image, channel_axis=-1)
37B1 = blur_effect(rgb2gray(image))
38B0_arr = blur_effect(image, channel_axis=-1, reduce_func=None)
39B1_arr = blur_effect(rgb2gray(image), reduce_func=None)
40assert 0 <= B0 < 1
41assert B0 == B1
42assert_array_equal(B0_arr, B1_arr)
43
44
45def test_blur_effect_3d():
46"""Test that the blur metric works on a 3D image."""
47image_3d = cells3d()[:, 1, :, :] # grab just the nuclei
48B0 = blur_effect(image_3d)
49B1 = blur_effect(gaussian(image_3d, sigma=1))
50B2 = blur_effect(gaussian(image_3d, sigma=4))
51assert 0 <= B0 < 1
52assert B0 < B1 < B2
53