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.
Files changed (392) hide show
  1. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
  2. cellprofiler_nightly-5.0.0.dev684/CellProfiler_nightly.egg-info/scm_version.json +8 -0
  3. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/PKG-INFO +1 -1
  4. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/_version.py +3 -3
  5. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/findmaxima.py +28 -37
  6. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/makeprojection.py +81 -245
  7. cellprofiler_nightly-5.0.0.dev669/CellProfiler_nightly.egg-info/scm_version.json +0 -8
  8. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
  9. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
  10. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
  11. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/requires.txt +0 -0
  12. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/scm_file_list.json +0 -0
  13. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
  14. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/LICENSE +0 -0
  15. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/README.md +0 -0
  16. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/__init__.py +0 -0
  17. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/__main__.py +0 -0
  18. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
  19. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
  20. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
  21. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
  22. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
  23. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
  24. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
  25. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
  26. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
  27. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
  28. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/display_image_tools.rst +0 -0
  29. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
  30. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/display_menu_bar.rst +0 -0
  31. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
  32. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
  33. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
  34. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
  35. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
  36. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_3d_identify.rst +0 -0
  37. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_batch.rst +0 -0
  38. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_logging.rst +0 -0
  39. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_omero.rst +0 -0
  40. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_plugins.rst +0 -0
  41. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_shell.rst +0 -0
  42. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
  43. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
  44. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/output_measurements.rst +0 -0
  45. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/output_plateviewer.rst +0 -0
  46. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
  47. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/pipelines_building.rst +0 -0
  48. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/pipelines_running.rst +0 -0
  49. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_configure_images.rst +0 -0
  50. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
  51. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
  52. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_introduction.rst +0 -0
  53. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
  54. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
  55. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
  56. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
  57. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
  58. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
  59. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
  60. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
  61. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
  62. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
  63. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
  64. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
  65. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
  66. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.ai +0 -0
  67. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.icns +0 -0
  68. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.ico +0 -0
  69. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.png +0 -0
  70. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler.svg +0 -0
  71. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
  72. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Align.png +0 -0
  73. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ApplyThreshold.png +0 -0
  74. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/CollapseTree.png +0 -0
  75. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ColorToGray.png +0 -0
  76. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
  77. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
  78. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Crop.png +0 -0
  79. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
  80. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ExpandTree.png +0 -0
  81. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/GrayToColor.png +0 -0
  82. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
  83. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
  84. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
  85. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
  86. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
  87. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
  88. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_ERROR.png +0 -0
  89. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_EYE.png +0 -0
  90. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_GO.png +0 -0
  91. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
  92. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
  93. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
  94. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_OK.png +0 -0
  95. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
  96. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_RUN.png +0 -0
  97. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
  98. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
  99. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_STOP.png +0 -0
  100. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_TEST.png +0 -0
  101. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
  102. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
  103. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
  104. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
  105. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
  106. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IMG_WARN.png +0 -0
  107. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
  108. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
  109. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
  110. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
  111. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
  112. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
  113. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
  114. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Images_UsingRules.png +0 -0
  115. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
  116. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
  117. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
  118. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
  119. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
  120. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/MeasureTexture.png +0 -0
  121. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
  122. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
  123. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
  124. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
  125. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
  126. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
  127. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/Tile.png +0 -0
  128. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/UnmixColors.png +0 -0
  129. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/check.png +0 -0
  130. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/color.png +0 -0
  131. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
  132. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/dapi.png +0 -0
  133. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/delete.png +0 -0
  134. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/downarrow.png +0 -0
  135. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/eye-close.png +0 -0
  136. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/eye-open.png +0 -0
  137. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ffwd.png +0 -0
  138. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/ffwddisabled.png +0 -0
  139. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/filter.png +0 -0
  140. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/folder_browse.png +0 -0
  141. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/folder_create.png +0 -0
  142. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/gear.png +0 -0
  143. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/gfp.png +0 -0
  144. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/icon_copyrights.txt +0 -0
  145. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/illumination_function.png +0 -0
  146. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
  147. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
  148. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/mask.png +0 -0
  149. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscope-color_16.png +0 -0
  150. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscope-icon_16.png +0 -0
  151. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscope-icon_32.png +0 -0
  152. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/microscopes_16.png +0 -0
  153. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_add.png +0 -0
  154. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_help.png +0 -0
  155. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_movedown.png +0 -0
  156. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_moveup.png +0 -0
  157. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/module_remove.png +0 -0
  158. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/monochrome.png +0 -0
  159. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/movie_16.png +0 -0
  160. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/next.png +0 -0
  161. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/objects.png +0 -0
  162. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/pause.png +0 -0
  163. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/pausedisabled.png +0 -0
  164. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/play.png +0 -0
  165. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/playdisabled.png +0 -0
  166. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/previous.png +0 -0
  167. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/remove-sign.png +0 -0
  168. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/rewind.png +0 -0
  169. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/rewinddisabled.png +0 -0
  170. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
  171. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
  172. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/splash.png +0 -0
  173. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/status_pause.png +0 -0
  174. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/status_save.png +0 -0
  175. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/status_stop.png +0 -0
  176. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/stop.png +0 -0
  177. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/stopdisabled.png +0 -0
  178. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/structuringelement.png +0 -0
  179. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/thumb-down.png +0 -0
  180. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/thumb-up.png +0 -0
  181. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/unchecked.png +0 -0
  182. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/wantpony.wav +0 -0
  183. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_examples.png +0 -0
  184. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_forum.png +0 -0
  185. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_help.png +0 -0
  186. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_manual.png +0 -0
  187. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_new.png +0 -0
  188. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_pipeline.png +0 -0
  189. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_screen_help.png +0 -0
  190. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_start.png +0 -0
  191. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcome_tutorial.png +0 -0
  192. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
  193. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
  194. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
  195. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_back.png +0 -0
  196. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_filesave.png +0 -0
  197. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_forward.png +0 -0
  198. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_home.png +0 -0
  199. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_pan.png +0 -0
  200. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
  201. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/__init__.py +0 -0
  202. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
  203. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/_welcome_frame.py +0 -0
  204. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/_workspace_model.py +0 -0
  205. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/addmoduleframe.py +0 -0
  206. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/app.py +0 -0
  207. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/artist.py +0 -0
  208. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/checkupdate.py +0 -0
  209. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/__init__.py +0 -0
  210. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/figure.py +0 -0
  211. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/module_view.py +0 -0
  212. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
  213. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/preferences_view.py +0 -0
  214. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/constants/workspace_view.py +0 -0
  215. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/cpframe.py +0 -0
  216. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/dialog.py +0 -0
  217. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/editobjectsdlg.py +0 -0
  218. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/errordialog.py +0 -0
  219. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/__init__.py +0 -0
  220. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/_figure.py +0 -0
  221. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
  222. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/figure/_outline_artist.py +0 -0
  223. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/gridrenderers.py +0 -0
  224. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/__init__.py +0 -0
  225. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/content.py +0 -0
  226. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/menu.py +0 -0
  227. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/help/search.py +0 -0
  228. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/__init__.py +0 -0
  229. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/configure_images_help.html +0 -0
  230. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/exporting_results_help.html +0 -0
  231. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/getting_started.html +0 -0
  232. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/htmlwindow.py +0 -0
  233. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/identify_features_help.html +0 -0
  234. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/in_app_help.html +0 -0
  235. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/making_measurements_help.html +0 -0
  236. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
  237. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/selecting_images_help.html +0 -0
  238. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/test_mode_help.html +0 -0
  239. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/utils.py +0 -0
  240. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/html/welcome.html +0 -0
  241. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/htmldialog.py +0 -0
  242. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/imagesetctrl.py +0 -0
  243. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/menu.py +0 -0
  244. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/metadatactrl.py +0 -0
  245. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/__init__.py +0 -0
  246. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
  247. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
  248. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
  249. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
  250. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
  251. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
  252. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_module_view.py +0 -0
  253. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
  254. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_table_controller.py +0 -0
  255. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
  256. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/moduleview.py +0 -0
  257. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/namesubscriber.py +0 -0
  258. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/omerologin.py +0 -0
  259. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/parametersampleframe.py +0 -0
  260. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pathlist.py +0 -0
  261. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pipeline.py +0 -0
  262. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pipelinecontroller.py +0 -0
  263. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/pipelinelistview.py +0 -0
  264. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/plateviewer.py +0 -0
  265. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/plugins_menu.py +0 -0
  266. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
  267. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
  268. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
  269. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_view/__init__.py +0 -0
  270. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
  271. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
  272. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
  273. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
  274. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/regexp_editor.py +0 -0
  275. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/tools.py +0 -0
  276. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/__init__.py +0 -0
  277. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/figure.py +0 -0
  278. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/icon.py +0 -0
  279. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/module_view.py +0 -0
  280. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
  281. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/preferences_view.py +0 -0
  282. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/utilities/workspace_view.py +0 -0
  283. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/__init__.py +0 -0
  284. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
  285. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
  286. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
  287. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
  288. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
  289. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
  290. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
  291. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/icons/__init__.py +0 -0
  292. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/knime_bridge.py +0 -0
  293. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/misc.py +0 -0
  294. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/UntangleWorms.xsd +0 -0
  295. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/__init__.py +0 -0
  296. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/_help.py +0 -0
  297. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/calculatemath.py +0 -0
  298. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/calculatestatistics.py +0 -0
  299. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/classifyobjects.py +0 -0
  300. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/closing.py +0 -0
  301. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/colortogray.py +0 -0
  302. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/combineobjects.py +0 -0
  303. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/convertimagetoobjects.py +0 -0
  304. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/convertobjectstoimage.py +0 -0
  305. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/correctilluminationapply.py +0 -0
  306. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
  307. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/createbatchfiles.py +0 -0
  308. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/crop.py +0 -0
  309. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/definegrid.py +0 -0
  310. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/dilateimage.py +0 -0
  311. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/dilateobjects.py +0 -0
  312. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displaydataonimage.py +0 -0
  313. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displaydensityplot.py +0 -0
  314. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displayhistogram.py +0 -0
  315. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displayplatemap.py +0 -0
  316. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/displayscatterplot.py +0 -0
  317. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/editobjectsmanually.py +0 -0
  318. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/enhanceedges.py +0 -0
  319. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
  320. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/erodeimage.py +0 -0
  321. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/erodeobjects.py +0 -0
  322. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
  323. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/exporttodatabase.py +0 -0
  324. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/exporttospreadsheet.py +0 -0
  325. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/fillobjects.py +0 -0
  326. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/filterobjects.py +0 -0
  327. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/flagimage.py +0 -0
  328. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/flipandrotate.py +0 -0
  329. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/gaussianfilter.py +0 -0
  330. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/graytocolor.py +0 -0
  331. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifydeadworms.py +0 -0
  332. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
  333. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
  334. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
  335. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
  336. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
  337. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/imagemath.py +0 -0
  338. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/invertforprinting.py +0 -0
  339. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/labelimages.py +0 -0
  340. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/maskimage.py +0 -0
  341. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/maskobjects.py +0 -0
  342. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/matchtemplate.py +0 -0
  343. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measurecolocalization.py +0 -0
  344. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measuregranularity.py +0 -0
  345. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
  346. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageintensity.py +0 -0
  347. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageoverlap.py +0 -0
  348. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimagequality.py +0 -0
  349. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureimageskeleton.py +0 -0
  350. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectintensity.py +0 -0
  351. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
  352. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectneighbors.py +0 -0
  353. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectoverlap.py +0 -0
  354. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
  355. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measureobjectskeleton.py +0 -0
  356. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/measuretexture.py +0 -0
  357. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/medialaxis.py +0 -0
  358. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/medianfilter.py +0 -0
  359. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/morph.py +0 -0
  360. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/morphologicalskeleton.py +0 -0
  361. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/opening.py +0 -0
  362. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/overlayobjects.py +0 -0
  363. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/overlayoutlines.py +0 -0
  364. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/__init__.py +0 -0
  365. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
  366. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
  367. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
  368. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/reducenoise.py +0 -0
  369. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/relateobjects.py +0 -0
  370. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/removeholes.py +0 -0
  371. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/rescaleintensity.py +0 -0
  372. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/resize.py +0 -0
  373. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/resizeobjects.py +0 -0
  374. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/runimagejmacro.py +0 -0
  375. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/savecroppedobjects.py +0 -0
  376. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/saveimages.py +0 -0
  377. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
  378. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/smooth.py +0 -0
  379. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/splitormergeobjects.py +0 -0
  380. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/straightenworms.py +0 -0
  381. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/threshold.py +0 -0
  382. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/tile.py +0 -0
  383. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/trackobjects.py +0 -0
  384. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/unmixcolors.py +0 -0
  385. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/untangleworms.py +0 -0
  386. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/modules/watershed.py +0 -0
  387. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/utilities/__init__.py +0 -0
  388. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/utilities/morphology.py +0 -0
  389. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/cellprofiler/utilities/rules.py +0 -0
  390. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/environment.yml +0 -0
  391. {cellprofiler_nightly-5.0.0.dev669 → cellprofiler_nightly-5.0.0.dev684}/pyproject.toml +0 -0
  392. {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.dev669
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>
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "5.0.0.dev0",
3
+ "distance": 684,
4
+ "node": "gf422c7454d49d65553b3b1e14d292b4b64b3b70c",
5
+ "dirty": true,
6
+ "branch": "main",
7
+ "node_date": "2026-08-28"
8
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev669
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>
@@ -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.dev669'
22
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev669')
21
+ __version__ = version = '5.0.0.dev684'
22
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev684')
23
23
 
24
- __commit_id__ = commit_id = 'g51250caf3'
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
- [MODE_THRESHOLD, MODE_MASK, MODE_OBJECTS],
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
- **{MODE_THRESHOLD}** allows you to specify a minimum pixel intensity to be
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
- **{MODE_MASK}** will restrict peaks to areas which are within a provided mask
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
- **{MODE_OBJECTS}** will restrict peaks to areas within an existing set of
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 == MODE_THRESHOLD:
141
+ if self.exclude_mode == BackgroundExclusionMode.THRESHOLD.value:
147
142
  result.append(self.min_intensity)
148
- elif self.exclude_mode == MODE_MASK:
143
+ elif self.exclude_mode == BackgroundExclusionMode.MASK.value:
149
144
  result.append(self.mask_image)
150
- elif self.exclude_mode == MODE_OBJECTS:
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
- th_abs = None
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
- maxima_coords = peak_local_max(
191
- x_data,
192
- min_distance=self.min_distance.value,
193
- threshold_abs=th_abs,
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
- P_AVERAGE = "Average"
66
- P_MAXIMUM = "Maximum"
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
- - *%(P_AVERAGE)s:* Use the average pixel intensity at each pixel
89
+ - *{P_AVERAGE}:* Use the average pixel intensity at each pixel
106
90
  position.
107
- - *%(P_MAXIMUM)s:* Use the maximum pixel value at each pixel position.
108
- - *%(P_MINIMUM)s:* Use the minimum pixel value at each pixel position.
109
- - *%(P_SUM)s:* Add the pixel values at each pixel position.
110
- - *%(P_VARIANCE)s:* Compute the variance at each pixel position.
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
- - *%(P_POWER)s:* Compute the power at a given frequency at each pixel
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
- - *%(P_BRIGHTFIELD)s:* Perform the brightfield projection at each
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
- - *%(P_MASK)s:* Compute a binary image of the pixels that are masked
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
- % globals(),
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 "%(P_POWER)s" is selected as the projection method)*
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
- % globals(),
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 == P_POWER:
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
- def __init__(self, name, how_to_accumulate, frequency=6):
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.__name = name
275
+ self._name = name
276
+ self.method = ProjectionType(method)
276
277
  self.frequency = frequency
277
- self.__image = None
278
- self.__how_to_accumulate = how_to_accumulate
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
- D_NAME = "name"
301
- D_FREQUENCY = "frequency"
302
- D_IMAGE = "image"
303
- D_HOW_TO_ACCUMULATE = "howtoaccumulate"
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[self.D_NAME] = self.__name
320
- d[self.D_FREQUENCY] = self.frequency
321
- d[self.D_IMAGE] = self.__image
322
- d[self.D_HOW_TO_ACCUMULATE] = self.__how_to_accumulate
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
- how_to_accumulate = d[ImageProvider.D_HOW_TO_ACCUMULATE]
344
- image_provider = ImageProvider(name, how_to_accumulate, frequency)
345
- image_provider.__image = d[ImageProvider.D_IMAGE]
346
- image_provider.__image_count = d[ImageProvider.D_IMAGE_COUNT]
347
- image_provider.__vsquared = d[ImageProvider.D_VSQUARED]
348
- image_provider.__vsum = d[ImageProvider.D_VSUM]
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.__image_count = None
360
- self.__image = None
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.__image_count is not None
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.__cached_image = None
380
- if image.has_mask:
381
- self.__image_count = image.mask.astype(int)
382
- else:
383
- self.__image_count = numpy.ones(image.pixel_data.shape[:2], int)
384
-
385
- if self.__how_to_accumulate == P_VARIANCE:
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.__cached_image = None
420
- if image.has_mask:
421
- self.__image_count += image.mask.astype(int)
422
- else:
423
- self.__image_count += 1
424
- if self.__how_to_accumulate in [P_AVERAGE, P_SUM]:
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
- image_count = self.__image_count
474
- mask_2d = image_count > 0
475
- if self.__how_to_accumulate == P_VARIANCE:
476
- ndim_image = self.__vsquared
477
- elif self.__how_to_accumulate == P_POWER:
478
- ndim_image = self.__power_image
479
- elif self.__how_to_accumulate == P_BRIGHTFIELD:
480
- ndim_image = self.__bright_max
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.__cached_image = Image(cached_image, mask=mask_2d)
516
- return self.__cached_image
349
+ self._cached_image = Image(pixels, mask=mask)
350
+
351
+ return self._cached_image
517
352
 
518
353
  def get_name(self):
519
- return self.__name
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"""
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "5.0.0.dev0",
3
- "distance": 669,
4
- "node": "g51250caf343cdf434f15b90b277ba794c7510c79",
5
- "dirty": true,
6
- "branch": "main",
7
- "node_date": "2026-08-21"
8
- }