mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-29 02:30:48 +08:00
82 lines
2.5 KiB
Python
82 lines
2.5 KiB
Python
import numpy as np
|
|
from numpy.testing import assert_array_equal
|
|
from skimage.measure import block_reduce
|
|
|
|
|
|
def test_block_reduce_sum():
|
|
image1 = np.arange(4 * 6).reshape(4, 6)
|
|
out1 = block_reduce(image1, (2, 3))
|
|
expected1 = np.array([[ 24, 42],
|
|
[ 96, 114]])
|
|
assert_array_equal(expected1, out1)
|
|
|
|
image2 = np.arange(5 * 8).reshape(5, 8)
|
|
out2 = block_reduce(image2, (3, 3))
|
|
expected2 = np.array([[ 81, 108, 87],
|
|
[174, 192, 138]])
|
|
assert_array_equal(expected2, out2)
|
|
|
|
|
|
def test_block_reduce_mean():
|
|
image1 = np.arange(4 * 6).reshape(4, 6)
|
|
out1 = block_reduce(image1, (2, 3), func=np.mean)
|
|
expected1 = np.array([[ 4., 7.],
|
|
[ 16., 19.]])
|
|
assert_array_equal(expected1, out1)
|
|
|
|
image2 = np.arange(5 * 8).reshape(5, 8)
|
|
out2 = block_reduce(image2, (4, 5), func=np.mean)
|
|
expected2 = np.array([[14. , 10.8],
|
|
[ 8.5, 5.7]])
|
|
assert_array_equal(expected2, out2)
|
|
|
|
|
|
def test_block_reduce_median():
|
|
image1 = np.arange(4 * 6).reshape(4, 6)
|
|
out1 = block_reduce(image1, (2, 3), func=np.median)
|
|
expected1 = np.array([[ 4., 7.],
|
|
[ 16., 19.]])
|
|
assert_array_equal(expected1, out1)
|
|
|
|
image2 = np.arange(5 * 8).reshape(5, 8)
|
|
out2 = block_reduce(image2, (4, 5), func=np.median)
|
|
expected2 = np.array([[ 14., 17.],
|
|
[ 0., 0.]])
|
|
assert_array_equal(expected2, out2)
|
|
|
|
image3 = np.array([[1, 5, 5, 5], [5, 5, 5, 1000]])
|
|
out3 = block_reduce(image3, (2, 4), func=np.median)
|
|
assert_array_equal(5, out3)
|
|
|
|
|
|
def test_block_reduce_min():
|
|
image1 = np.arange(4 * 6).reshape(4, 6)
|
|
out1 = block_reduce(image1, (2, 3), func=np.min)
|
|
expected1 = np.array([[ 0, 3],
|
|
[12, 15]])
|
|
assert_array_equal(expected1, out1)
|
|
|
|
image2 = np.arange(5 * 8).reshape(5, 8)
|
|
out2 = block_reduce(image2, (4, 5), func=np.min)
|
|
expected2 = np.array([[0, 0],
|
|
[0, 0]])
|
|
assert_array_equal(expected2, out2)
|
|
|
|
|
|
def test_block_reduce_max():
|
|
image1 = np.arange(4 * 6).reshape(4, 6)
|
|
out1 = block_reduce(image1, (2, 3), func=np.max)
|
|
expected1 = np.array([[ 8, 11],
|
|
[20, 23]])
|
|
assert_array_equal(expected1, out1)
|
|
|
|
image2 = np.arange(5 * 8).reshape(5, 8)
|
|
out2 = block_reduce(image2, (4, 5), func=np.max)
|
|
expected2 = np.array([[28, 31],
|
|
[36, 39]])
|
|
assert_array_equal(expected2, out2)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
np.testing.run_module_suite()
|