CellProfiler-nightly 5.0.0.dev669__tar.gz → 5.0.0.dev684__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.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
- cellprofiler_nightly-5.0.0.dev684/CellProfiler_nightly.egg-info/scm_version.json +8 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/_version.py +3 -3
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/findmaxima.py +28 -37
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/makeprojection.py +81 -245
- cellprofiler_nightly-5.0.0.dev669/CellProfiler_nightly.egg-info/scm_version.json +0 -8
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/requires.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/scm_file_list.json +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/LICENSE +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/README.md +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/__main__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/display_image_tools.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/display_menu_bar.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_3d_identify.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_batch.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_logging.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_omero.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_plugins.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_shell.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/output_measurements.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/output_plateviewer.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/pipelines_building.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/pipelines_running.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_configure_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_introduction.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.ai +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.icns +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Align.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ApplyThreshold.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/CollapseTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ColorToGray.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Crop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ExpandTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/GrayToColor.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ERROR.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_GO.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_OK.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_RUN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_STOP.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_TEST.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_WARN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_UsingRules.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureTexture.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Tile.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/UnmixColors.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/check.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/color.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/dapi.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/delete.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/downarrow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/eye-close.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/eye-open.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ffwd.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ffwddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/filter.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/folder_browse.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/folder_create.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/gear.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/gfp.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/icon_copyrights.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/illumination_function.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/mask.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscope-color_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscope-icon_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscope-icon_32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscopes_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_add.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_movedown.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_moveup.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_remove.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/monochrome.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/movie_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/next.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/objects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/pausedisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/play.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/playdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/previous.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/remove-sign.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/rewind.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/rewinddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/splash.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/status_pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/status_save.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/status_stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/stopdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/structuringelement.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/thumb-down.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/thumb-up.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/unchecked.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/wantpony.wav +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_examples.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_new.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_pipeline.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_screen_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_start.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_tutorial.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_back.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_filesave.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_forward.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_home.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_pan.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/_welcome_frame.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/_workspace_model.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/addmoduleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/app.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/checkupdate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/cpframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/editobjectsdlg.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/errordialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/_outline_artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/gridrenderers.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/content.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/search.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/configure_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/exporting_results_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/getting_started.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/htmlwindow.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/identify_features_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/in_app_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/making_measurements_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/selecting_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/test_mode_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/utils.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/welcome.html +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/htmldialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/imagesetctrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/metadatactrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_table_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/moduleview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/namesubscriber.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/omerologin.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/parametersampleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pathlist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pipeline.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pipelinecontroller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pipelinelistview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/plateviewer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/plugins_menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/regexp_editor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/tools.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/icon.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/icons/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/knime_bridge.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/misc.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/UntangleWorms.xsd +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/_help.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/calculatemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/calculatestatistics.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/classifyobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/closing.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/colortogray.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/combineobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/convertimagetoobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/convertobjectstoimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/correctilluminationapply.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/createbatchfiles.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/crop.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/definegrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/dilateimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/dilateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displaydataonimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displaydensityplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displayhistogram.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displayplatemap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displayscatterplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/editobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/enhanceedges.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/erodeimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/erodeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/exporttodatabase.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/exporttospreadsheet.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/fillobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/filterobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/flagimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/flipandrotate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/gaussianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/graytocolor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifydeadworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/imagemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/invertforprinting.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/labelimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/maskimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/maskobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/matchtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measurecolocalization.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measuregranularity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimagequality.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectneighbors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measuretexture.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/medialaxis.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/medianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/morph.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/morphologicalskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/opening.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/overlayobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/overlayoutlines.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/reducenoise.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/relateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/removeholes.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/rescaleintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/resize.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/resizeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/runimagejmacro.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/savecroppedobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/saveimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/smooth.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/splitormergeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/straightenworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/threshold.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/tile.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/trackobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/unmixcolors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/untangleworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/watershed.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/utilities/morphology.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/utilities/rules.py +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/environment.yml +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/pyproject.toml +0 -0
- {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/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.dev684
|
|
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.dev684
|
|
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.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/_version.py
RENAMED
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '5.0.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (5, 0, 0, '
|
|
21
|
+
__version__ = version = '5.0.0.dev684'
|
|
22
|
+
__version_tuple__ = version_tuple = (5, 0, 0, 'dev684')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gf422c7454'
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
"""
|
|
2
3
|
FindMaxima
|
|
3
4
|
==========
|
|
@@ -20,10 +21,7 @@ YES YES NO
|
|
|
20
21
|
============ ============ ===============
|
|
21
22
|
"""
|
|
22
23
|
|
|
23
|
-
import numpy
|
|
24
|
-
from skimage.feature import peak_local_max
|
|
25
24
|
from skimage.morphology import disk, ball, dilation
|
|
26
|
-
import scipy.ndimage
|
|
27
25
|
|
|
28
26
|
from cellprofiler_core.image import Image
|
|
29
27
|
from cellprofiler_core.module import ImageProcessing
|
|
@@ -31,12 +29,9 @@ from cellprofiler_core.setting import Color, Binary
|
|
|
31
29
|
from cellprofiler_core.setting.choice import Choice
|
|
32
30
|
from cellprofiler_core.setting.subscriber import ImageSubscriber, LabelSubscriber
|
|
33
31
|
from cellprofiler_core.setting.text import Integer, Float
|
|
34
|
-
from cellprofiler_core.utilities.core.object import overlay_labels
|
|
35
|
-
|
|
36
|
-
MODE_THRESHOLD = "Threshold"
|
|
37
|
-
MODE_MASK = "Mask"
|
|
38
|
-
MODE_OBJECTS = "Within Objects"
|
|
39
32
|
|
|
33
|
+
from cellprofiler_library.opts.findmaxima import BackgroundExclusionMode
|
|
34
|
+
from cellprofiler_library.modules._findmaxima import find_maxima
|
|
40
35
|
|
|
41
36
|
class FindMaxima(ImageProcessing):
|
|
42
37
|
category = "Advanced"
|
|
@@ -57,21 +52,21 @@ class FindMaxima(ImageProcessing):
|
|
|
57
52
|
|
|
58
53
|
self.exclude_mode = Choice(
|
|
59
54
|
"Method for excluding background",
|
|
60
|
-
[
|
|
55
|
+
[BackgroundExclusionMode.THRESHOLD.value, BackgroundExclusionMode.MASK.value, BackgroundExclusionMode.OBJECTS.value],
|
|
61
56
|
value="Threshold",
|
|
62
57
|
doc=f"""\
|
|
63
58
|
By default, local maxima will be searched for across the whole image. This means
|
|
64
59
|
that maxima will be found in areas that consist entirely of background. To
|
|
65
60
|
resolve this we have several methods to exclude background.
|
|
66
61
|
|
|
67
|
-
**{
|
|
62
|
+
**{BackgroundExclusionMode.THRESHOLD.value}** allows you to specify a minimum pixel intensity to be
|
|
68
63
|
considered as a peak. Setting this to 0 effectively uses no threshold.
|
|
69
64
|
|
|
70
|
-
**{
|
|
65
|
+
**{BackgroundExclusionMode.MASK.value}** will restrict peaks to areas which are within a provided mask
|
|
71
66
|
image. This mask will typically come from the threshold module or another means
|
|
72
67
|
of finding background.
|
|
73
68
|
|
|
74
|
-
**{
|
|
69
|
+
**{BackgroundExclusionMode.OBJECTS.value}** will restrict peaks to areas within an existing set of
|
|
75
70
|
objects.
|
|
76
71
|
""",
|
|
77
72
|
)
|
|
@@ -143,11 +138,11 @@ images.
|
|
|
143
138
|
self.exclude_mode,
|
|
144
139
|
]
|
|
145
140
|
|
|
146
|
-
if self.exclude_mode ==
|
|
141
|
+
if self.exclude_mode == BackgroundExclusionMode.THRESHOLD.value:
|
|
147
142
|
result.append(self.min_intensity)
|
|
148
|
-
elif self.exclude_mode ==
|
|
143
|
+
elif self.exclude_mode == BackgroundExclusionMode.MASK.value:
|
|
149
144
|
result.append(self.mask_image)
|
|
150
|
-
elif self.exclude_mode ==
|
|
145
|
+
elif self.exclude_mode == BackgroundExclusionMode.OBJECTS.value:
|
|
151
146
|
result.append(self.mask_objects)
|
|
152
147
|
|
|
153
148
|
result.append(self.maxima_size)
|
|
@@ -173,30 +168,26 @@ images.
|
|
|
173
168
|
|
|
174
169
|
x_data = x_data_orig.copy()
|
|
175
170
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if self.exclude_mode.value == MODE_THRESHOLD:
|
|
179
|
-
th_abs = self.min_intensity.value
|
|
180
|
-
elif self.exclude_mode.value == MODE_MASK:
|
|
181
|
-
mask = images.get_image(self.mask_image.value).pixel_data.astype(bool)
|
|
182
|
-
x_data[~mask] = 0
|
|
183
|
-
elif self.exclude_mode.value == MODE_OBJECTS:
|
|
184
|
-
mask_objects = workspace.object_set.get_objects(self.mask_objects.value)
|
|
185
|
-
mask = mask_objects.segmented.astype(bool)
|
|
186
|
-
x_data[~mask] = 0
|
|
187
|
-
else:
|
|
188
|
-
raise NotImplementedError("Invalid background method choice")
|
|
171
|
+
min_intensity_value = None
|
|
172
|
+
target_mask = None
|
|
189
173
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
174
|
+
if self.exclude_mode.value == BackgroundExclusionMode.THRESHOLD.value:
|
|
175
|
+
min_intensity_value = self.min_intensity.value
|
|
176
|
+
elif self.exclude_mode.value == BackgroundExclusionMode.MASK.value:
|
|
177
|
+
target_mask = images.get_image(self.mask_image.value).pixel_data
|
|
178
|
+
elif self.exclude_mode.value == BackgroundExclusionMode.OBJECTS.value:
|
|
179
|
+
target_mask = workspace.object_set.get_objects(self.mask_objects.value).segmented
|
|
180
|
+
else:
|
|
181
|
+
raise NotImplementedError(f"Invalid background method choice: {self.exclude_mode.value}")
|
|
182
|
+
|
|
183
|
+
y_data = find_maxima(
|
|
184
|
+
x_data,
|
|
185
|
+
self.exclude_mode.value,
|
|
186
|
+
self.min_distance.value,
|
|
187
|
+
self.label_maxima.value,
|
|
188
|
+
min_intensity_value,
|
|
189
|
+
target_mask,
|
|
194
190
|
)
|
|
195
|
-
y_data = numpy.zeros(x_data.shape, dtype=bool)
|
|
196
|
-
y_data[tuple(maxima_coords.T)] = True
|
|
197
|
-
|
|
198
|
-
if self.label_maxima:
|
|
199
|
-
y_data = scipy.ndimage.label(y_data)[0]
|
|
200
191
|
|
|
201
192
|
y = Image(dimensions=dimensions, image=y_data, parent_image=x, convert=False)
|
|
202
193
|
|
|
@@ -62,24 +62,8 @@ from cellprofiler_core.setting.subscriber import ImageSubscriber
|
|
|
62
62
|
from cellprofiler_core.setting.text import ImageName
|
|
63
63
|
from cellprofiler_core.setting.text.number import Float
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
P_MINIMUM = "Minimum"
|
|
68
|
-
P_SUM = "Sum"
|
|
69
|
-
P_VARIANCE = "Variance"
|
|
70
|
-
P_POWER = "Power"
|
|
71
|
-
P_BRIGHTFIELD = "Brightfield"
|
|
72
|
-
P_MASK = "Mask"
|
|
73
|
-
P_ALL = [
|
|
74
|
-
P_AVERAGE,
|
|
75
|
-
P_MAXIMUM,
|
|
76
|
-
P_MINIMUM,
|
|
77
|
-
P_SUM,
|
|
78
|
-
P_VARIANCE,
|
|
79
|
-
P_POWER,
|
|
80
|
-
P_BRIGHTFIELD,
|
|
81
|
-
P_MASK,
|
|
82
|
-
]
|
|
65
|
+
from cellprofiler_library.modules._makeprojection import makeprojection
|
|
66
|
+
from cellprofiler_library.opts.makeprojection import ProjectionType, P_ALL
|
|
83
67
|
|
|
84
68
|
K_PROVIDER = "Provider"
|
|
85
69
|
|
|
@@ -102,18 +86,18 @@ class MakeProjection(Module):
|
|
|
102
86
|
doc="""\
|
|
103
87
|
The final projection image can be created by the following methods:
|
|
104
88
|
|
|
105
|
-
-
|
|
89
|
+
- *{P_AVERAGE}:* Use the average pixel intensity at each pixel
|
|
106
90
|
position.
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
91
|
+
- *{P_MAXIMUM}:* Use the maximum pixel value at each pixel position.
|
|
92
|
+
- *{P_MINIMUM}:* Use the minimum pixel value at each pixel position.
|
|
93
|
+
- *{P_SUM}:* Add the pixel values at each pixel position.
|
|
94
|
+
- *{P_VARIANCE}:* Compute the variance at each pixel position.
|
|
111
95
|
The variance method is described in Selinummi et al (2009). The
|
|
112
96
|
method is designed to operate on a Z-stack of brightfield images
|
|
113
97
|
taken at different focus planes. Background pixels will have
|
|
114
98
|
relatively uniform illumination whereas cytoplasm pixels will have
|
|
115
99
|
higher variance across the Z-stack.
|
|
116
|
-
-
|
|
100
|
+
- *{P_POWER}:* Compute the power at a given frequency at each pixel
|
|
117
101
|
position.
|
|
118
102
|
The power method is experimental. The method computes the power at a
|
|
119
103
|
given frequency through the Z-stack. It might be used with a phase
|
|
@@ -122,7 +106,7 @@ The final projection image can be created by the following methods:
|
|
|
122
106
|
and pixels that vary with the given frequency will have a higher
|
|
123
107
|
score than other pixels with similar variance, but different
|
|
124
108
|
frequencies.
|
|
125
|
-
-
|
|
109
|
+
- *{P_BRIGHTFIELD}:* Perform the brightfield projection at each
|
|
126
110
|
pixel position.
|
|
127
111
|
Artifacts such as dust appear as black spots that are most strongly
|
|
128
112
|
resolved at their focal plane with gradually increasing signals
|
|
@@ -130,7 +114,7 @@ The final projection image can be created by the following methods:
|
|
|
130
114
|
appears in the early Z-stacks. These pixels have a high score for the
|
|
131
115
|
variance method but have a reduced score when using the brightfield
|
|
132
116
|
method.
|
|
133
|
-
-
|
|
117
|
+
- *{P_MASK}:* Compute a binary image of the pixels that are masked
|
|
134
118
|
in any of the input images.
|
|
135
119
|
The mask method operates on any masks that might have been applied to
|
|
136
120
|
the images in a group. The output is a binary image where the “1”
|
|
@@ -151,8 +135,17 @@ References
|
|
|
151
135
|
4(10): e7497 `(link)`_.
|
|
152
136
|
|
|
153
137
|
.. _(link): https://doi.org/10.1371/journal.pone.0007497
|
|
154
|
-
"""
|
|
155
|
-
|
|
138
|
+
""".format(
|
|
139
|
+
**{
|
|
140
|
+
"P_AVERAGE": ProjectionType.AVERAGE.value,
|
|
141
|
+
"P_MAXIMUM": ProjectionType.MAXIMUM.value,
|
|
142
|
+
"P_MINIMUM": ProjectionType.MINIMUM.value,
|
|
143
|
+
"P_SUM": ProjectionType.SUM.value,
|
|
144
|
+
"P_VARIANCE": ProjectionType.VARIANCE.value,
|
|
145
|
+
"P_POWER": ProjectionType.POWER.value,
|
|
146
|
+
"P_BRIGHTFIELD": ProjectionType.BRIGHTFIELD.value,
|
|
147
|
+
"P_MASK": ProjectionType.MASK.value,
|
|
148
|
+
})
|
|
156
149
|
)
|
|
157
150
|
|
|
158
151
|
self.projection_image_name = ImageName(
|
|
@@ -166,14 +159,16 @@ References
|
|
|
166
159
|
6.0,
|
|
167
160
|
minval=1.0,
|
|
168
161
|
doc="""\
|
|
169
|
-
*(Used only if "
|
|
162
|
+
*(Used only if "{P_PROJECTION}" is selected as the projection method)*
|
|
170
163
|
|
|
171
164
|
This setting controls the frequency at which the power is measured. A
|
|
172
165
|
frequency of 2 will respond most strongly to pixels that alternate
|
|
173
166
|
between dark and light in successive z-stack slices. A frequency of N
|
|
174
167
|
will respond most strongly to pixels whose brightness cycles every N
|
|
175
|
-
slices."""
|
|
176
|
-
|
|
168
|
+
slices.""".format(**
|
|
169
|
+
{
|
|
170
|
+
"P_PROJECTION": ProjectionType.POWER.value,
|
|
171
|
+
})
|
|
177
172
|
)
|
|
178
173
|
|
|
179
174
|
def settings(self):
|
|
@@ -186,14 +181,14 @@ slices."""
|
|
|
186
181
|
|
|
187
182
|
def visible_settings(self):
|
|
188
183
|
result = [self.image_name, self.projection_type, self.projection_image_name]
|
|
189
|
-
if self.projection_type ==
|
|
184
|
+
if self.projection_type == ProjectionType.POWER.value:
|
|
190
185
|
result += [self.frequency]
|
|
191
186
|
return result
|
|
192
187
|
|
|
193
188
|
def prepare_group(self, workspace, grouping, image_numbers):
|
|
194
189
|
"""Reset the aggregate image at the start of group processing"""
|
|
195
190
|
if len(image_numbers) > 0:
|
|
196
|
-
provider = ImageProvider(
|
|
191
|
+
provider = ImageProvider.create(
|
|
197
192
|
self.projection_image_name.value,
|
|
198
193
|
self.projection_type.value,
|
|
199
194
|
self.frequency.value,
|
|
@@ -266,69 +261,37 @@ slices."""
|
|
|
266
261
|
class ImageProvider(AbstractImage):
|
|
267
262
|
"""Provide the image after averaging but before dilation and smoothing"""
|
|
268
263
|
|
|
269
|
-
|
|
264
|
+
D_NAME = "name"
|
|
265
|
+
D_FREQUENCY = "frequency"
|
|
266
|
+
D_METHOD = "method"
|
|
267
|
+
D_LIBRARY_STATE = "library_accumulator"
|
|
268
|
+
|
|
269
|
+
def __init__(self, name, method, frequency=6.0):
|
|
270
270
|
"""Construct using a parent provider that does the real work
|
|
271
271
|
|
|
272
272
|
name - name of the image provided
|
|
273
273
|
"""
|
|
274
274
|
super(ImageProvider, self).__init__()
|
|
275
|
-
self.
|
|
275
|
+
self._name = name
|
|
276
|
+
self.method = ProjectionType(method)
|
|
276
277
|
self.frequency = frequency
|
|
277
|
-
self.
|
|
278
|
-
self.
|
|
279
|
-
self.__image_count = None
|
|
280
|
-
self.__cached_image = None
|
|
281
|
-
#
|
|
282
|
-
# Variance needs image squared as float64, image sum and count
|
|
283
|
-
#
|
|
284
|
-
self.__vsquared = None
|
|
285
|
-
self.__vsum = None
|
|
286
|
-
#
|
|
287
|
-
# Power needs a running sum (reuse vsum), a power image of the mask
|
|
288
|
-
# and a complex-values image
|
|
289
|
-
#
|
|
290
|
-
self.__power_image = None
|
|
291
|
-
self.__power_mask = None
|
|
292
|
-
self.__stack_number = 0
|
|
293
|
-
#
|
|
294
|
-
# Brightfield needs a maximum and minimum image
|
|
295
|
-
#
|
|
296
|
-
self.__bright_max = None
|
|
297
|
-
self.__bright_min = None
|
|
298
|
-
self.__norm0 = None
|
|
278
|
+
self.library_accumulator = None
|
|
279
|
+
self._cached_image = None
|
|
299
280
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
D_IMAGE_COUNT = "imagecount"
|
|
305
|
-
D_VSQUARED = "vsquared"
|
|
306
|
-
D_VSUM = "vsum"
|
|
307
|
-
D_POWER_IMAGE = "powerimage"
|
|
308
|
-
D_POWER_MASK = "powermask"
|
|
309
|
-
D_STACK_NUMBER = "stacknumber"
|
|
310
|
-
D_BRIGHT_MAX = "brightmax"
|
|
311
|
-
D_BRIGHT_MIN = "brightmin"
|
|
312
|
-
D_NORM0 = "norm0"
|
|
281
|
+
@staticmethod
|
|
282
|
+
def create(name, how_to_accumulate, frequency=6.0):
|
|
283
|
+
"""Factory method to create the appropriate ImageProvider."""
|
|
284
|
+
return ImageProvider(name, how_to_accumulate, frequency)
|
|
313
285
|
|
|
314
286
|
def save_state(self, d):
|
|
315
287
|
"""Save the provider state to a dictionary
|
|
316
288
|
|
|
317
289
|
d - store state in this dictionary
|
|
318
290
|
"""
|
|
319
|
-
d[
|
|
320
|
-
d[
|
|
321
|
-
d[
|
|
322
|
-
d[
|
|
323
|
-
d[self.D_IMAGE_COUNT] = self.__image_count
|
|
324
|
-
d[self.D_VSQUARED] = self.__vsquared
|
|
325
|
-
d[self.D_VSUM] = self.__vsum
|
|
326
|
-
d[self.D_POWER_IMAGE] = self.__power_image
|
|
327
|
-
d[self.D_POWER_MASK] = self.__power_mask
|
|
328
|
-
d[self.D_STACK_NUMBER] = self.__stack_number
|
|
329
|
-
d[self.D_BRIGHT_MIN] = self.__bright_min
|
|
330
|
-
d[self.D_BRIGHT_MAX] = self.__bright_max
|
|
331
|
-
d[self.D_NORM0] = self.__norm0
|
|
291
|
+
d[ImageProvider.D_NAME] = self._name
|
|
292
|
+
d[ImageProvider.D_FREQUENCY] = self.frequency
|
|
293
|
+
d[ImageProvider.D_METHOD] = self.method.value
|
|
294
|
+
d[ImageProvider.D_LIBRARY_STATE] = self.library_accumulator
|
|
332
295
|
|
|
333
296
|
@staticmethod
|
|
334
297
|
def restore_from_state(d):
|
|
@@ -340,183 +303,56 @@ class ImageProvider(AbstractImage):
|
|
|
340
303
|
"""
|
|
341
304
|
name = d[ImageProvider.D_NAME]
|
|
342
305
|
frequency = d[ImageProvider.D_FREQUENCY]
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
image_provider.__power_image = d[ImageProvider.D_POWER_IMAGE]
|
|
350
|
-
image_provider.__power_mask = d[ImageProvider.D_POWER_MASK]
|
|
351
|
-
image_provider.__stack_number = d[ImageProvider.D_STACK_NUMBER]
|
|
352
|
-
image_provider.__bright_min = d[ImageProvider.D_BRIGHT_MIN]
|
|
353
|
-
image_provider.__bright_max = d[ImageProvider.D_BRIGHT_MAX]
|
|
354
|
-
image_provider.__norm0 = d[ImageProvider.D_NORM0]
|
|
355
|
-
return image_provider
|
|
306
|
+
method = d[ImageProvider.D_METHOD]
|
|
307
|
+
library_accumulator = d.get(ImageProvider.D_LIBRARY_STATE, None)
|
|
308
|
+
|
|
309
|
+
provider = ImageProvider.create(name, method, frequency)
|
|
310
|
+
provider.library_accumulator = library_accumulator
|
|
311
|
+
return provider
|
|
356
312
|
|
|
357
313
|
def reset(self):
|
|
358
314
|
"""Reset accumulator at start of groups"""
|
|
359
|
-
self.
|
|
360
|
-
self.
|
|
361
|
-
self.__cached_image = None
|
|
362
|
-
self.__vsquared = None
|
|
363
|
-
self.__vsum = None
|
|
364
|
-
self.__power_image = None
|
|
365
|
-
self.__power_mask = None
|
|
366
|
-
self.__stack_number = 0
|
|
367
|
-
self.__bright_max = None
|
|
368
|
-
self.__bright_min = None
|
|
315
|
+
self.library_accumulator = None
|
|
316
|
+
self._cached_image = None
|
|
369
317
|
|
|
370
318
|
@property
|
|
371
319
|
def has_image(self):
|
|
372
|
-
return self.
|
|
373
|
-
|
|
374
|
-
@property
|
|
375
|
-
def count(self):
|
|
376
|
-
return self.__image_count
|
|
320
|
+
return self.library_accumulator is not None
|
|
377
321
|
|
|
378
322
|
def set_image(self, image):
|
|
379
|
-
self.
|
|
380
|
-
|
|
381
|
-
self.
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
self.__vsum = image.pixel_data.copy()
|
|
387
|
-
self.__vsum[~image.mask] = 0
|
|
388
|
-
self.__image_count = image.mask.astype(int)
|
|
389
|
-
self.__vsquared = self.__vsum.astype(numpy.float64) ** 2.0
|
|
390
|
-
return
|
|
391
|
-
|
|
392
|
-
if self.__how_to_accumulate == P_POWER:
|
|
393
|
-
self.__vsum = image.pixel_data.copy()
|
|
394
|
-
self.__vsum[~image.mask] = 0
|
|
395
|
-
self.__image_count = image.mask.astype(int)
|
|
396
|
-
#
|
|
397
|
-
# e**0 = 1, so the first image is always in the real plane
|
|
398
|
-
#
|
|
399
|
-
self.__power_mask = self.__image_count.astype(numpy.complex128).copy()
|
|
400
|
-
self.__power_image = image.pixel_data.astype(numpy.complex128).copy()
|
|
401
|
-
self.__stack_number = 1
|
|
402
|
-
return
|
|
403
|
-
if self.__how_to_accumulate == P_BRIGHTFIELD:
|
|
404
|
-
self.__bright_max = image.pixel_data.copy()
|
|
405
|
-
self.__bright_min = image.pixel_data.copy()
|
|
406
|
-
self.__norm0 = numpy.mean(image.pixel_data)
|
|
407
|
-
return
|
|
408
|
-
|
|
409
|
-
if self.__how_to_accumulate == P_MASK:
|
|
410
|
-
self.__image = image.mask
|
|
411
|
-
return
|
|
412
|
-
|
|
413
|
-
self.__image = image.pixel_data.copy()
|
|
414
|
-
if image.has_mask:
|
|
415
|
-
nan_value = 1 if self.__how_to_accumulate == P_MINIMUM else 0
|
|
416
|
-
self.__image[~image.mask] = nan_value
|
|
323
|
+
self._cached_image = None
|
|
324
|
+
self.library_accumulator = makeprojection(
|
|
325
|
+
self.method,
|
|
326
|
+
image.pixel_data,
|
|
327
|
+
image.mask,
|
|
328
|
+
self.frequency,
|
|
329
|
+
)
|
|
417
330
|
|
|
418
331
|
def accumulate_image(self, image):
|
|
419
|
-
self.
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
else
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
if image.has_mask:
|
|
426
|
-
self.__image[image.mask] += image.pixel_data[image.mask]
|
|
427
|
-
else:
|
|
428
|
-
self.__image += image.pixel_data
|
|
429
|
-
elif self.__how_to_accumulate == P_MAXIMUM:
|
|
430
|
-
if image.has_mask:
|
|
431
|
-
self.__image[image.mask] = numpy.maximum(
|
|
432
|
-
self.__image[image.mask], image.pixel_data[image.mask]
|
|
433
|
-
)
|
|
434
|
-
else:
|
|
435
|
-
self.__image = numpy.maximum(image.pixel_data, self.__image)
|
|
436
|
-
elif self.__how_to_accumulate == P_MINIMUM:
|
|
437
|
-
if image.has_mask:
|
|
438
|
-
self.__image[image.mask] = numpy.minimum(
|
|
439
|
-
self.__image[image.mask], image.pixel_data[image.mask]
|
|
440
|
-
)
|
|
441
|
-
else:
|
|
442
|
-
self.__image = numpy.minimum(image.pixel_data, self.__image)
|
|
443
|
-
elif self.__how_to_accumulate == P_VARIANCE:
|
|
444
|
-
mask = image.mask
|
|
445
|
-
self.__vsum[mask] += image.pixel_data[mask]
|
|
446
|
-
self.__vsquared[mask] += image.pixel_data[mask].astype(numpy.float64) ** 2
|
|
447
|
-
elif self.__how_to_accumulate == P_POWER:
|
|
448
|
-
multiplier = numpy.exp(
|
|
449
|
-
2j * numpy.pi * float(self.__stack_number) / self.frequency
|
|
450
|
-
)
|
|
451
|
-
self.__stack_number += 1
|
|
452
|
-
mask = image.mask
|
|
453
|
-
self.__vsum[mask] += image.pixel_data[mask]
|
|
454
|
-
self.__power_image[mask] += multiplier * image.pixel_data[mask]
|
|
455
|
-
self.__power_mask[mask] += multiplier
|
|
456
|
-
elif self.__how_to_accumulate == P_BRIGHTFIELD:
|
|
457
|
-
mask = image.mask
|
|
458
|
-
norm = numpy.mean(image.pixel_data)
|
|
459
|
-
pixel_data = image.pixel_data * self.__norm0 / norm
|
|
460
|
-
max_mask = (self.__bright_max < pixel_data) & mask
|
|
461
|
-
min_mask = (self.__bright_min > pixel_data) & mask
|
|
462
|
-
self.__bright_min[min_mask] = pixel_data[min_mask]
|
|
463
|
-
self.__bright_max[max_mask] = pixel_data[max_mask]
|
|
464
|
-
self.__bright_min[max_mask] = self.__bright_max[max_mask]
|
|
465
|
-
elif self.__how_to_accumulate == P_MASK:
|
|
466
|
-
self.__image = self.__image & image.mask
|
|
467
|
-
else:
|
|
468
|
-
raise NotImplementedError(
|
|
469
|
-
"No such accumulation method: %s" % self.__how_to_accumulate
|
|
470
|
-
)
|
|
332
|
+
self._cached_image = None
|
|
333
|
+
|
|
334
|
+
pixels = image.pixel_data
|
|
335
|
+
mask = image.mask if image.has_mask else None
|
|
336
|
+
|
|
337
|
+
self.library_accumulator = self.library_accumulator.accumulate(pixels, mask)
|
|
471
338
|
|
|
472
339
|
def provide_image(self, image_set):
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
else:
|
|
482
|
-
ndim_image = self.__image
|
|
483
|
-
if ndim_image.ndim == 3:
|
|
484
|
-
image_count = numpy.dstack([image_count] * ndim_image.shape[2])
|
|
485
|
-
mask = image_count > 0
|
|
486
|
-
if self.__cached_image is not None:
|
|
487
|
-
return self.__cached_image
|
|
488
|
-
if self.__how_to_accumulate == P_AVERAGE:
|
|
489
|
-
cached_image = self.__image / image_count
|
|
490
|
-
elif self.__how_to_accumulate == P_VARIANCE:
|
|
491
|
-
cached_image = numpy.zeros(self.__vsquared.shape, numpy.float32)
|
|
492
|
-
cached_image[mask] = self.__vsquared[mask] / image_count[mask]
|
|
493
|
-
cached_image[mask] -= self.__vsum[mask] ** 2 / (image_count[mask] ** 2)
|
|
494
|
-
elif self.__how_to_accumulate == P_POWER:
|
|
495
|
-
cached_image = numpy.zeros(image_count.shape, numpy.complex128)
|
|
496
|
-
cached_image[mask] = self.__power_image[mask]
|
|
497
|
-
cached_image[mask] -= (
|
|
498
|
-
self.__vsum[mask] * self.__power_mask[mask] / image_count[mask]
|
|
499
|
-
)
|
|
500
|
-
cached_image = (cached_image * numpy.conj(cached_image)).real.astype(
|
|
501
|
-
numpy.float32
|
|
502
|
-
)
|
|
503
|
-
elif self.__how_to_accumulate == P_BRIGHTFIELD:
|
|
504
|
-
cached_image = numpy.zeros(image_count.shape, numpy.float32)
|
|
505
|
-
cached_image[mask] = self.__bright_max[mask] - self.__bright_min[mask]
|
|
506
|
-
elif self.__how_to_accumulate == P_MINIMUM and numpy.any(~mask):
|
|
507
|
-
cached_image = self.__image.copy()
|
|
508
|
-
cached_image[~mask] = 0
|
|
509
|
-
else:
|
|
510
|
-
cached_image = self.__image
|
|
511
|
-
cached_image[~mask] = 0
|
|
512
|
-
if numpy.all(mask) or self.__how_to_accumulate == P_MASK:
|
|
513
|
-
self.__cached_image = Image(cached_image)
|
|
340
|
+
"""Return the final projected image."""
|
|
341
|
+
if self._cached_image is not None:
|
|
342
|
+
return self._cached_image
|
|
343
|
+
|
|
344
|
+
pixels, mask = self.library_accumulator.finalize()
|
|
345
|
+
|
|
346
|
+
if numpy.all(mask):
|
|
347
|
+
self._cached_image = Image(pixels)
|
|
514
348
|
else:
|
|
515
|
-
self.
|
|
516
|
-
|
|
349
|
+
self._cached_image = Image(pixels, mask=mask)
|
|
350
|
+
|
|
351
|
+
return self._cached_image
|
|
517
352
|
|
|
518
353
|
def get_name(self):
|
|
519
|
-
|
|
354
|
+
"""Return the name of the output image."""
|
|
355
|
+
return self._name
|
|
520
356
|
|
|
521
357
|
def release_memory(self):
|
|
522
358
|
"""Don't discard the image at end of image set"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/__init__.py
RENAMED
|
File without changes
|
{cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|