{"name":"napari-simpleitk-image-processing","display_name":"napari-simpleitk-image-processing","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"median_filter","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:median_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"gaussian_blur","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:gaussian_blur","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_otsu","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_otsu","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_intermodes","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_intermodes","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_kittler_illingworth","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_kittler_illingworth","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_li","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_li","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_moments","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_moments","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_renyi_entropy","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_renyi_entropy","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_shanbhag","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_shanbhag","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_yen","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_yen","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_isodata","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_isodata","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_triangle","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_triangle","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_huang","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_huang","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"threshold_maximum_entropy","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:threshold_maximum_entropy","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"signed_maurer_distance_map","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:signed_maurer_distance_map","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"morphological_watershed","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:morphological_watershed","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"morphological_gradient","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:morphological_gradient","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"standard_deviation_filter","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:standard_deviation_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"simple_linear_iterative_clustering","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:simple_linear_iterative_clustering","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"scalar_image_k_means_clustering","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:scalar_image_k_means_clustering","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"connected_component_labeling","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:connected_component_labeling","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"touching_objects_labeling","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:touching_objects_labeling","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"watershed_otsu_labeling","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:watershed_otsu_labeling","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"binary_fill_holes","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:binary_fill_holes","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"invert_intensity","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:invert_intensity","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"bilateral_filter","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:bilateral_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"laplacian_filter","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:laplacian_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"laplacian_of_gaussian_filter","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:laplacian_of_gaussian_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"binominal_blur_filter","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:binominal_blur_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"canny_edge_detection","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:canny_edge_detection","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"gradient_magnitude","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:gradient_magnitude","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"h_maxima","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:h_maxima","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"h_minima","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:h_minima","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"otsu_multiple_thresholds","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:otsu_multiple_thresholds","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"regional_maxima","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:regional_maxima","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"regional_minima","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:regional_minima","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"richardson_lucy_deconvolution","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:richardson_lucy_deconvolution","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"wiener_deconvolution","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:wiener_deconvolution","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"tikhonov_deconvolution","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:tikhonov_deconvolution","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"rescale_intensity","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:rescale_intensity","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"sobel","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:sobel","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"black_top_hat","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:black_top_hat","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"white_top_hat","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:white_top_hat","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"adaptive_histogram_equalization","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:adaptive_histogram_equalization","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"curvature_flow_denoise","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:curvature_flow_denoise","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"relabel_component","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:relabel_component","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"label_contour","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:label_contour","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"label_statistics","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:label_statistics","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"pixel_count_map","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:pixel_count_map","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"elongation_map","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:elongation_map","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"feret_diameter_map","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:feret_diameter_map","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-simpleitk-image-processing.napari_experimental_provide_function","title":"roundness_map","python_name":"napari_simpleitk_image_processing._simpleitk_image_processing:roundness_map","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"median_filter","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"gaussian_blur","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_otsu","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_intermodes","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_kittler_illingworth","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_li","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_moments","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_renyi_entropy","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_shanbhag","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_yen","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_isodata","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_triangle","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_huang","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"threshold_maximum_entropy","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"signed_maurer_distance_map","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"morphological_watershed","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"morphological_gradient","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"standard_deviation_filter","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"simple_linear_iterative_clustering","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"scalar_image_k_means_clustering","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"connected_component_labeling","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"touching_objects_labeling","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"watershed_otsu_labeling","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"binary_fill_holes","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"invert_intensity","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"bilateral_filter","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"laplacian_filter","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"laplacian_of_gaussian_filter","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"binominal_blur_filter","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"canny_edge_detection","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"gradient_magnitude","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"h_maxima","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"h_minima","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"otsu_multiple_thresholds","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"regional_maxima","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"regional_minima","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"richardson_lucy_deconvolution","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"wiener_deconvolution","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"tikhonov_deconvolution","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"rescale_intensity","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"sobel","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"black_top_hat","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"white_top_hat","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"adaptive_histogram_equalization","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"curvature_flow_denoise","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"relabel_component","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"label_contour","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"label_statistics","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"pixel_count_map","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"elongation_map","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"feret_diameter_map","autogenerate":true},{"command":"napari-simpleitk-image-processing.napari_experimental_provide_function","display_name":"roundness_map","autogenerate":true}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"napari-simpleitk-image-processing","version":"0.4.5","dynamic":null,"platform":null,"supported_platform":null,"summary":"Process and analyze images using SimpleITK in napari","description":"# napari-simpleitk-image-processing (n-SimpleITK)\n\n[![License](https://img.shields.io/pypi/l/napari-simpleitk-image-processing.svg?color=green)](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-simpleitk-image-processing.svg?color=green)](https://pypi.org/project/napari-simpleitk-image-processing)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-simpleitk-image-processing.svg?color=green)](https://python.org)\n[![tests](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/workflows/tests/badge.svg)](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/actions)\n[![codecov](https://codecov.io/gh/haesleinhuepf/napari-simpleitk-image-processing/branch/main/graph/badge.svg)](https://codecov.io/gh/haesleinhuepf/napari-simpleitk-image-processing)\n[![Development Status](https://img.shields.io/pypi/status/napari-simpleitk-image-processing.svg)](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-simpleitk-image-processing)](https://napari-hub.org/plugins/napari-simpleitk-image-processing)\n[![DOI](https://zenodo.org/badge/432729955.svg)](https://zenodo.org/badge/latestdoi/432729955)\n\nProcess images using [SimpleITK](https://simpleitk.org/) in [napari]\n\n## Usage\n\nFilters, segmentation algorithms and measurements provided by this napari plugin can be found in the `Tools` menu. \nYou can recognize them with their suffix `(n-SimpleITK)` in brackets.\nFurthermore, it can be used from the [napari-assistant](https://www.napari-hub.org/plugins/napari-assistant) graphical user interface. \nTherefore, just click the menu `Tools > Utilities > Assistant (na)` or run `naparia` from the command line.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/screenshot_with_assistant.png)\n\nAll filters implemented in this napari plugin are also demonstrated in [this notebook](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/blob/main/docs/demo.ipynb).\n\n### Gaussian blur\n\nApplies a [Gaussian blur](https://en.wikipedia.org/wiki/Gaussian_blur)\nto an image. This might be useful for denoising, e.g. before applying the Threshold-Otsu method.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/gaussian_blur.png)\n\n### Median filter\n\nApplies a [median filter](https://en.wikipedia.org/wiki/Median_filter) to an image. \nCompared to the Gaussian blur this method preserves edges in the image better. \nIt also performs slower.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/median_filter.png)\n\n### Bilateral filter\n\nThe [bilateral filter](https://en.wikipedia.org/wiki/Bilateral_filter) allows denoising an image\nwhile preserving edges.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/bilateral.png)\n\n### Threshold Otsu\n\nBinarizes an image using [Otsu's method](https://ieeexplore.ieee.org/document/4310076).\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/threshold_otsu.png)\n\n### Connected Component Labeling\n\nTakes a binary image and labels all objects with individual numbers to produce a label image.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/connected_component_labeling.png)\n\n### Measurements\n\nThis function allows determining intensity and shape statistics from labeled images. I can be found in the `Tools > Measurement tables` menu.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/measurements.png)\n\n### Signed Maurer distance map\n\nA distance map (more precise: [Signed Maurer Distance Map](https://itk.org/ITKExamples/src/Filtering/DistanceMap/MaurerDistanceMapOfBinary/Documentation.html)) can be useful for visualizing distances within binary images between black/white borders. \nPositive values in this image correspond to a white (value=1) pixel's distance to the next black pixel.\nBlack pixel's (value=0) distance to the next white pixel are represented in this map with negative values.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/signed_maured_distance_map.png)\n\n### Binary fill holes\n\nFills holes in a binary image.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/binary_fill_holes.png)\n\n### Touching objects labeling\n\nStarting from a binary image, touching objects can be splits into multiple regions, similar to the [Watershed segmentation in ImageJ](https://imagej.net/plugins/classic-watershed).\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/Touching_object_labeling.png)\n\n### Morphological Watershed\n\nThe [morhological watershed](http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/32_Watersheds_Segmentation.html)\nallows to segment images showing membranes. Before segmentation, a filter such as the Gaussian blur or a median filter\nshould be used to eliminate noise. It also makes sense to increase the thickness of membranes using a maximum filter. \nSee [this notebook](https://github.com/clEsperanto/pyclesperanto_prototype/blob/master/demo/segmentation/segmentation_2d_membranes.ipynb) for details.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/morphological_watershed.png)\n\n### Watershed-Otsu-Labeling\n\nThis algorithm uses [Otsu's thresholding method](https://ieeexplore.ieee.org/document/4310076) in combination with \n[Gaussian blur](https://en.wikipedia.org/wiki/Gaussian_blur) and the \n[Watershed-algorithm](https://en.wikipedia.org/wiki/Watershed_(image_processing)) \napproach to label bright objects such as nuclei in an intensity image. The alogrithm has two sigma parameters and a \nlevel parameter which allow you to fine-tune where objects should be cut (`spot_sigma`) and how smooth outlines \nshould be (`outline_sigma`). The `watershed_level` parameter determines how deep an intensity valley between two maxima \nhas to be to differentiate the two maxima. \nThis implementation is similar to [Voronoi-Otsu-Labeling in clesperanto](https://github.com/clEsperanto/pyclesperanto_prototype/blob/master/demo/segmentation/voronoi_otsu_labeling.ipynb).\n\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/watershed_otsu_labeling.png)\n\n### Richardson-Lucy Deconvolution\n\n[Richardson-Lucy deconvolution](https://en.wikipedia.org/wiki/Richardson%E2%80%93Lucy_deconvolution)\nallows to restore image quality if the point-spread-function of the optical system used \nfor acquisition is known or can be approximated.\n\n![img.png](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/docs/Richardson-Lucy-Deconvolution.png)\n\n\n## Installation\n\nYou can install `napari-simpleitk-image-processing` via using `conda` and `pip`.\nIf you have never used `conda` before, please go through [this tutorial](https://biapol.github.io/blog/johannes_mueller/anaconda_getting_started/) first.\n\n conda install -c conda-forge napari\n pip install napari-simpleitk-image-processing\n\n## See also\n\nThere are other napari plugins with similar functionality for processing images and extracting features:\n* [morphometrics](https://www.napari-hub.org/plugins/morphometrics)\n* [PartSeg](https://www.napari-hub.org/plugins/PartSeg)\n* [napari-skimage-regionprops](https://www.napari-hub.org/plugins/napari-skimage-regionprops)\n* [napari-cupy-image-processing](https://www.napari-hub.org/plugins/napari-cupy-image-processing)\n* [napari-pyclesperanto-assistant](https://www.napari-hub.org/plugins/napari-pyclesperanto-assistant)\n* [napari-allencell-segmenter](https://napari-hub.org/plugins/napari-allencell-segmenter)\n* [RedLionfish](https://www.napari-hub.org/plugins/RedLionfish)\n* [bbii-decon](https://www.napari-hub.org/plugins/bbii-decon) \n* [napari-segment-blobs-and-things-with-membranes](https://www.napari-hub.org/plugins/napari-segment-blobs-and-things-with-membranes)\n\nFurthermore, there are plugins for postprocessing extracted measurements\n* [napari-feature-classifier](https://www.napari-hub.org/plugins/napari-feature-classifier)\n* [napari-clusters-plotter](https://www.napari-hub.org/plugins/napari-clusters-plotter)\n\n## Contributing\n\nContributions are very welcome. There are many useful algorithms available in \n[SimpleITK](https://simpleitk.org/). If you want another one available here in this napari\nplugin, don't hesitate to send a [pull-request](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/pulls).\nThis repository just holds wrappers for SimpleITK-functions, see [this file](https://github.com/haesleinhuepf/napari-simpleitk-image-processing/raw/main/src/napari_simpleitk_image_processing/_simpleitk_image_processing.py#L51) for how those wrappers\ncan be written.\n\n## License\n\nDistributed under the terms of the [BSD-3] license,\n\"napari-simpleitk-image-processing\" is free and open source software\n\n## Citation\n\nFor implementing this napari plugin, the \n[SimpleITK python notebooks](https://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/) were very helpful. \nThus, if you find the plugin useful, consider citing the SimpleITK notebooks:\n\nZ. Yaniv, B. C. Lowekamp, H. J. Johnson, R. Beare, \n\"SimpleITK Image-Analysis Notebooks: a Collaborative Environment for Education and Reproducible Research\", \\\nJ Digit Imaging., 31(3): 290-303, 2018, [https://doi.org/10.1007/s10278-017-0037-8](https://doi.org/10.1007/s10278-017-0037-8).\n\n## Issues\n\nIf you encounter any problems, please [file an issue] along with a detailed description.\n\n[napari]: https://github.com/napari/napari\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[@napari]: https://github.com/napari\n[MIT]: http://opensource.org/licenses/MIT\n[BSD-3]: http://opensource.org/licenses/BSD-3-Clause\n[GNU GPL v3.0]: http://www.gnu.org/licenses/gpl-3.0.txt\n[GNU LGPL v3.0]: http://www.gnu.org/licenses/lgpl-3.0.txt\n[Apache Software License 2.0]: http://www.apache.org/licenses/LICENSE-2.0\n[Mozilla Public License 2.0]: https://www.mozilla.org/media/MPL/2.0/index.txt\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n\n[file an issue]: https://github.com/haesleinhuepf/napari-simpleitk-image-processing/issues\n\n[napari]: https://github.com/napari/napari\n[tox]: https://tox.readthedocs.io/en/latest/\n[pip]: https://pypi.org/project/pip/\n[PyPI]: https://pypi.org/\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/haesleinhuepf/napari-simpleitk-image-processing","download_url":null,"author":"Robert Haase","author_email":"robert.haase@tu-dresden.de","maintainer":null,"maintainer_email":null,"license":"BSD-3-Clause","classifier":["Development Status :: 3 - Alpha","Intended Audience :: Science/Research","Framework :: napari","Topic :: Scientific/Engineering :: Image Processing","Topic :: Scientific/Engineering :: Information Analysis","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Operating System :: OS Independent","License :: OSI Approved :: BSD License"],"requires_dist":["napari-plugin-engine (>=0.1.4)","numpy","simpleitk","napari-tools-menu (>=0.1.17)","napari-time-slicer","napari-skimage-regionprops (>=0.5.1)","napari-assistant (>=0.3.10)","pandas","stackview (>=0.3.2)"],"requires_python":">=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/haesleinhuepf/napari-simpleitk-image-processing/issues","Documentation, https://github.com/haesleinhuepf/napari-simpleitk-image-processing#README.md","Source Code, https://github.com/haesleinhuepf/napari-simpleitk-image-processing","User Support, https://github.com/haesleinhuepf/napari-simpleitk-image-processing/issues"],"provides_extra":null,"provides_dist":null,"obsoletes_dist":null},"npe1_shim":true}