mirror of https://github.com/pyodide/pyodide.git
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
def test_skimage(selenium):
|
||
|
selenium.load_package("scikit-image")
|
||
|
selenium.run(
|
||
|
r"""
|
||
|
import numpy as np
|
||
|
|
||
|
from skimage import data
|
||
|
from skimage import color
|
||
|
from skimage.util import view_as_blocks
|
||
|
|
||
|
# get astronaut from skimage.data in grayscale
|
||
|
l = color.rgb2gray(data.astronaut())
|
||
|
assert l.size == 262144
|
||
|
assert l.shape == (512,512)
|
||
|
|
||
|
# size of blocks
|
||
|
block_shape = (4, 4)
|
||
|
|
||
|
# see astronaut as a matrix of blocks (of shape block_shape)
|
||
|
view = view_as_blocks(l, block_shape)
|
||
|
assert view.shape == (128, 128, 4, 4)
|
||
|
|
||
|
from skimage.filters import threshold_otsu
|
||
|
|
||
|
to=threshold_otsu(l)
|
||
|
assert to.hex() == '0x1.8e00000000000p-2'
|
||
|
|
||
|
from skimage.data import astronaut
|
||
|
from skimage.color import rgb2gray
|
||
|
from skimage.filters import sobel
|
||
|
from skimage.segmentation import felzenszwalb, slic, quickshift, watershed
|
||
|
from skimage.segmentation import mark_boundaries
|
||
|
from skimage.util import img_as_float
|
||
|
|
||
|
img = img_as_float(astronaut()[::2, ::2])
|
||
|
|
||
|
segments_fz = felzenszwalb(img, scale=100, sigma=0.5, min_size=50)
|
||
|
segments_slic = slic(img, n_segments=250, compactness=10, sigma=1)
|
||
|
segments_quick = quickshift(img, kernel_size=3, max_dist=6, ratio=0.5)
|
||
|
gradient = sobel(rgb2gray(img))
|
||
|
segments_watershed = watershed(gradient, markers=250, compactness=0.001)
|
||
|
|
||
|
assert len(np.unique(segments_fz)) == 194
|
||
|
assert len(np.unique(segments_slic)) == 190
|
||
|
assert len(np.unique(segments_quick)) == 695
|
||
|
"""
|
||
|
)
|