Files
scikit-image/skimage/viewer/tests/test_viewer.py
T
2014-03-10 23:10:13 -07:00

49 lines
1.6 KiB
Python

import skimage
import skimage.data as data
from skimage.viewer import ImageViewer
from skimage.viewer.qt import qt_api
from numpy.testing import assert_equal, assert_allclose
from numpy.testing.decorators import skipif
def setup_line_profile(image):
from skimage.viewer.plugins.lineprofile import LineProfile
viewer = ImageViewer(skimage.img_as_float(image))
plugin = LineProfile()
viewer += plugin
return plugin
@skipif(qt_api is None)
def test_line_profile():
""" Test a line profile using an ndim=2 image"""
plugin = setup_line_profile(data.camera())
line_image, scan_data = plugin.output()
for inp in [line_image.nonzero()[0].size,
line_image.sum() / line_image.max(),
scan_data.size]:
assert_equal(inp, 172)
assert_equal(line_image.shape, (512, 512))
assert_allclose(scan_data.max(), 0.9139, rtol=1e-3)
assert_allclose(scan_data.mean(), 0.2828, rtol=1e-3)
@skipif(qt_api is None)
def test_line_profile_rgb():
""" Test a line profile using an ndim=3 image"""
plugin = setup_line_profile(data.chelsea())
for i in range(6):
plugin.line_tool._thicken_scan_line()
line_image, scan_data = plugin.output()
assert_equal(line_image[line_image == 128].size, 755)
assert_equal(line_image[line_image == 255].size, 151)
assert_equal(line_image.shape, (300, 451))
assert_equal(scan_data.shape, (152, 3))
assert_allclose(scan_data.max(), 0.772, rtol=1e-3)
assert_allclose(scan_data.mean(), 0.4355, rtol=1e-3)
if __name__ == "__main__":
from numpy.testing import run_module_suite
run_module_suite()