CellProfiler-nightly 5.0.0.dev738__tar.gz → 5.0.0.dev745__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.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
  2. cellprofiler_nightly-5.0.0.dev745/CellProfiler_nightly.egg-info/scm_version.json +8 -0
  3. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/PKG-INFO +1 -1
  4. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/_version.py +3 -3
  5. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/splitormergeobjects.py +103 -280
  6. cellprofiler_nightly-5.0.0.dev738/CellProfiler_nightly.egg-info/scm_version.json +0 -8
  7. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
  8. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
  9. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
  10. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/requires.txt +0 -0
  11. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/scm_file_list.json +0 -0
  12. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
  13. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/LICENSE +0 -0
  14. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/README.md +0 -0
  15. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/__init__.py +0 -0
  16. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/__main__.py +0 -0
  17. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
  18. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
  19. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
  20. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
  21. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
  22. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
  23. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
  24. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
  25. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
  26. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
  27. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/display_image_tools.rst +0 -0
  28. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
  29. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/display_menu_bar.rst +0 -0
  30. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
  31. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
  32. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
  33. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
  34. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
  35. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_3d_identify.rst +0 -0
  36. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_batch.rst +0 -0
  37. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_logging.rst +0 -0
  38. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_omero.rst +0 -0
  39. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_plugins.rst +0 -0
  40. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_shell.rst +0 -0
  41. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
  42. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
  43. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/output_measurements.rst +0 -0
  44. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/output_plateviewer.rst +0 -0
  45. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
  46. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/pipelines_building.rst +0 -0
  47. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/pipelines_running.rst +0 -0
  48. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/projects_configure_images.rst +0 -0
  49. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
  50. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
  51. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/projects_introduction.rst +0 -0
  52. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
  53. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
  54. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
  55. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
  56. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
  57. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
  58. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
  59. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
  60. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
  61. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
  62. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
  63. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
  64. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
  65. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler.ai +0 -0
  66. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler.icns +0 -0
  67. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler.ico +0 -0
  68. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler.png +0 -0
  69. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler.svg +0 -0
  70. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
  71. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Align.png +0 -0
  72. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/ApplyThreshold.png +0 -0
  73. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/CollapseTree.png +0 -0
  74. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/ColorToGray.png +0 -0
  75. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
  76. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
  77. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Crop.png +0 -0
  78. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
  79. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/ExpandTree.png +0 -0
  80. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/GrayToColor.png +0 -0
  81. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
  82. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
  83. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
  84. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
  85. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
  86. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
  87. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_ERROR.png +0 -0
  88. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_EYE.png +0 -0
  89. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_GO.png +0 -0
  90. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
  91. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
  92. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
  93. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_OK.png +0 -0
  94. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
  95. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_RUN.png +0 -0
  96. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
  97. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
  98. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_STOP.png +0 -0
  99. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_TEST.png +0 -0
  100. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
  101. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
  102. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
  103. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
  104. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
  105. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IMG_WARN.png +0 -0
  106. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
  107. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
  108. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
  109. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
  110. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
  111. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
  112. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
  113. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Images_UsingRules.png +0 -0
  114. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
  115. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
  116. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
  117. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
  118. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
  119. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/MeasureTexture.png +0 -0
  120. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
  121. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
  122. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
  123. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
  124. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
  125. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
  126. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/Tile.png +0 -0
  127. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/UnmixColors.png +0 -0
  128. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/check.png +0 -0
  129. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/color.png +0 -0
  130. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
  131. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/dapi.png +0 -0
  132. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/delete.png +0 -0
  133. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/downarrow.png +0 -0
  134. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/eye-close.png +0 -0
  135. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/eye-open.png +0 -0
  136. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/ffwd.png +0 -0
  137. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/ffwddisabled.png +0 -0
  138. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/filter.png +0 -0
  139. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/folder_browse.png +0 -0
  140. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/folder_create.png +0 -0
  141. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/gear.png +0 -0
  142. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/gfp.png +0 -0
  143. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/icon_copyrights.txt +0 -0
  144. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/illumination_function.png +0 -0
  145. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
  146. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
  147. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/mask.png +0 -0
  148. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/microscope-color_16.png +0 -0
  149. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/microscope-icon_16.png +0 -0
  150. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/microscope-icon_32.png +0 -0
  151. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/microscopes_16.png +0 -0
  152. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/module_add.png +0 -0
  153. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/module_help.png +0 -0
  154. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/module_movedown.png +0 -0
  155. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/module_moveup.png +0 -0
  156. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/module_remove.png +0 -0
  157. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/monochrome.png +0 -0
  158. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/movie_16.png +0 -0
  159. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/next.png +0 -0
  160. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/objects.png +0 -0
  161. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/pause.png +0 -0
  162. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/pausedisabled.png +0 -0
  163. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/play.png +0 -0
  164. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/playdisabled.png +0 -0
  165. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/previous.png +0 -0
  166. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/remove-sign.png +0 -0
  167. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/rewind.png +0 -0
  168. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/rewinddisabled.png +0 -0
  169. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
  170. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
  171. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/splash.png +0 -0
  172. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/status_pause.png +0 -0
  173. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/status_save.png +0 -0
  174. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/status_stop.png +0 -0
  175. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/stop.png +0 -0
  176. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/stopdisabled.png +0 -0
  177. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/structuringelement.png +0 -0
  178. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/thumb-down.png +0 -0
  179. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/thumb-up.png +0 -0
  180. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/unchecked.png +0 -0
  181. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/wantpony.wav +0 -0
  182. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_examples.png +0 -0
  183. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_forum.png +0 -0
  184. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_help.png +0 -0
  185. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_manual.png +0 -0
  186. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_new.png +0 -0
  187. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_pipeline.png +0 -0
  188. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_screen_help.png +0 -0
  189. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_start.png +0 -0
  190. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcome_tutorial.png +0 -0
  191. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
  192. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
  193. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
  194. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/window_back.png +0 -0
  195. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/window_filesave.png +0 -0
  196. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/window_forward.png +0 -0
  197. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/window_home.png +0 -0
  198. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/window_pan.png +0 -0
  199. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
  200. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/__init__.py +0 -0
  201. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
  202. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/_welcome_frame.py +0 -0
  203. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/_workspace_model.py +0 -0
  204. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/addmoduleframe.py +0 -0
  205. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/app.py +0 -0
  206. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/artist.py +0 -0
  207. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/checkupdate.py +0 -0
  208. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/constants/__init__.py +0 -0
  209. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/constants/figure.py +0 -0
  210. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/constants/module_view.py +0 -0
  211. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
  212. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/constants/preferences_view.py +0 -0
  213. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/constants/workspace_view.py +0 -0
  214. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/cpframe.py +0 -0
  215. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/dialog.py +0 -0
  216. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/editobjectsdlg.py +0 -0
  217. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/errordialog.py +0 -0
  218. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/figure/__init__.py +0 -0
  219. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/figure/_figure.py +0 -0
  220. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
  221. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/figure/_outline_artist.py +0 -0
  222. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/gridrenderers.py +0 -0
  223. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/help/__init__.py +0 -0
  224. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/help/content.py +0 -0
  225. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/help/menu.py +0 -0
  226. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/help/search.py +0 -0
  227. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/__init__.py +0 -0
  228. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/configure_images_help.html +0 -0
  229. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/exporting_results_help.html +0 -0
  230. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/getting_started.html +0 -0
  231. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/htmlwindow.py +0 -0
  232. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/identify_features_help.html +0 -0
  233. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/in_app_help.html +0 -0
  234. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/making_measurements_help.html +0 -0
  235. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
  236. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/selecting_images_help.html +0 -0
  237. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/test_mode_help.html +0 -0
  238. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/utils.py +0 -0
  239. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/html/welcome.html +0 -0
  240. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/htmldialog.py +0 -0
  241. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/imagesetctrl.py +0 -0
  242. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/menu.py +0 -0
  243. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/metadatactrl.py +0 -0
  244. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/__init__.py +0 -0
  245. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
  246. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
  247. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
  248. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
  249. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
  250. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
  251. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_module_view.py +0 -0
  252. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
  253. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_table_controller.py +0 -0
  254. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
  255. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/moduleview.py +0 -0
  256. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/namesubscriber.py +0 -0
  257. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/omerologin.py +0 -0
  258. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/parametersampleframe.py +0 -0
  259. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/pathlist.py +0 -0
  260. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/pipeline.py +0 -0
  261. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/pipelinecontroller.py +0 -0
  262. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/pipelinelistview.py +0 -0
  263. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/plateviewer.py +0 -0
  264. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/plugins_menu.py +0 -0
  265. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
  266. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
  267. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
  268. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/preferences_view/__init__.py +0 -0
  269. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
  270. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
  271. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
  272. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
  273. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/regexp_editor.py +0 -0
  274. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/tools.py +0 -0
  275. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/__init__.py +0 -0
  276. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/figure.py +0 -0
  277. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/icon.py +0 -0
  278. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/module_view.py +0 -0
  279. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
  280. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/preferences_view.py +0 -0
  281. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/utilities/workspace_view.py +0 -0
  282. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/__init__.py +0 -0
  283. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
  284. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
  285. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
  286. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
  287. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
  288. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
  289. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
  290. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/icons/__init__.py +0 -0
  291. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/knime_bridge.py +0 -0
  292. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/misc.py +0 -0
  293. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/UntangleWorms.xsd +0 -0
  294. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/__init__.py +0 -0
  295. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/_help.py +0 -0
  296. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/calculatemath.py +0 -0
  297. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/calculatestatistics.py +0 -0
  298. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/classifyobjects.py +0 -0
  299. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/closing.py +0 -0
  300. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/colortogray.py +0 -0
  301. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/combineobjects.py +0 -0
  302. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/convertimagetoobjects.py +0 -0
  303. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/convertobjectstoimage.py +0 -0
  304. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/correctilluminationapply.py +0 -0
  305. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
  306. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/createbatchfiles.py +0 -0
  307. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/crop.py +0 -0
  308. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/definegrid.py +0 -0
  309. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/dilateimage.py +0 -0
  310. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/dilateobjects.py +0 -0
  311. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/displaydataonimage.py +0 -0
  312. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/displaydensityplot.py +0 -0
  313. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/displayhistogram.py +0 -0
  314. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/displayplatemap.py +0 -0
  315. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/displayscatterplot.py +0 -0
  316. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/editobjectsmanually.py +0 -0
  317. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/enhanceedges.py +0 -0
  318. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
  319. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/erodeimage.py +0 -0
  320. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/erodeobjects.py +0 -0
  321. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
  322. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/exporttodatabase.py +0 -0
  323. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/exporttospreadsheet.py +0 -0
  324. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/fillobjects.py +0 -0
  325. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/filterobjects.py +0 -0
  326. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/findmaxima.py +0 -0
  327. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/flagimage.py +0 -0
  328. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/flipandrotate.py +0 -0
  329. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/gaussianfilter.py +0 -0
  330. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/graytocolor.py +0 -0
  331. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/identifydeadworms.py +0 -0
  332. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
  333. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
  334. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
  335. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
  336. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
  337. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/imagemath.py +0 -0
  338. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/invertforprinting.py +0 -0
  339. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/labelimages.py +0 -0
  340. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/makeprojection.py +0 -0
  341. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/maskimage.py +0 -0
  342. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/maskobjects.py +0 -0
  343. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/matchtemplate.py +0 -0
  344. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measurecolocalization.py +0 -0
  345. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measuregranularity.py +0 -0
  346. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
  347. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureimageintensity.py +0 -0
  348. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureimageoverlap.py +0 -0
  349. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureimagequality.py +0 -0
  350. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureimageskeleton.py +0 -0
  351. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureobjectintensity.py +0 -0
  352. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
  353. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureobjectneighbors.py +0 -0
  354. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureobjectoverlap.py +0 -0
  355. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
  356. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measureobjectskeleton.py +0 -0
  357. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/measuretexture.py +0 -0
  358. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/medialaxis.py +0 -0
  359. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/medianfilter.py +0 -0
  360. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/morph.py +0 -0
  361. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/morphologicalskeleton.py +0 -0
  362. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/opening.py +0 -0
  363. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/overlayobjects.py +0 -0
  364. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/overlayoutlines.py +0 -0
  365. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/plugins/__init__.py +0 -0
  366. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
  367. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
  368. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
  369. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/reducenoise.py +0 -0
  370. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/relateobjects.py +0 -0
  371. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/removeholes.py +0 -0
  372. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/rescaleintensity.py +0 -0
  373. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/resize.py +0 -0
  374. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/resizeobjects.py +0 -0
  375. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/runimagejmacro.py +0 -0
  376. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/savecroppedobjects.py +0 -0
  377. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/saveimages.py +0 -0
  378. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
  379. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/smooth.py +0 -0
  380. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/straightenworms.py +0 -0
  381. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/threshold.py +0 -0
  382. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/tile.py +0 -0
  383. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/trackobjects.py +0 -0
  384. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/unmixcolors.py +0 -0
  385. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/untangleworms.py +0 -0
  386. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/modules/watershed.py +0 -0
  387. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/utilities/__init__.py +0 -0
  388. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/utilities/morphology.py +0 -0
  389. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/cellprofiler/utilities/rules.py +0 -0
  390. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/environment.yml +0 -0
  391. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/pyproject.toml +0 -0
  392. {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev745}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev738
3
+ Version: 5.0.0.dev745
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": 745,
4
+ "node": "gc1d6426989d64f4dc9774aa246c7054a214a7d33",
5
+ "dirty": true,
6
+ "branch": "main",
7
+ "node_date": "2026-09-30"
8
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev738
3
+ Version: 5.0.0.dev745
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.dev738'
22
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev738')
21
+ __version__ = version = '5.0.0.dev745'
22
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev745')
23
23
 
24
- __commit_id__ = commit_id = 'g03f79f7e2'
24
+ __commit_id__ = commit_id = 'gc1d642698'
@@ -1,6 +1,5 @@
1
- import centrosome.cpmorphology
2
1
  import numpy
3
- import scipy.ndimage
2
+ from cellprofiler.modules import _help
4
3
  from cellprofiler_core.constants.measurement import (
5
4
  C_PARENT,
6
5
  FF_CHILDREN_COUNT,
@@ -14,13 +13,11 @@ from cellprofiler_core.setting import ValidationError
14
13
  from cellprofiler_core.setting.choice import Choice
15
14
  from cellprofiler_core.setting.subscriber import LabelSubscriber, ImageSubscriber
16
15
  from cellprofiler_core.setting.text import Integer, Float, LabelName
17
- from cellprofiler_core.utilities.core.module.identify import (
18
- add_object_count_measurements,
19
- add_object_location_measurements,
20
- get_object_measurement_columns,
21
- )
16
+ from cellprofiler_core.utilities.core.module.identify import get_object_measurement_columns
17
+ from cellprofiler_core.utilities.core.workspace import add_library_measurements_to_workspace_measurements
18
+ from cellprofiler_library.opts.splitormergeobjects import RelabelOption, MergeOption, MergingMethod, ObjectIntensityMethod
19
+ from cellprofiler_library.modules._splitormergeobjects import split_or_merge_objects
22
20
 
23
- from cellprofiler.modules import _help
24
21
 
25
22
  __doc__ = """\
26
23
  SplitOrMergeObjects
@@ -94,19 +91,6 @@ reassignment.
94
91
  **{"HELP_ON_SAVING_OBJECTS": _help.HELP_ON_SAVING_OBJECTS}
95
92
  )
96
93
 
97
- OPTION_MERGE = "Merge"
98
- OPTION_SPLIT = "Split"
99
-
100
- UNIFY_DISTANCE = "Distance"
101
- UNIFY_PARENT = "Per-parent"
102
-
103
- CA_CENTROIDS = "Centroids"
104
- CA_CLOSEST_POINT = "Closest point"
105
-
106
- UM_DISCONNECTED = "Disconnected"
107
- UM_CONVEX_HULL = "Convex hull"
108
-
109
-
110
94
  class SplitOrMergeObjects(Module):
111
95
  module_name = "SplitOrMergeObjects"
112
96
  category = "Object Processing"
@@ -134,52 +118,59 @@ You can use this name in subsequent modules that take objects as inputs.""",
134
118
 
135
119
  self.relabel_option = Choice(
136
120
  "Operation",
137
- [OPTION_MERGE, OPTION_SPLIT],
121
+ [RelabelOption.MERGE.value, RelabelOption.SPLIT.value],
138
122
  doc="""\
139
123
  You can choose one of the following options:
140
124
 
141
- - *%(OPTION_MERGE)s:* Assign adjacent or nearby objects the same label
125
+ - *{OPTION_MERGE}:* Assign adjacent or nearby objects the same label
142
126
  based on certain criteria. It can be useful, for example, to merge
143
127
  together touching objects that were incorrectly split into two pieces
144
128
  by an **Identify** module.
145
- - *%(OPTION_SPLIT)s:* Assign a unique number to separate objects that
129
+ - *{OPTION_SPLIT}:* Assign a unique number to separate objects that
146
130
  currently share the same label. This can occur if you applied certain
147
- operations in the **Morph** module to objects."""
148
- % globals(),
131
+ operations in the **Morph** module to objects.""".format(
132
+ **{"OPTION_MERGE": RelabelOption.MERGE.value, "OPTION_SPLIT": RelabelOption.SPLIT.value}
133
+ ),
149
134
  )
150
135
 
151
136
  self.merge_option = Choice(
152
137
  "Merging method",
153
- [UNIFY_DISTANCE, UNIFY_PARENT],
138
+ [MergeOption.UNIFY_DISTANCE.value, MergeOption.UNIFY_PARENT.value],
154
139
  doc="""\
155
- *(Used only with the "%(OPTION_MERGE)s" option)*
140
+ *(Used only with the "{OPTION_MERGE}" option)*
156
141
 
157
142
  You can merge objects in one of two ways:
158
143
 
159
- - *%(UNIFY_DISTANCE)s:* All objects within a certain pixel radius from
144
+ - *{UNIFY_DISTANCE}:* All objects within a certain pixel radius from
160
145
  each other will be merged.
161
- - *%(UNIFY_PARENT)s:* All objects which share the same parent
146
+ - *{UNIFY_PARENT}:* All objects which share the same parent
162
147
  relationship to another object will be merged. This is not to be
163
148
  confused with using the **RelateObjects** module, in which the
164
149
  related objects remain as individual objects. See **RelateObjects**
165
- for more details."""
166
- % globals(),
150
+ for more details.""".format(
151
+ **{
152
+ "OPTION_MERGE": RelabelOption.MERGE.value,
153
+ "UNIFY_DISTANCE": MergeOption.UNIFY_DISTANCE.value,
154
+ "UNIFY_PARENT": MergeOption.UNIFY_PARENT.value
155
+ }
156
+ ),
167
157
  )
168
158
 
169
159
  self.merging_method = Choice(
170
160
  "Output object type",
171
- [UM_DISCONNECTED, UM_CONVEX_HULL],
161
+ [MergingMethod.DISCONNECTED.value, MergingMethod.CONVEX_HULL.value],
172
162
  doc="""\
173
- *(Used only with the "%(UNIFY_PARENT)s" merging method)*
163
+ *(Used only with the "{UNIFY_PARENT}" merging method)*
174
164
 
175
165
  **SplitOrMergeObjects** can either merge the child objects and keep them
176
166
  disconnected or it can find the smallest convex polygon (the convex
177
167
  hull) that encloses all of a parent’s child objects. The convex hull
178
168
  will be truncated to include only those pixels in the parent - in that
179
- case it may not truly be convex. Choose *%(UM_DISCONNECTED)s* to leave
180
- the children as disconnected pieces. Choose *%(UM_CONVEX_HULL)s* to
181
- create an output object that is the convex hull around them all."""
182
- % globals(),
169
+ case it may not truly be convex. Choose *{UM_DISCONNECTED}* to leave
170
+ the children as disconnected pieces. Choose *{UM_CONVEX_HULL}* to
171
+ create an output object that is the convex hull around them all.""".format(
172
+ **{"UNIFY_PARENT": MergeOption.UNIFY_PARENT.value, "UM_DISCONNECTED": MergingMethod.DISCONNECTED.value, "UM_CONVEX_HULL": MergingMethod.CONVEX_HULL.value}
173
+ ),
183
174
  )
184
175
 
185
176
  self.parent_object = Choice(
@@ -202,32 +193,34 @@ Please note the following:
202
193
  0,
203
194
  minval=0,
204
195
  doc="""\
205
- *(Used only with the "%(OPTION_MERGE)s" option and the "%(UNIFY_DISTANCE)s"
196
+ *(Used only with the "{OPTION_MERGE}" option and the "{UNIFY_DISTANCE}"
206
197
  method)*
207
198
 
208
199
  Objects that are less than or equal to the distance you enter here, in
209
200
  pixels, will be merged. If you choose zero (the default), only objects
210
- that are touching will be merged. Note that *%(OPTION_MERGE)s* will
201
+ that are touching will be merged. Note that *{OPTION_MERGE}* will
211
202
  not actually connect or bridge the two objects by adding any new pixels;
212
203
  it simply assigns the same object number to the portions of the object.
213
204
  The new, merged object may therefore consist of two or more unconnected
214
205
  components. If you want to add pixels around objects, see
215
- **ExpandOrShrink** or **Morph**."""
216
- % globals(),
206
+ **ExpandOrShrink** or **Morph**.""".format(
207
+ **{"OPTION_MERGE": RelabelOption.MERGE.value, "UNIFY_DISTANCE": MergeOption.UNIFY_DISTANCE.value}
208
+ ),
217
209
  )
218
210
 
219
211
  self.wants_image = Binary(
220
212
  "Merge using a grayscale image?",
221
213
  False,
222
214
  doc="""\
223
- *(Used only with the "%(OPTION_MERGE)s" option)*
215
+ *(Used only with the "{OPTION_MERGE}" option)*
224
216
 
225
217
  Select *Yes* to use the objects’ intensity features to determine
226
218
  whether two objects should be merged. If you choose to use a grayscale
227
- image, *%(OPTION_MERGE)s* will merge two objects only if they are
219
+ image, *{OPTION_MERGE}* will merge two objects only if they are
228
220
  within the distance you have specified *and* certain criteria about the
229
- objects within the grayscale image are met."""
230
- % globals(),
221
+ objects within the grayscale image are met.""".format(
222
+ **{"OPTION_MERGE": RelabelOption.MERGE.value}
223
+ ),
231
224
  )
232
225
 
233
226
  self.image_name = ImageSubscriber(
@@ -255,7 +248,7 @@ described for the method you choose in the next setting.""",
255
248
 
256
249
  self.where_algorithm = Choice(
257
250
  "Method to find object intensity",
258
- [CA_CLOSEST_POINT, CA_CENTROIDS],
251
+ [ObjectIntensityMethod.CLOSEST_POINT.value, ObjectIntensityMethod.CENTROIDS.value],
259
252
  doc="""\
260
253
  *(Used only if a grayscale image is to be used as a guide for
261
254
  merging)*
@@ -264,7 +257,7 @@ You can use one of two methods to determine whether two objects should
264
257
  merged, assuming they meet the distance criteria (as specified
265
258
  above):
266
259
 
267
- - *%(CA_CENTROIDS)s:* When the module considers merging two objects,
260
+ - *{CA_CENTROIDS}:* When the module considers merging two objects,
268
261
  this method identifies the centroid of each object, records the
269
262
  intensity value of the dimmer of the two centroids, multiplies this
270
263
  value by the *minimum intensity fraction* to generate a threshold,
@@ -278,7 +271,7 @@ above):
278
271
  the center of the cell: a single cell that was incorrectly segmented
279
272
  into two objects will typically not have a dim line between the
280
273
  centroids of the two halves and will be correctly merged.
281
- - *%(CA_CLOSEST_POINT)s:* This method is useful for unifying
274
+ - *{CA_CLOSEST_POINT}:* This method is useful for unifying
282
275
  irregularly shaped cells that are connected. It starts by assigning
283
276
  background pixels in the vicinity of the objects to the nearest
284
277
  object. Objects are then merged if each object has background pixels
@@ -291,8 +284,9 @@ above):
291
284
  An example of a feature that satisfies the above constraints is a
292
285
  line of pixels that connects two neighboring objects and is roughly
293
286
  the same intensity as the boundary pixels of both (such as an axon
294
- connecting two neurons' soma)."""
295
- % globals(),
287
+ connecting two neurons' soma).""".format(
288
+ **{"CA_CENTROIDS": ObjectIntensityMethod.CENTROIDS.value, "CA_CLOSEST_POINT": ObjectIntensityMethod.CLOSEST_POINT.value}
289
+ ),
296
290
  )
297
291
 
298
292
  def get_parent_choices(self, pipeline):
@@ -306,8 +300,8 @@ above):
306
300
 
307
301
  def validate_module(self, pipeline):
308
302
  if (
309
- self.relabel_option == OPTION_MERGE
310
- and self.merge_option == UNIFY_PARENT
303
+ self.relabel_option == RelabelOption.MERGE.value
304
+ and self.merge_option == MergeOption.UNIFY_PARENT.value
311
305
  and self.parent_object.value == "None"
312
306
  ):
313
307
  raise ValidationError(
@@ -331,9 +325,9 @@ above):
331
325
 
332
326
  def visible_settings(self):
333
327
  result = [self.objects_name, self.output_objects_name, self.relabel_option]
334
- if self.relabel_option == OPTION_MERGE:
328
+ if self.relabel_option == RelabelOption.MERGE.value:
335
329
  result += [self.merge_option]
336
- if self.merge_option == UNIFY_DISTANCE:
330
+ if self.merge_option == MergeOption.UNIFY_DISTANCE.value:
337
331
  result += [self.distance_threshold, self.wants_image]
338
332
  if self.wants_image:
339
333
  result += [
@@ -341,105 +335,72 @@ above):
341
335
  self.minimum_intensity_fraction,
342
336
  self.where_algorithm,
343
337
  ]
344
- elif self.merge_option == UNIFY_PARENT:
338
+ elif self.merge_option == MergeOption.UNIFY_PARENT.value:
345
339
  result += [self.merging_method, self.parent_object]
346
340
  return result
347
341
 
348
342
  def run(self, workspace):
343
+ #
344
+ # Construct arguments for split_or_merge_objects
345
+ #
349
346
  objects_name = self.objects_name.value
350
347
  objects = workspace.object_set.get_objects(objects_name)
351
348
  assert isinstance(objects, Objects)
352
349
  labels = objects.segmented
353
- if self.relabel_option == OPTION_SPLIT:
354
- output_labels, count = scipy.ndimage.label(
355
- labels > 0, numpy.ones((3, 3), bool)
356
- )
357
- else:
358
- if self.merge_option == UNIFY_DISTANCE:
359
- mask = labels > 0
360
- if self.distance_threshold.value > 0:
361
- #
362
- # Take the distance transform of the reverse of the mask
363
- # and figure out what points are less than 1/2 of the
364
- # distance from an object.
365
- #
366
- d = scipy.ndimage.distance_transform_edt(~mask)
367
- mask = d < self.distance_threshold.value / 2 + 1
368
- output_labels, count = scipy.ndimage.label(
369
- mask, numpy.ones((3, 3), bool)
370
- )
371
- output_labels[labels == 0] = 0
372
- if self.wants_image:
373
- output_labels = self.filter_using_image(workspace, mask)
374
- elif self.merge_option == UNIFY_PARENT:
375
- parents_name = self.parent_object.value
376
- parents_of = workspace.measurements[
377
- objects_name, "_".join((C_PARENT, parents_name))
378
- ]
379
- output_labels = labels.copy().astype(numpy.uint32)
380
- output_labels[labels > 0] = parents_of[labels[labels > 0] - 1]
381
- if self.merging_method == UM_CONVEX_HULL:
382
- ch_pts, n_pts = centrosome.cpmorphology.convex_hull(output_labels)
383
- ijv = centrosome.cpmorphology.fill_convex_hulls(ch_pts, n_pts)
384
- output_labels[ijv[:, 0], ijv[:, 1]] = ijv[:, 2]
385
-
386
- #Renumber to be consecutive
387
- ## Create an array that maps label indexes to their new values
388
- ## All labels to be deleted have a value in this array of zero
389
- indexes = numpy.unique(output_labels)[1:]
390
- new_object_count = len(indexes)
391
- max_label = numpy.max(output_labels)
392
- label_indexes = numpy.zeros((max_label + 1,), int)
393
- label_indexes[indexes] = numpy.arange(1, new_object_count + 1)
394
-
395
- # Reindex the labels of the old source image
396
- output_labels = label_indexes[output_labels]
397
350
 
351
+ parents_of = None
352
+ if self.merge_option == MergeOption.UNIFY_PARENT.value:
353
+ feature_name = "_".join((C_PARENT, self.parent_object.value))
354
+ parents_of = workspace.measurements[objects_name, feature_name]
355
+
356
+ image = None
357
+ if self.relabel_option.value != RelabelOption.SPLIT.value and self.merge_option.value == MergeOption.UNIFY_DISTANCE.value and self.wants_image.value:
358
+ image = self.get_image(workspace)
359
+
360
+ #
361
+ # Run split_or_merge_objects
362
+ #
363
+ output_labels, output_small_removed_segmented, output_unedited_segmented, lib_measurements = split_or_merge_objects(
364
+ labels=labels,
365
+ relabel_option=RelabelOption(self.relabel_option.value),
366
+ objects_name=objects_name,
367
+ objects_small_removed_segmented=objects.small_removed_segmented if objects.has_small_removed_segmented else None,
368
+ objects_unedited_segmented=objects.unedited_segmented if objects.has_unedited_segmented else None,
369
+ parent_name=self.parent_object.value,
370
+ merge_option=MergeOption(self.merge_option.value),
371
+ distance_threshold=self.distance_threshold.value,
372
+ parents_of=parents_of,
373
+ merging_method=self.merging_method.value,
374
+ image=image,
375
+ merge_condition=self.where_algorithm.value,
376
+ minimum_intensity_fraction=self.minimum_intensity_fraction.value,
377
+ output_objects_name = self.output_objects_name.value,
378
+ output_object_volumetric=objects.volumetric,
379
+ labels_ijv=objects.ijv,
380
+ return_measurements=True
381
+ )
382
+
383
+ #
384
+ # Add the outputs of the split_or_merge_objects to the workspace
385
+ #
398
386
  output_objects = Objects()
399
387
  output_objects.segmented = output_labels
400
- if objects.has_small_removed_segmented:
401
- output_objects.small_removed_segmented = copy_labels(
402
- objects.small_removed_segmented, output_labels
403
- )
404
- if objects.has_unedited_segmented:
405
- output_objects.unedited_segmented = copy_labels(
406
- objects.unedited_segmented, output_labels
407
- )
388
+ if output_small_removed_segmented is not None:
389
+ output_objects.small_removed_segmented = output_small_removed_segmented
390
+ if output_unedited_segmented is not None:
391
+ output_objects.unedited_segmented = output_unedited_segmented
408
392
  output_objects.parent_image = objects.parent_image
409
393
  workspace.object_set.add_objects(output_objects, self.output_objects_name.value)
410
394
 
411
395
  measurements = workspace.measurements
412
- add_object_count_measurements(
413
- measurements,
414
- self.output_objects_name.value,
415
- numpy.max(output_objects.segmented),
416
- )
417
- add_object_location_measurements(
418
- measurements, self.output_objects_name.value, output_objects.segmented
419
- )
420
-
421
- #
422
- # Relate the output objects to the input ones and record
423
- # the relationship.
424
- #
425
- children_per_parent, parents_of_children = objects.relate_children(
426
- output_objects
427
- )
428
- measurements.add_measurement(
429
- self.objects_name.value,
430
- FF_CHILDREN_COUNT % self.output_objects_name.value,
431
- children_per_parent,
432
- )
433
- measurements.add_measurement(
434
- self.output_objects_name.value,
435
- FF_PARENT % self.objects_name.value,
436
- parents_of_children,
437
- )
396
+ add_library_measurements_to_workspace_measurements(measurements, lib_measurements)
438
397
 
439
398
  if self.show_window:
399
+ if image is not None:
400
+ workspace.display_data.image = image
440
401
  workspace.display_data.orig_labels = objects.segmented
441
402
  workspace.display_data.output_labels = output_objects.segmented
442
- if self.merge_option == UNIFY_PARENT:
403
+ if self.merge_option == MergeOption.UNIFY_PARENT.value:
443
404
  workspace.display_data.parent_labels = workspace.object_set.get_objects(
444
405
  self.parent_object.value
445
406
  ).segmented
@@ -455,11 +416,11 @@ above):
455
416
  0, 0, workspace.display_data.orig_labels, title=self.objects_name.value
456
417
  )
457
418
 
458
- if self.relabel_option == OPTION_MERGE and (
459
- (self.merge_option == UNIFY_DISTANCE and self.wants_image)
460
- or (self.merge_option == UNIFY_PARENT)
419
+ if self.relabel_option == RelabelOption.MERGE.value and (
420
+ (self.merge_option == MergeOption.UNIFY_DISTANCE.value and self.wants_image)
421
+ or (self.merge_option == MergeOption.UNIFY_PARENT.value)
461
422
  ):
462
- if self.merge_option == UNIFY_DISTANCE and self.wants_image:
423
+ if self.merge_option == MergeOption.UNIFY_DISTANCE.value and self.wants_image:
463
424
  image = workspace.display_data.image
464
425
  cplabels = [
465
426
  dict(
@@ -472,7 +433,7 @@ above):
472
433
  ),
473
434
  ]
474
435
 
475
- elif self.merge_option == UNIFY_PARENT:
436
+ elif self.merge_option == MergeOption.UNIFY_PARENT.value:
476
437
  image = numpy.zeros(workspace.display_data.output_labels.shape)
477
438
  cplabels = [
478
439
  dict(
@@ -516,132 +477,6 @@ above):
516
477
  sharexy=ax,
517
478
  )
518
479
 
519
- def filter_using_image(self, workspace, mask):
520
- """Filter out connections using local intensity minima between objects
521
-
522
- workspace - the workspace for the image set
523
- mask - mask of background points within the minimum distance
524
- """
525
- #
526
- # NOTE: This is an efficient implementation and an improvement
527
- # in accuracy over the Matlab version. It would be faster and
528
- # more accurate to eliminate the line-connecting and instead
529
- # do the following:
530
- # * Distance transform to get the coordinates of the closest
531
- # point in an object for points in the background that are
532
- # at most 1/2 of the max distance between objects.
533
- # * Take the intensity at this closest point and similarly
534
- # label the background point if the background intensity
535
- # is at least the minimum intensity fraction
536
- # * Assume there is a connection between objects if, after this
537
- # labeling, there are adjacent points in each object.
538
- #
539
- # As it is, the algorithm duplicates the Matlab version but suffers
540
- # for cells whose intensity isn't high in the centroid and clearly
541
- # suffers when two cells touch at some point that's off of the line
542
- # between the two.
543
- #
544
- objects = workspace.object_set.get_objects(self.objects_name.value)
545
- labels = objects.segmented
546
- image = self.get_image(workspace)
547
- if self.show_window:
548
- # Save the image for display
549
- workspace.display_data.image = image
550
- #
551
- # Do a distance transform into the background to label points
552
- # in the background with their closest foreground object
553
- #
554
- i, j = scipy.ndimage.distance_transform_edt(
555
- labels == 0, return_indices=True, return_distances=False
556
- )
557
- confluent_labels = labels[i, j]
558
- confluent_labels[~mask] = 0
559
- if self.where_algorithm == CA_CLOSEST_POINT:
560
- #
561
- # For the closest point method, find the intensity at
562
- # the closest point in the object (which will be the point itself
563
- # for points in the object).
564
- #
565
- object_intensity = image[i, j] * self.minimum_intensity_fraction.value
566
- confluent_labels[object_intensity > image] = 0
567
- count, index, c_j = centrosome.cpmorphology.find_neighbors(confluent_labels)
568
- if len(c_j) == 0:
569
- # Nobody touches - return the labels matrix
570
- return labels
571
- #
572
- # Make a row of i matching the touching j
573
- #
574
- c_i = numpy.zeros(len(c_j))
575
- #
576
- # Eliminate labels without matches
577
- #
578
- label_numbers = numpy.arange(1, len(count) + 1)[count > 0]
579
- index = index[count > 0]
580
- count = count[count > 0]
581
- #
582
- # Get the differences between labels so we can use a cumsum trick
583
- # to increment to the next label when they change
584
- #
585
- label_numbers[1:] = label_numbers[1:] - label_numbers[:-1]
586
- c_i[index] = label_numbers
587
- c_i = numpy.cumsum(c_i).astype(int)
588
- if self.where_algorithm == CA_CENTROIDS:
589
- #
590
- # Only connect points > minimum intensity fraction
591
- #
592
- center_i, center_j = centrosome.cpmorphology.centers_of_labels(labels)
593
- indexes, counts, i, j = centrosome.cpmorphology.get_line_pts(
594
- center_i[c_i - 1],
595
- center_j[c_i - 1],
596
- center_i[c_j - 1],
597
- center_j[c_j - 1],
598
- )
599
- #
600
- # The indexes of the centroids at pt1
601
- #
602
- last_indexes = indexes + counts - 1
603
- #
604
- # The minimum of the intensities at pt0 and pt1
605
- #
606
- centroid_intensities = numpy.minimum(
607
- image[i[indexes], j[indexes]], image[i[last_indexes], j[last_indexes]]
608
- )
609
- #
610
- # Assign label numbers to each point so we can use
611
- # scipy.ndimage.minimum. The label numbers are indexes into
612
- # "connections" above.
613
- #
614
- pt_labels = numpy.zeros(len(i), int)
615
- pt_labels[indexes[1:]] = 1
616
- pt_labels = numpy.cumsum(pt_labels)
617
- minima = scipy.ndimage.minimum(
618
- image[i, j], pt_labels, numpy.arange(len(indexes))
619
- )
620
- minima = centrosome.cpmorphology.fixup_scipy_ndimage_result(minima)
621
- #
622
- # Filter the connections using the image
623
- #
624
- mif = self.minimum_intensity_fraction.value
625
- i = c_i[centroid_intensities * mif <= minima]
626
- j = c_j[centroid_intensities * mif <= minima]
627
- else:
628
- i = c_i
629
- j = c_j
630
- #
631
- # Add in connections from self to self
632
- #
633
- unique_labels = numpy.unique(labels)
634
- i = numpy.hstack((i, unique_labels))
635
- j = numpy.hstack((j, unique_labels))
636
- #
637
- # Run "all_connected_components" to get a component # for
638
- # objects identified as same.
639
- #
640
- new_indexes = centrosome.cpmorphology.all_connected_components(i, j)
641
- new_labels = numpy.zeros(labels.shape, int)
642
- new_labels[labels != 0] = new_indexes[labels[labels != 0]]
643
- return new_labels
644
-
645
480
  def upgrade_settings(self, setting_values, variable_revision_number, module_name):
646
481
  if variable_revision_number == 1:
647
482
  # Added outline options
@@ -650,11 +485,11 @@ above):
650
485
 
651
486
  if variable_revision_number == 1:
652
487
  # Added per-parent unification
653
- setting_values += [UNIFY_DISTANCE, "None"]
488
+ setting_values += [MergeOption.UNIFY_DISTANCE.value, "None"]
654
489
  variable_revision_number = 3
655
490
 
656
491
  if variable_revision_number == 3:
657
- setting_values = setting_values + [UM_DISCONNECTED]
492
+ setting_values = setting_values + [MergingMethod.DISCONNECTED.value]
658
493
  variable_revision_number = 4
659
494
 
660
495
  if variable_revision_number == 4:
@@ -726,15 +561,3 @@ above):
726
561
  return ["%s_Count" % self.output_objects_name.value]
727
562
  return []
728
563
 
729
-
730
- def copy_labels(labels, segmented):
731
- """Carry differences between orig_segmented and new_segmented into "labels"
732
-
733
- labels - labels matrix similarly segmented to "segmented"
734
- segmented - the newly numbered labels matrix (a subset of pixels are labeled)
735
- """
736
- max_labels = len(numpy.unique(segmented))
737
- seglabel = scipy.ndimage.minimum(labels, segmented, numpy.arange(1, max_labels + 1))
738
- labels_new = labels.copy()
739
- labels_new[segmented != 0] = seglabel[segmented[segmented != 0] - 1]
740
- return labels_new
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "5.0.0.dev0",
3
- "distance": 738,
4
- "node": "g03f79f7e2639328723c64ee0a6118a2e00cbc651",
5
- "dirty": true,
6
- "branch": "main",
7
- "node_date": "2026-09-29"
8
- }