CellProfiler-nightly 5.0.0.dev520__tar.gz → 5.0.0.dev534__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/_version.py +3 -3
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureimageintensity.py +50 -161
- cellprofiler_nightly-5.0.0.dev534/cellprofiler/modules/measureobjectintensity.py +282 -0
- cellprofiler_nightly-5.0.0.dev520/cellprofiler/modules/measureobjectintensity.py +0 -597
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/CellProfiler_nightly.egg-info/requires.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/LICENSE +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/README.md +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/__main__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/display_image_tools.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/display_menu_bar.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_3d_identify.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_batch.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_logging.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_omero.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_plugins.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_shell.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/output_measurements.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/output_plateviewer.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/pipelines_building.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/pipelines_running.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/projects_configure_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/projects_introduction.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler.ai +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler.icns +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Align.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/ApplyThreshold.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/CollapseTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/ColorToGray.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Crop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/ExpandTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/GrayToColor.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_ERROR.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_GO.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_OK.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_RUN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_STOP.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_TEST.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IMG_WARN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Images_UsingRules.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/MeasureTexture.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/Tile.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/UnmixColors.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/check.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/color.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/dapi.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/delete.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/downarrow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/eye-close.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/eye-open.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/ffwd.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/ffwddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/filter.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/folder_browse.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/folder_create.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/gear.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/gfp.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/icon_copyrights.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/illumination_function.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/mask.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/microscope-color_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/microscope-icon_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/microscope-icon_32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/microscopes_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/module_add.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/module_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/module_movedown.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/module_moveup.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/module_remove.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/monochrome.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/movie_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/next.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/objects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/pausedisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/play.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/playdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/previous.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/remove-sign.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/rewind.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/rewinddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/splash.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/status_pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/status_save.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/status_stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/stopdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/structuringelement.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/thumb-down.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/thumb-up.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/unchecked.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/wantpony.wav +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_examples.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_new.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_pipeline.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_screen_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_start.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcome_tutorial.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/window_back.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/window_filesave.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/window_forward.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/window_home.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/window_pan.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/_welcome_frame.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/_workspace_model.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/addmoduleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/app.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/checkupdate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/constants/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/constants/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/constants/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/constants/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/constants/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/cpframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/editobjectsdlg.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/errordialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/figure/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/figure/_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/figure/_outline_artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/gridrenderers.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/help/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/help/content.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/help/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/help/search.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/configure_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/exporting_results_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/getting_started.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/htmlwindow.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/identify_features_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/in_app_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/making_measurements_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/selecting_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/test_mode_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/utils.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/html/welcome.html +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/htmldialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/imagesetctrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/metadatactrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_table_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/moduleview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/namesubscriber.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/omerologin.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/parametersampleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/pathlist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/pipeline.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/pipelinecontroller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/pipelinelistview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/plateviewer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/plugins_menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/preferences_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/regexp_editor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/tools.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/icon.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/utilities/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/icons/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/knime_bridge.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/misc.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/UntangleWorms.xsd +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/_help.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/calculatemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/calculatestatistics.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/classifyobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/closing.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/colortogray.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/combineobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/convertimagetoobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/convertobjectstoimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/correctilluminationapply.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/createbatchfiles.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/crop.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/definegrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/dilateimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/dilateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/displaydataonimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/displaydensityplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/displayhistogram.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/displayplatemap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/displayscatterplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/editobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/enhanceedges.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/erodeimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/erodeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/exporttodatabase.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/exporttospreadsheet.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/fillobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/filterobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/findmaxima.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/flagimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/flipandrotate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/gaussianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/graytocolor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/identifydeadworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/imagemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/invertforprinting.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/labelimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/makeprojection.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/maskimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/maskobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/matchtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measurecolocalization.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measuregranularity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureimageoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureimagequality.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureimageskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureobjectneighbors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureobjectoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measureobjectskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/measuretexture.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/medialaxis.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/medianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/morph.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/morphologicalskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/opening.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/overlayobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/overlayoutlines.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/plugins/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/reducenoise.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/relateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/removeholes.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/rescaleintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/resize.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/resizeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/runimagejmacro.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/savecroppedobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/saveimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/smooth.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/splitormergeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/straightenworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/threshold.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/tile.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/trackobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/unmixcolors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/untangleworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/modules/watershed.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/utilities/morphology.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/utilities/rules.py +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/environment.yml +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/pyproject.toml +0 -0
- {cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CellProfiler-nightly
|
|
3
|
-
Version: 5.0.0.
|
|
3
|
+
Version: 5.0.0.dev534
|
|
4
4
|
Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
|
|
5
5
|
Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
|
|
6
6
|
Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CellProfiler-nightly
|
|
3
|
-
Version: 5.0.0.
|
|
3
|
+
Version: 5.0.0.dev534
|
|
4
4
|
Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
|
|
5
5
|
Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
|
|
6
6
|
Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
|
{cellprofiler_nightly-5.0.0.dev520 → cellprofiler_nightly-5.0.0.dev534}/cellprofiler/_version.py
RENAMED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '5.0.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (5, 0, 0, '
|
|
31
|
+
__version__ = version = '5.0.0.dev534'
|
|
32
|
+
__version_tuple__ = version_tuple = (5, 0, 0, 'dev534')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gb1ea41570'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
|
|
3
3
|
import numpy
|
|
4
|
-
from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
|
|
4
|
+
from cellprofiler_core.constants.measurement import COLTYPE_FLOAT, COLTYPE_INTEGER
|
|
5
5
|
from cellprofiler_core.module import Module
|
|
6
6
|
from cellprofiler_core.setting import Binary, ValidationError, Divider
|
|
7
7
|
from cellprofiler_core.setting.text import Text
|
|
@@ -11,7 +11,8 @@ from cellprofiler_core.setting.subscriber import (
|
|
|
11
11
|
)
|
|
12
12
|
|
|
13
13
|
from cellprofiler.modules import _help
|
|
14
|
-
|
|
14
|
+
from cellprofiler_library.opts.measureimageintensity import TemplateMeasurementFormat, TemplateFeature, ALL_MEASUREMENTS
|
|
15
|
+
from cellprofiler_library.modules._measureimageintensity import measure_image_intensity
|
|
15
16
|
LOGGER = logging.getLogger(__name__)
|
|
16
17
|
|
|
17
18
|
__doc__ = """
|
|
@@ -72,52 +73,6 @@ Measurements made by this module
|
|
|
72
73
|
**{"HELP_ON_MEASURING_INTENSITIES": _help.HELP_ON_MEASURING_INTENSITIES}
|
|
73
74
|
)
|
|
74
75
|
|
|
75
|
-
"""Measurement feature name format for the TotalIntensity measurement"""
|
|
76
|
-
F_TOTAL_INTENSITY = "Intensity_TotalIntensity_%s"
|
|
77
|
-
|
|
78
|
-
"""Measurement feature name format for the MeanIntensity measurement"""
|
|
79
|
-
F_MEAN_INTENSITY = "Intensity_MeanIntensity_%s"
|
|
80
|
-
|
|
81
|
-
"""Measurement feature name format for the MeanIntensity measurement"""
|
|
82
|
-
F_MEDIAN_INTENSITY = "Intensity_MedianIntensity_%s"
|
|
83
|
-
|
|
84
|
-
"""Measurement feature name format for the StdIntensity measurement"""
|
|
85
|
-
F_STD_INTENSITY = "Intensity_StdIntensity_%s"
|
|
86
|
-
|
|
87
|
-
"""Measurement feature name format for the MedAbsDevIntensity measurement"""
|
|
88
|
-
F_MAD_INTENSITY = "Intensity_MADIntensity_%s"
|
|
89
|
-
|
|
90
|
-
"""Measurement feature name format for the MaxIntensity measurement"""
|
|
91
|
-
F_MAX_INTENSITY = "Intensity_MaxIntensity_%s"
|
|
92
|
-
|
|
93
|
-
"""Measurement feature name format for the MinIntensity measurement"""
|
|
94
|
-
F_MIN_INTENSITY = "Intensity_MinIntensity_%s"
|
|
95
|
-
|
|
96
|
-
"""Measurement feature name format for the TotalArea measurement"""
|
|
97
|
-
F_TOTAL_AREA = "Intensity_TotalArea_%s"
|
|
98
|
-
|
|
99
|
-
"""Measurement feature name format for the PercentMaximal measurement"""
|
|
100
|
-
F_PERCENT_MAXIMAL = "Intensity_PercentMaximal_%s"
|
|
101
|
-
|
|
102
|
-
"""Measurement feature name format for the Quartile measurements"""
|
|
103
|
-
F_UPPER_QUARTILE = "Intensity_UpperQuartileIntensity_%s"
|
|
104
|
-
F_LOWER_QUARTILE = "Intensity_LowerQuartileIntensity_%s"
|
|
105
|
-
|
|
106
|
-
ALL_MEASUREMENTS = [
|
|
107
|
-
"TotalIntensity",
|
|
108
|
-
"MeanIntensity",
|
|
109
|
-
"StdIntensity",
|
|
110
|
-
"MADIntensity",
|
|
111
|
-
"MedianIntensity",
|
|
112
|
-
"MinIntensity",
|
|
113
|
-
"MaxIntensity",
|
|
114
|
-
"TotalArea",
|
|
115
|
-
"PercentMaximal",
|
|
116
|
-
"LowerQuartileIntensity",
|
|
117
|
-
"UpperQuartileIntensity",
|
|
118
|
-
]
|
|
119
|
-
|
|
120
|
-
|
|
121
76
|
class MeasureImageIntensity(Module):
|
|
122
77
|
module_name = "MeasureImageIntensity"
|
|
123
78
|
category = "Measurement"
|
|
@@ -224,20 +179,22 @@ class MeasureImageIntensity(Module):
|
|
|
224
179
|
|
|
225
180
|
def run(self, workspace):
|
|
226
181
|
"""Perform the measurements on the image sets"""
|
|
227
|
-
|
|
182
|
+
percentiles_to_measure = self.percentiles.value
|
|
183
|
+
wants_object = self.wants_objects.value
|
|
184
|
+
objects_list = self.objects_list.value
|
|
185
|
+
|
|
228
186
|
statistics = []
|
|
229
187
|
if self.wants_percentiles:
|
|
230
|
-
percentiles = self.get_percentiles(
|
|
188
|
+
percentiles = self.get_percentiles(percentiles_to_measure, stop=True)
|
|
231
189
|
else:
|
|
232
190
|
percentiles = None
|
|
191
|
+
|
|
233
192
|
for im in self.images_list.value:
|
|
234
193
|
image = workspace.image_set.get_image(im, must_be_grayscale=True)
|
|
235
194
|
input_pixels = image.pixel_data
|
|
236
195
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
for object_set in self.objects_list.value:
|
|
240
|
-
measurement_name += "_" + object_set
|
|
196
|
+
if wants_object:
|
|
197
|
+
for object_set in objects_list:
|
|
241
198
|
objects = workspace.get_objects(object_set)
|
|
242
199
|
if objects.shape != input_pixels.shape:
|
|
243
200
|
raise ValueError(
|
|
@@ -253,17 +210,33 @@ class MeasureImageIntensity(Module):
|
|
|
253
210
|
]
|
|
254
211
|
else:
|
|
255
212
|
pixels = input_pixels[objects.segmented != 0]
|
|
256
|
-
|
|
257
|
-
|
|
213
|
+
|
|
214
|
+
lm, stats = measure_image_intensity(
|
|
215
|
+
pixels=pixels,
|
|
216
|
+
image_name=im,
|
|
217
|
+
object_name=object_set,
|
|
218
|
+
percentiles=percentiles
|
|
258
219
|
)
|
|
220
|
+
|
|
221
|
+
self._add_library_measurements_to_core(lm, workspace)
|
|
222
|
+
statistics += stats
|
|
259
223
|
else:
|
|
260
224
|
if image.has_mask:
|
|
261
225
|
pixels = input_pixels[image.mask]
|
|
262
226
|
else:
|
|
263
227
|
pixels = input_pixels
|
|
264
|
-
|
|
265
|
-
|
|
228
|
+
|
|
229
|
+
lm, stats = measure_image_intensity(
|
|
230
|
+
pixels=pixels,
|
|
231
|
+
image_name=im,
|
|
232
|
+
object_name=None,
|
|
233
|
+
percentiles=percentiles
|
|
266
234
|
)
|
|
235
|
+
|
|
236
|
+
self._add_library_measurements_to_core(lm, workspace)
|
|
237
|
+
statistics += stats
|
|
238
|
+
|
|
239
|
+
col_labels = ["Image", "Masking object", "Feature", "Value"]
|
|
267
240
|
workspace.display_data.statistics = statistics
|
|
268
241
|
workspace.display_data.col_labels = col_labels
|
|
269
242
|
|
|
@@ -276,115 +249,31 @@ class MeasureImageIntensity(Module):
|
|
|
276
249
|
col_labels=workspace.display_data.col_labels,
|
|
277
250
|
)
|
|
278
251
|
|
|
279
|
-
def
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
object_name - name of the current object set pixels are masked to
|
|
284
|
-
measurement_name - group title to be used in data tables
|
|
285
|
-
workspace - has all the details for current image set
|
|
286
|
-
"""
|
|
287
|
-
pixel_count = numpy.product(pixels.shape)
|
|
288
|
-
percentile_measures = {}
|
|
289
|
-
if pixel_count == 0:
|
|
290
|
-
pixel_sum = 0
|
|
291
|
-
pixel_mean = 0
|
|
292
|
-
pixel_std = 0
|
|
293
|
-
pixel_mad = 0
|
|
294
|
-
pixel_median = 0
|
|
295
|
-
pixel_min = 0
|
|
296
|
-
pixel_max = 0
|
|
297
|
-
pixel_pct_max = 0
|
|
298
|
-
pixel_lower_qrt = 0
|
|
299
|
-
pixel_upper_qrt = 0
|
|
300
|
-
if percentiles:
|
|
301
|
-
for percentile in percentiles:
|
|
302
|
-
percentile_measures[percentile] = 0
|
|
303
|
-
else:
|
|
304
|
-
pixels = pixels.flatten()
|
|
305
|
-
pixels = pixels[
|
|
306
|
-
numpy.nonzero(numpy.isfinite(pixels))[0]
|
|
307
|
-
] # Ignore NaNs, Infs
|
|
308
|
-
pixel_count = numpy.product(pixels.shape)
|
|
309
|
-
|
|
310
|
-
pixel_sum = numpy.sum(pixels)
|
|
311
|
-
pixel_mean = pixel_sum / float(pixel_count)
|
|
312
|
-
pixel_std = numpy.std(pixels)
|
|
313
|
-
pixel_median = numpy.median(pixels)
|
|
314
|
-
pixel_mad = numpy.median(numpy.abs(pixels - pixel_median))
|
|
315
|
-
pixel_min = numpy.min(pixels)
|
|
316
|
-
pixel_max = numpy.max(pixels)
|
|
317
|
-
pixel_pct_max = (
|
|
318
|
-
100.0 * float(numpy.sum(pixels == pixel_max)) / float(pixel_count)
|
|
319
|
-
)
|
|
320
|
-
pixel_lower_qrt, pixel_upper_qrt = numpy.percentile(pixels, [25, 75])
|
|
321
|
-
|
|
322
|
-
if percentiles:
|
|
323
|
-
percentile_results = numpy.percentile(pixels, percentiles)
|
|
324
|
-
for percentile, res in zip(percentiles, percentile_results):
|
|
325
|
-
percentile_measures[percentile] = res
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
m = workspace.measurements
|
|
329
|
-
m.add_image_measurement(F_TOTAL_INTENSITY % measurement_name, pixel_sum)
|
|
330
|
-
m.add_image_measurement(F_MEAN_INTENSITY % measurement_name, pixel_mean)
|
|
331
|
-
m.add_image_measurement(F_MEDIAN_INTENSITY % measurement_name, pixel_median)
|
|
332
|
-
m.add_image_measurement(F_STD_INTENSITY % measurement_name, pixel_std)
|
|
333
|
-
m.add_image_measurement(F_MAD_INTENSITY % measurement_name, pixel_mad)
|
|
334
|
-
m.add_image_measurement(F_MAX_INTENSITY % measurement_name, pixel_max)
|
|
335
|
-
m.add_image_measurement(F_MIN_INTENSITY % measurement_name, pixel_min)
|
|
336
|
-
m.add_image_measurement(F_TOTAL_AREA % measurement_name, pixel_count)
|
|
337
|
-
m.add_image_measurement(F_PERCENT_MAXIMAL % measurement_name, pixel_pct_max)
|
|
338
|
-
m.add_image_measurement(F_LOWER_QUARTILE % measurement_name, pixel_lower_qrt)
|
|
339
|
-
m.add_image_measurement(F_UPPER_QUARTILE % measurement_name, pixel_upper_qrt)
|
|
340
|
-
|
|
341
|
-
all_features = [
|
|
342
|
-
("Total intensity", pixel_sum),
|
|
343
|
-
("Mean intensity", pixel_mean),
|
|
344
|
-
("Median intensity", pixel_median),
|
|
345
|
-
("Std intensity", pixel_std),
|
|
346
|
-
("MAD intensity", pixel_mad),
|
|
347
|
-
("Min intensity", pixel_min),
|
|
348
|
-
("Max intensity", pixel_max),
|
|
349
|
-
("Pct maximal", pixel_pct_max),
|
|
350
|
-
("Lower quartile", pixel_lower_qrt),
|
|
351
|
-
("Upper quartile", pixel_upper_qrt),
|
|
352
|
-
("Total area", pixel_count),
|
|
353
|
-
]
|
|
354
|
-
for percentile, value in percentile_measures.items():
|
|
355
|
-
m.add_image_measurement(f"Intensity_Percentile_{percentile}_{measurement_name}", value)
|
|
356
|
-
all_features.append((f"Percentile {percentile}", value))
|
|
357
|
-
|
|
358
|
-
return [
|
|
359
|
-
[
|
|
360
|
-
image_name,
|
|
361
|
-
object_name if self.wants_objects.value else "",
|
|
362
|
-
feature_name,
|
|
363
|
-
str(value),
|
|
364
|
-
]
|
|
365
|
-
for feature_name, value in all_features
|
|
366
|
-
]
|
|
367
|
-
|
|
252
|
+
def _add_library_measurements_to_core(self, lib_measurements, workspace):
|
|
253
|
+
for feature_name, value in lib_measurements.image.items():
|
|
254
|
+
workspace.measurements.add_image_measurement(feature_name, value)
|
|
255
|
+
|
|
368
256
|
def get_measurement_columns(self, pipeline):
|
|
369
257
|
"""Return column definitions for measurements made by this module"""
|
|
370
258
|
columns = []
|
|
371
259
|
col_defs = [
|
|
372
|
-
(
|
|
373
|
-
(
|
|
374
|
-
(
|
|
375
|
-
(
|
|
376
|
-
(
|
|
377
|
-
(
|
|
378
|
-
(
|
|
379
|
-
(
|
|
380
|
-
(
|
|
381
|
-
(
|
|
382
|
-
(
|
|
260
|
+
(TemplateMeasurementFormat.TOTAL_INTENSITY, COLTYPE_FLOAT),
|
|
261
|
+
(TemplateMeasurementFormat.MEAN_INTENSITY, COLTYPE_FLOAT),
|
|
262
|
+
(TemplateMeasurementFormat.MEDIAN_INTENSITY, COLTYPE_FLOAT),
|
|
263
|
+
(TemplateMeasurementFormat.STD_INTENSITY, COLTYPE_FLOAT),
|
|
264
|
+
(TemplateMeasurementFormat.MAD_INTENSITY, COLTYPE_FLOAT),
|
|
265
|
+
(TemplateMeasurementFormat.MIN_INTENSITY, COLTYPE_FLOAT),
|
|
266
|
+
(TemplateMeasurementFormat.MAX_INTENSITY, COLTYPE_FLOAT),
|
|
267
|
+
(TemplateMeasurementFormat.TOTAL_AREA, COLTYPE_INTEGER),
|
|
268
|
+
(TemplateMeasurementFormat.PERCENT_MAXIMAL, COLTYPE_FLOAT),
|
|
269
|
+
(TemplateMeasurementFormat.LOWER_QUARTILE, COLTYPE_FLOAT),
|
|
270
|
+
(TemplateMeasurementFormat.UPPER_QUARTILE, COLTYPE_FLOAT),
|
|
383
271
|
]
|
|
384
272
|
if self.wants_percentiles:
|
|
385
273
|
percentiles = self.get_percentiles(self.percentiles.value, stop=False)
|
|
386
274
|
for percentile in percentiles:
|
|
387
|
-
|
|
275
|
+
# partial application of template
|
|
276
|
+
col_defs.append((TemplateMeasurementFormat.PERCENTILE % (percentile, '%s'), COLTYPE_FLOAT))
|
|
388
277
|
|
|
389
278
|
for im in self.images_list.value:
|
|
390
279
|
for feature, coltype in col_defs:
|
|
@@ -409,7 +298,7 @@ class MeasureImageIntensity(Module):
|
|
|
409
298
|
if self.wants_percentiles:
|
|
410
299
|
percentiles = self.get_percentiles(self.percentiles.value, stop=False)
|
|
411
300
|
for i in percentiles:
|
|
412
|
-
measures.append(
|
|
301
|
+
measures.append(TemplateFeature.PERCENTILE.value)
|
|
413
302
|
return measures
|
|
414
303
|
return []
|
|
415
304
|
|
|
@@ -418,7 +307,7 @@ class MeasureImageIntensity(Module):
|
|
|
418
307
|
if self.wants_percentiles:
|
|
419
308
|
percentiles = self.get_percentiles(self.percentiles.value, stop=False)
|
|
420
309
|
for i in percentiles:
|
|
421
|
-
measures.append(
|
|
310
|
+
measures.append(TemplateFeature.PERCENTILE.value)
|
|
422
311
|
if (
|
|
423
312
|
object_name == "Image"
|
|
424
313
|
and category == "Intensity"
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
from cellprofiler_core.constants.measurement import C_LOCATION, COLTYPE_FLOAT
|
|
2
|
+
from cellprofiler_core.module import Module
|
|
3
|
+
from cellprofiler_core.setting import Divider, ValidationError
|
|
4
|
+
from cellprofiler_core.setting.subscriber import (
|
|
5
|
+
ImageListSubscriber,
|
|
6
|
+
LabelListSubscriber,
|
|
7
|
+
)
|
|
8
|
+
from cellprofiler.modules import _help
|
|
9
|
+
from cellprofiler_library.modules._measureobjectintensity import measure_object_intensity
|
|
10
|
+
from cellprofiler_library.opts.measureobjectintensity import ALL_MEASUREMENTS, ALL_LOCATION_MEASUREMENTS, C_INTENSITY, TemplateMeasurementFormat, IntensityFeature
|
|
11
|
+
|
|
12
|
+
__doc__ = """
|
|
13
|
+
MeasureObjectIntensity
|
|
14
|
+
======================
|
|
15
|
+
|
|
16
|
+
**MeasureObjectIntensity** measures several intensity features for
|
|
17
|
+
identified objects.
|
|
18
|
+
|
|
19
|
+
Given an image with objects identified (e.g., nuclei or cells), this
|
|
20
|
+
module extracts intensity features for each object based on one or more
|
|
21
|
+
corresponding grayscale images. Measurements are recorded for each
|
|
22
|
+
object.
|
|
23
|
+
|
|
24
|
+
Intensity measurements are made for all combinations of the images and
|
|
25
|
+
objects entered. If you want only specific image/object measurements,
|
|
26
|
+
you can use multiple MeasureObjectIntensity modules for each group of
|
|
27
|
+
measurements desired.
|
|
28
|
+
|
|
29
|
+
{HELP_ON_MEASURING_INTENSITIES}
|
|
30
|
+
|
|
31
|
+
|
|
|
32
|
+
|
|
33
|
+
============ ============ ===============
|
|
34
|
+
Supports 2D? Supports 3D? Respects masks?
|
|
35
|
+
============ ============ ===============
|
|
36
|
+
YES YES YES
|
|
37
|
+
============ ============ ===============
|
|
38
|
+
|
|
39
|
+
See also
|
|
40
|
+
^^^^^^^^
|
|
41
|
+
|
|
42
|
+
See also **NamesAndTypes**, **MeasureImageIntensity**.
|
|
43
|
+
|
|
44
|
+
Measurements made by this module
|
|
45
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
46
|
+
|
|
47
|
+
- *IntegratedIntensity:* The sum of the pixel intensities within an
|
|
48
|
+
object.
|
|
49
|
+
- *MeanIntensity:* The average pixel intensity within an object.
|
|
50
|
+
- *StdIntensity:* The standard deviation of the pixel intensities
|
|
51
|
+
within an object.
|
|
52
|
+
- *MaxIntensity:* The maximal pixel intensity within an object.
|
|
53
|
+
- *MinIntensity:* The minimal pixel intensity within an object.
|
|
54
|
+
- *IntegratedIntensityEdge:* The sum of the edge pixel intensities of
|
|
55
|
+
an object.
|
|
56
|
+
- *MeanIntensityEdge:* The average edge pixel intensity of an object.
|
|
57
|
+
- *StdIntensityEdge:* The standard deviation of the edge pixel
|
|
58
|
+
intensities of an object.
|
|
59
|
+
- *MaxIntensityEdge:* The maximal edge pixel intensity of an object.
|
|
60
|
+
- *MinIntensityEdge:* The minimal edge pixel intensity of an object.
|
|
61
|
+
- *MassDisplacement:* The distance between the centers of gravity in
|
|
62
|
+
the gray-level representation of the object and the binary
|
|
63
|
+
representation of the object.
|
|
64
|
+
- *LowerQuartileIntensity:* The intensity value of the pixel for which
|
|
65
|
+
25% of the pixels in the object have lower values.
|
|
66
|
+
- *MedianIntensity:* The median intensity value within the object.
|
|
67
|
+
- *MADIntensity:* The median absolute deviation (MAD) value of the
|
|
68
|
+
intensities within the object. The MAD is defined as the
|
|
69
|
+
median(\|x\ :sub:`i` - median(x)\|).
|
|
70
|
+
- *UpperQuartileIntensity:* The intensity value of the pixel for which
|
|
71
|
+
75% of the pixels in the object have lower values.
|
|
72
|
+
- *Location\_CenterMassIntensity\_X, Location\_CenterMassIntensity\_Y:*
|
|
73
|
+
The (X,Y) coordinates of the intensity weighted centroid (=
|
|
74
|
+
center of mass = first moment) of all pixels within the object.
|
|
75
|
+
- *Location\_MaxIntensity\_X, Location\_MaxIntensity\_Y:* The
|
|
76
|
+
(X,Y) coordinates of the pixel with the maximum intensity within the
|
|
77
|
+
object.
|
|
78
|
+
|
|
79
|
+
""".format(
|
|
80
|
+
**{"HELP_ON_MEASURING_INTENSITIES": _help.HELP_ON_MEASURING_INTENSITIES}
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
class MeasureObjectIntensity(Module):
|
|
84
|
+
module_name = "MeasureObjectIntensity"
|
|
85
|
+
variable_revision_number = 4
|
|
86
|
+
category = "Measurement"
|
|
87
|
+
|
|
88
|
+
def create_settings(self):
|
|
89
|
+
self.images_list = ImageListSubscriber(
|
|
90
|
+
"Select images to measure",
|
|
91
|
+
[],
|
|
92
|
+
doc="""Select the grayscale images whose intensity you want to measure.""",
|
|
93
|
+
)
|
|
94
|
+
self.divider = Divider()
|
|
95
|
+
self.objects_list = LabelListSubscriber(
|
|
96
|
+
"Select objects to measure",
|
|
97
|
+
[],
|
|
98
|
+
doc="""Select the object sets whose intensity you want to measure.""",
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
def settings(self):
|
|
102
|
+
result = [self.images_list, self.objects_list]
|
|
103
|
+
return result
|
|
104
|
+
|
|
105
|
+
def visible_settings(self):
|
|
106
|
+
result = [self.images_list, self.divider, self.objects_list]
|
|
107
|
+
return result
|
|
108
|
+
|
|
109
|
+
def upgrade_settings(self, setting_values, variable_revision_number, module_name):
|
|
110
|
+
if variable_revision_number == 2:
|
|
111
|
+
num_imgs = setting_values.index("Do not use")
|
|
112
|
+
setting_values = (
|
|
113
|
+
[str(num_imgs)]
|
|
114
|
+
+ setting_values[:num_imgs]
|
|
115
|
+
+ setting_values[num_imgs + 1 :]
|
|
116
|
+
)
|
|
117
|
+
variable_revision_number = 3
|
|
118
|
+
if variable_revision_number == 3:
|
|
119
|
+
num_imgs = int(setting_values[0])
|
|
120
|
+
images_list = setting_values[1 : num_imgs + 1]
|
|
121
|
+
objects_list = setting_values[num_imgs + 1 :]
|
|
122
|
+
setting_values = [
|
|
123
|
+
", ".join(map(str, images_list)),
|
|
124
|
+
", ".join(map(str, objects_list)),
|
|
125
|
+
]
|
|
126
|
+
variable_revision_number = 4
|
|
127
|
+
return setting_values, variable_revision_number
|
|
128
|
+
|
|
129
|
+
def validate_module(self, pipeline):
|
|
130
|
+
"""Make sure chosen objects and images are selected only once"""
|
|
131
|
+
images = set()
|
|
132
|
+
if len(self.images_list.value) == 0:
|
|
133
|
+
raise ValidationError("No images selected", self.images_list)
|
|
134
|
+
elif len(self.objects_list.value) == 0:
|
|
135
|
+
raise ValidationError("No objects selected", self.objects_list)
|
|
136
|
+
for image_name in self.images_list.value:
|
|
137
|
+
if image_name in images:
|
|
138
|
+
raise ValidationError(
|
|
139
|
+
"%s has already been selected" % image_name, image_name
|
|
140
|
+
)
|
|
141
|
+
images.add(image_name)
|
|
142
|
+
|
|
143
|
+
objects = set()
|
|
144
|
+
for object_name in self.objects_list.value:
|
|
145
|
+
if object_name in objects:
|
|
146
|
+
raise ValidationError(
|
|
147
|
+
"%s has already been selected" % object_name, object_name
|
|
148
|
+
)
|
|
149
|
+
objects.add(object_name)
|
|
150
|
+
|
|
151
|
+
def get_measurement_columns(self, pipeline):
|
|
152
|
+
"""Return the column definitions for measurements made by this module"""
|
|
153
|
+
columns = []
|
|
154
|
+
for image_name in self.images_list.value:
|
|
155
|
+
for object_name in self.objects_list.value:
|
|
156
|
+
for category, features in (
|
|
157
|
+
(C_INTENSITY, ALL_MEASUREMENTS),
|
|
158
|
+
(C_LOCATION, ALL_LOCATION_MEASUREMENTS,),
|
|
159
|
+
):
|
|
160
|
+
for feature in features:
|
|
161
|
+
columns.append(
|
|
162
|
+
(
|
|
163
|
+
object_name,
|
|
164
|
+
"%s_%s_%s" % (category, feature, image_name),
|
|
165
|
+
COLTYPE_FLOAT,
|
|
166
|
+
)
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
return columns
|
|
170
|
+
|
|
171
|
+
def get_categories(self, pipeline, object_name):
|
|
172
|
+
"""Get the categories of measurements supplied for the given object name
|
|
173
|
+
|
|
174
|
+
pipeline - pipeline being run
|
|
175
|
+
object_name - name of labels in question (or 'Images')
|
|
176
|
+
returns a list of category names
|
|
177
|
+
"""
|
|
178
|
+
for object_set in self.objects_list.value:
|
|
179
|
+
if object_set == object_name:
|
|
180
|
+
return [C_INTENSITY, C_LOCATION]
|
|
181
|
+
return []
|
|
182
|
+
|
|
183
|
+
def get_measurements(self, pipeline, object_name, category):
|
|
184
|
+
"""Get the measurements made on the given object in the given category"""
|
|
185
|
+
if category == C_LOCATION:
|
|
186
|
+
all_measurements = ALL_LOCATION_MEASUREMENTS
|
|
187
|
+
elif category == C_INTENSITY:
|
|
188
|
+
all_measurements = ALL_MEASUREMENTS
|
|
189
|
+
else:
|
|
190
|
+
return []
|
|
191
|
+
for object_set in self.objects_list.value:
|
|
192
|
+
if object_set == object_name:
|
|
193
|
+
return all_measurements
|
|
194
|
+
return []
|
|
195
|
+
|
|
196
|
+
def get_measurement_images(self, pipeline, object_name, category, measurement):
|
|
197
|
+
"""Get the images used to make the given measurement in the given category on the given object"""
|
|
198
|
+
if category == C_INTENSITY:
|
|
199
|
+
if measurement not in ALL_MEASUREMENTS:
|
|
200
|
+
return []
|
|
201
|
+
elif category == C_LOCATION:
|
|
202
|
+
if measurement not in ALL_LOCATION_MEASUREMENTS:
|
|
203
|
+
return []
|
|
204
|
+
else:
|
|
205
|
+
return []
|
|
206
|
+
for object_set in self.objects_list.value:
|
|
207
|
+
if object_set == object_name:
|
|
208
|
+
return self.images_list.value
|
|
209
|
+
return []
|
|
210
|
+
|
|
211
|
+
def run(self, workspace):
|
|
212
|
+
if self.show_window:
|
|
213
|
+
workspace.display_data.col_labels = (
|
|
214
|
+
"Image",
|
|
215
|
+
"Object",
|
|
216
|
+
"Feature",
|
|
217
|
+
"Mean",
|
|
218
|
+
"Median",
|
|
219
|
+
"STD",
|
|
220
|
+
)
|
|
221
|
+
workspace.display_data.statistics = []
|
|
222
|
+
if len(self.images_list.value) == 0 or len(self.objects_list.value) == 0:
|
|
223
|
+
raise ValueError(
|
|
224
|
+
"This module needs at least 1 image and object set selected"
|
|
225
|
+
)
|
|
226
|
+
for image_name in self.images_list.value:
|
|
227
|
+
image = workspace.image_set.get_image(image_name, must_be_grayscale=True)
|
|
228
|
+
for object_name in self.objects_list.value:
|
|
229
|
+
if object_name not in workspace.object_set.object_names:
|
|
230
|
+
raise ValueError(
|
|
231
|
+
"The %s objects are missing from the pipeline." % object_name
|
|
232
|
+
)
|
|
233
|
+
# Need to refresh image after each iteration...
|
|
234
|
+
img = image.pixel_data
|
|
235
|
+
image_mask = image.mask if image.has_mask else None
|
|
236
|
+
|
|
237
|
+
objects = workspace.object_set.get_objects(object_name)
|
|
238
|
+
nobjects = objects.count
|
|
239
|
+
|
|
240
|
+
lib_measurements, lib_stats = measure_object_intensity(
|
|
241
|
+
img=img,
|
|
242
|
+
image_name=image_name,
|
|
243
|
+
object_name=object_name,
|
|
244
|
+
image_mask=image_mask,
|
|
245
|
+
object_labels=objects.get_labels(),
|
|
246
|
+
nobjects=nobjects,
|
|
247
|
+
image_dimensions=image.dimensions,
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
m = workspace.measurements
|
|
251
|
+
|
|
252
|
+
# Feature Name -> Template String
|
|
253
|
+
feature_template_map = {
|
|
254
|
+
val[:-len('_%s')].split('_', 1)[1]: val
|
|
255
|
+
for val in (getattr(TemplateMeasurementFormat, x.name) for x in IntensityFeature)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
for stat in lib_stats:
|
|
259
|
+
image_name = stat[0]
|
|
260
|
+
object_name = stat[1]
|
|
261
|
+
feature_name = stat[2]
|
|
262
|
+
measurement_name = feature_template_map[feature_name] % image_name
|
|
263
|
+
# Retrieve measurement from LibraryMeasurements
|
|
264
|
+
# Note: measure_object_intensity adds them with the same key format
|
|
265
|
+
if lib_measurements.has_feature(object_name, measurement_name):
|
|
266
|
+
measurement = lib_measurements.get_measurement(object_name, measurement_name)
|
|
267
|
+
m.add_measurement(object_name, measurement_name, measurement)
|
|
268
|
+
if self.show_window and len(measurement) > 0:
|
|
269
|
+
workspace.display_data.statistics.append(stat)
|
|
270
|
+
|
|
271
|
+
def display(self, workspace, figure):
|
|
272
|
+
figure.set_subplots((1, 1))
|
|
273
|
+
figure.subplot_table(
|
|
274
|
+
0,
|
|
275
|
+
0,
|
|
276
|
+
workspace.display_data.statistics,
|
|
277
|
+
col_labels=workspace.display_data.col_labels,
|
|
278
|
+
title="default",
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
def volumetric(self):
|
|
282
|
+
return True
|