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)
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)
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
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
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
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
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
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