Esempio n. 1
0
def test_gaussian_filtering():
    """
    Gaussian filter :
    $ linearfilter filtering_src.inr.gz filtering_linearfilter_sigma.inr.gz -smoothing -sigma 3 -o 1
    """
    #--- apply linear filter (sigma==3)
    sp_img_ref = imread(data_path('filtering_linearfilter_sigma_3.inr'))
    sp_img = imread(data_path('filtering_src.inr'))
    filtered = linearfilter(sp_img, '-smoothing -sigma 3.0')
    np.testing.assert_array_equal(filtered, sp_img_ref)
def test_segmentation():
    im = imread(data_path('segmentation_src.inr'))
    im_ref = imread(data_path('segmentation_seeded_watershed.inr'))
    smooth_img = linearfilter(im, param_str_2="-smoothing -sigma 2.0")
    regext_img = regionalext(smooth_img, param_str_2="-minima -connectivity 26 -h 5")
    conn_img = connexe(regext_img, param_str_2="-low-threshold 1 -high-threshold 3 -labels -connectivity 26")
    wat_img = watershed(smooth_img, conn_img)
    # Uncomment clean (rm -vf ...) in gen_image.sh script and uncomment next lines to test step results
    #np.testing.assert_array_equal(smooth_img, data('segmentation_smooth.inr'))
    #np.testing.assert_array_equal(regext_img, data('segmentation_regext.inr'))
    #np.testing.assert_array_equal(conn_img, data('segmentation_connexe.inr'))
    np.testing.assert_array_equal(wat_img, im_ref)
Esempio n. 3
0
def test_segmentation():
    im = imread(data_path('segmentation_src.inr'))
    im_ref = imread(data_path('segmentation_seeded_watershed.inr'))
    smooth_img = linearfilter(im, param_str_2="-smoothing -sigma 2.0")
    regext_img = regionalext(smooth_img,
                             param_str_2="-minima -connectivity 26 -h 5")
    conn_img = connexe(
        regext_img,
        param_str_2=
        "-low-threshold 1 -high-threshold 3 -labels -connectivity 26")
    wat_img = watershed(smooth_img, conn_img)
    # Uncomment clean (rm -vf ...) in gen_image.sh script and uncomment next lines to test step results
    #np.testing.assert_array_equal(smooth_img, data('segmentation_smooth.inr'))
    #np.testing.assert_array_equal(regext_img, data('segmentation_regext.inr'))
    #np.testing.assert_array_equal(conn_img, data('segmentation_connexe.inr'))
    np.testing.assert_array_equal(wat_img, im_ref)
Esempio n. 4
0
def linear_filtering_gradient_laplacian(input_image, **kwds):
    """
    Gradient modulus onto zero-crossings of laplacian image.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-gradient-laplacian'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 5
0
def linear_filtering_zero_crossings_laplacian(input_image, **kwds):
    """
    Zero crossings laplacian filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-zero-crossings-laplacian'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 6
0
def linear_filtering_hessian(input_image):
    """
    Hessian filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-hessian'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 7
0
def linear_filtering_gradient_modulus(input_image):
    """
    Gradient modulus filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-gradient-modulus'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 8
0
def linear_filtering_gradient_laplacian(input_image, **kwds):
    """
    Gradient modulus onto zero-crossings of laplacian image.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-gradient-laplacian'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 9
0
def linear_filtering_zero_crossings_laplacian(input_image, **kwds):
    """
    Zero crossings laplacian filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-zero-crossings-laplacian'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 10
0
def linear_filtering_hessian(input_image):
    """
    Hessian filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-hessian'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 11
0
def linear_filtering_gradient_modulus(input_image):
    """
    Gradient modulus filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        params = '-gradient-modulus'
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 12
0
def linear_filtering_gaussian_smoothing(input_image, std_dev=None, **kwds):
    """
    Gaussian smoothing filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*
    :param float std_dev: optinal, standard deviation. Default: std_dev=1.0

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        if std_dev is None:
            std_dev = 1.0
        elif std_dev is not None:
            std_dev = abs(float(std_dev))
        params = '-smoothing -sigma %s' % std_dev
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 13
0
def linear_filtering_gaussian_smoothing(input_image, std_dev=None, **kwds):
    """
    Gaussian smoothing filter.

    Parameters
    ----------
    :param *SpatialImage* input_image: input_image *SpatialImage*
    :param float std_dev: optinal, standard deviation. Default: std_dev=1.0

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        if std_dev is None:
            std_dev = 1.0
        elif std_dev is not None:
            std_dev = abs(float(std_dev))
        params = '-smoothing -sigma %s' % std_dev
        return linearfilter(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Esempio n. 14
0
def test_linear_filter():
    #--- apply default linear filter
    sp_img_ref = imread(data_path('filtering_linearfilter_default.inr'))
    sp_img = imread(data_path('filtering_src.inr'))
    filtered = linearfilter(sp_img)
    np.testing.assert_array_equal(filtered, sp_img_ref)
    filename] + "/" + nomenclature_names[
        filename] + "_nuclei_detection_topomesh_corrected.ply"
topomesh = read_ply_property_topomesh(topomesh_file)
positions = topomesh.wisp_property('barycenter', 0)
positions = array_dict(microscope_orientation * positions.values(),
                       positions.keys())

# Create a seed image fro the nuclei barycenters:
seed_img = seed_image_from_points(membrane_img.shape,
                                  membrane_img.voxelsize,
                                  positions,
                                  background_label=0)

# Add the "background seed":
background_threshold = 2000.
smooth_img_bck = linearfilter(membrane_img,
                              param_str_2='-x 0 -y 0 -z 0 -sigma 3.0')
background_img = (smooth_img_bck < background_threshold).astype(np.uint16)
for it in xrange(10):
    background_img = morphology(
        background_img, param_str_2='-operation erosion -iterations 10')
seed_img += background_img
seed_img = SpatialImage(seed_img, voxelsize=membrane_img.voxelsize)
#world.add(seed_img,'seed_image',colormap='glasbey',alphamap='constant',bg_id=0)
segmented_filename = image_dirname + "/" + nomenclature_names[
    filename] + "/" + nomenclature_names[
        filename] + "_corrected_nuclei_seed.inr"
imsave(segmented_filename, seed_img)

seed_img = isometric_resampling(seed_img, option='label')

std_dev = 2.0