Example #1
0
def test_threshold_denoise(image):
    denoised_thresholded = pre.threshold(image,
                                         sigma=5,
                                         radius=15,
                                         smooth_method='tv')
    thresholded = pre.threshold(image, sigma=0, radius=15)
    assert (_total_variation(thresholded) >
            _total_variation(denoised_thresholded))
Example #2
0
def test_threshold2d_sauvola(image):
    res = image.meta['Scan']['PixelHeight'] * 1e9  # nm/pixel
    radius = int(50 / res)  # radius of 50nm in pixels
    sigma = 0.1 * radius
    thresholded0 = pre.threshold(
            image, sigma=sigma, radius=radius, method='sauvola', offset=0.2
            )
    assert thresholded0.dtype == bool
    assert thresholded0.shape == image.shape
    thresholded1 = pre.threshold(
            image, sigma=sigma, radius=radius, method='sauvola', offset=0.075
            )
    assert np.all(thresholded1 <= thresholded0)
Example #3
0
def test_threshold_2d_median(image):
    sigma = 2
    radius = 5
    thresholded = pre.threshold(
            image[:100, :100], sigma=sigma, radius=radius, method='median'
            )
    assert thresholded.shape == (100, 100)
    assert thresholded.dtype == bool
Example #4
0
def test_threshold_2d_niblack(image):
    res = image.meta['Scan']['PixelHeight'] * 1e9  # nm/pixel
    radius = int(50 / res)
    sigma = 0.1 * radius
    thresholded0 = pre.threshold(
            image, sigma=sigma, radius=radius, method='niblack', offset=0.075
            )
    assert thresholded0.shape == image.shape
Example #5
0
def test_threshold_no_method(image):
    with pytest.raises(ValueError):
        pre.threshold(image, radius=1, method='no method')
Example #6
0
def test_threshold_2d_otsu(image):
    thresholded_otsu = pre.threshold(image)
    assert thresholded_otsu.shape == image.shape
Example #7
0
def test_thresholded(test_image):
    thresholded = pre.threshold(test_image, sigma=2, radius=31, offset=0.075)
    return thresholded
Example #8
0
# IPython log file

import os
os.chdir('/Users/jni/Dropbox/data1/malaria/adam-oli-schizont-30sec')

import imageio as iio
im = iio.imread('Shchizont4_UninfRBC10_02.tif', format='fei')
scale = im.meta['Scan']['PixelHeight'] * 1e9  # convert m to nm
sigma = 5/scale  # nm / (nm/pixel) ==> pixel

import matplotlib.pyplot as plt
plt.imshow(im, cmap='gray')

from skan import pre
from skimage import morphology
binary = pre.threshold(im, sigma=sigma, radius=round(10*sigma))
skeleton_image = morphology.skeletonize(binary)
plt.imshow(skeleton_image)

shape = feature.shape_index(im, sigma=5)
plt.imshow(shape, cmap='RdBu')

shape_skeleton = skeleton_image * shape

from skan import summarise

data = summarise(shape_skeleton)
data.head()

from skan import draw
draw.overlay_skeleton_2d(im, shape_skeleton, dilate=1)