Releases: scikit-image/scikit-image
v0.26.0
scikit-image 0.26.0
We're happy to announce the release of scikit-image 0.26.0!
New Features
- Add new parameter
max_step_costtoskimage.graph.MCP.find_costswhich allows limiting the maximal stepping cost between points (#7625). - In
skimage.transform, add theidentityclass constructor to all geometric transforms. For example, you can now useskimage.transform.PolynomialTransform(dimensionality=2)(#7754). - Add new property
intensity_mediantoskimage.measure.regionprops(#7745). binary_blobsnow supports amodeparameter for the Gaussian filter, allowing periodic boundary conditions withmode="wrap"(#7909).
API Changes
- In
skimage.morphology, deprecatebinary_erosion,binary_dilation,binary_opening, andbinary_closingin favor oferosion,dilation,opening, andclosingrespectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665). - Deprecate parameter
max_costinskimage.graph.MCP.find_costswhich previously did nothing. Use the new parametermax_step_costinstead (#7625). - Deprecate parameter
max_cumulative_costinskimage.graph.MCP.find_costswhich did nothing (#7625). - In
skimage.morphology.remove_small_objects, deprecate themin_sizeparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.morphology.remove_small_holes, deprecate thearea_thresholdparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.transform, deprecate the use of scalarscale, withdimensionality=3where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the parameters must specify the dimensionality, unless you mean to construct an identity transform (#7754). - In
skimage.transform, turn all input parameters to transform constructors keyword-only (other thanmatrix). This avoids confusion due to the positional parameter order being different from the order by which they are applied inAffineTransform(#7754). - Deprecate parameter
num_threadsinskimage.restoration.rolling_ball; useworkersinstead (#7302). - Deprecate parameter
num_workersinskimage.restoration.cycle_spin; useworkersinstead (#7302). - Officially deprecate old properties in
skimage.measure.regionpropsand related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via__get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778). - In
skimage.measure, add a new class method and constructorfrom_estimateforLineModelND,CircleModel, andEllipseModel. This replaces the old API—the now deprecatedestimatemethod—which required initalizing a model with undefined parameters before callingestimate(#7771). - In
skimage.transform, add a new class method and constructorfrom_estimateforAffineTransform,EssentialMatrixTransform,EuclideanTransform,FundamentalMatrixTransform,PiecewiseAffineTransform,PolynomialTransform,ProjectiveTransform,SimilarityTransform, andThinPlateSplineTransform. This replaces the old API—the now deprecatedestimatemethod—which required initializing an undefined transform before callingestimate(#7771). - Deprecate
skimage.measure.fit.BaseModel; after we expire the other*Model*deprecations, there is no work for an ancestor class to do (#7789). - In
skimage.measure, deprecate.paramsattributes of the modelsCircleModel,EllipseModel, andLineModelND. Instead set model-specific attributes:origin, directionforLineModelND;center, radiusforCircleModel,center, ax_lens, thetaforEllipseModel(#7789). - In
skimage.measure, deprecate use of model constructor calls without arguments leaving an uninitialized instance (for exampleCircleModel()). This applies toCircleModel,EllipseModel, andLineModelND. Instead prefer input arguments to define instances (for exampleCircleModel(center, radius)). This follows on from prior deprecation of theestimatemethod, which had implied the need for the no-argument constructor, of formcm = CircleMoldel(); cm.estimate(data)(#7789). - In
skimage.measure, deprecate use ofparamsarguments topredict*calls of model objects. This applies toCircleModel,EllipseModel, andLineModelND. We now ask instead that the user provide initialization equivalent to theparamscontent in the class construction. For example, prefercm = CircleModel((2, 3), 4); x = cm.predict_x(t)tocm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))) (#7789).
Enhancements
- Raise a
ValueErrorinstead of aTypeErrorinCircleModel,EllipseModel, andLineModelNDinskimage.measure. This applies when failing to pass a value forparams(or passingparams=None) topredictmethods of an uninitialized transform (#7789). - In
skimage.measure, theRegionPropertiesclass that is returned byregionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).
Performance
- Use greedy einsum optimization in
skimage.measure.moments_central(#7947). - Add lazy loading to skimage.segmentation (#7035).
Bug Fixes
- Make deconvolution example scientifically sensible (#7589).
- In
skimage.filters.sobel/scharr/prewitt/farid, whenmode="constant"is used ensure thatcvalhas an effect. It didn't previously (#7826). - Ensure
skimage.graph.cut_normalizedis deterministic when seeded with therngparameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used functionscipy.linalg.eigshis not deterministic and can lead to different results (#7912). - Avoid potential integer overflow in
skimage.morphology.reconstruction(#7938). - Handle negative axis lengths due to numerical errors in
axis_major_lengthandaxis_minor_lengthproperties ofskimage.measure.regionprops(#7916). - In
skimage.util.random_noise, ensure thatclipargument is handled consistently for various modes (#7924). - Apparent fix for Hough transform stray j (#7974).
Documentation
- Reflect deprecation of I/O plugin infrastructure in user guide (#7710).
- Display code blocks with a caption and extra indentation (#7706).
- Edit gallery examples on segmentation to comply with matplotlib's object-oriented style (#7531).
- Add link to 2.0 TODO (#7716).
- Denote changes in Frangi filter explicitly (#7721).
- Add SPEC badges (#7737).
- Fix math equations in docstrings for manders_coloc_coeff and normalized_mutual_information (#7517).
- Use the import convention
import skimage as skiin the docstrings ofski.measure.euler_number,ski.measure.perimeterandski.measure.perimeter_crofton(#7741). - Fix the definition of entropy in the docstring of
skimage.metrics.normalized_mutual_information(#7750). - DOC: document use of environment.yml in installatio...
v0.26.0rc2
We're happy to announce the release of scikit-image 0.26.0rc2!
New Features
- Add new parameter
max_step_costtoskimage.graph.MCP.find_costswhich allows limiting the maximal stepping cost between points (#7625). - In
skimage.transform, add theidentityclass constructor to all geometric transforms. For example, you can now useskimage.transform.PolynomialTransform(dimensionality=2)(#7754). - Add new property
intensity_mediantoskimage.measure.regionprops(#7745). binary_blobsnow supports amodeparameter for the Gaussian filter, allowing periodic boundary conditions withmode="wrap"(#7909).
API Changes
- In
skimage.morphology, deprecatebinary_erosion,binary_dilation,binary_opening, andbinary_closingin favor oferosion,dilation,opening, andclosingrespectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665). - Deprecate parameter
max_cumulative_costinskimage.graph.MCP.find_costswhich did nothing (#7625). - Deprecate parameter
max_costinskimage.graph.MCP.find_costswhich previously did nothing. Use the new parametermax_step_costinstead (#7625). - In
skimage.morphology.remove_small_objects, deprecate themin_sizeparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.morphology.remove_small_holes, deprecate thearea_thresholdparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.transform, turn all input parameters to transform constructors keyword-only (other thanmatrix). This avoids confusion due to the positional parameter order being different from the order by which they are applied inAffineTransform(#7754). - In
skimage.transform, deprecate the use of scalarscale, withdimensionality=3where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the parameters must specify the dimensionality, unless you mean to construct an identity transform (#7754). - Deprecate parameter
num_threadsinskimage.restoration.rolling_ball; useworkersinstead (#7302). - Deprecate parameter
num_workersinskimage.restoration.cycle_spin; useworkersinstead (#7302). - Officially deprecate old properties in
skimage.measure.regionpropsand related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via__get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778). - In
skimage.transform, add a new class method and constructorfrom_estimateforAffineTransform,EssentialMatrixTransform,EuclideanTransform,FundamentalMatrixTransform,PiecewiseAffineTransform,PolynomialTransform,ProjectiveTransform,SimilarityTransform, andThinPlateSplineTransform. This replaces the old API—the now deprecatedestimatemethod—which required initializing an undefined transform before callingestimate(#7771). - In
skimage.measure, add a new class method and constructorfrom_estimateforLineModelND,CircleModel, andEllipseModel. This replaces the old API—the now deprecatedestimatemethod—which required initalizing a model with undefined parameters before callingestimate(#7771). - In
skimage.measure, deprecate use of model constructor calls without arguments leaving an uninitialized instance (for exampleCircleModel()). This applies toCircleModel,EllipseModel, andLineModelND. Instead prefer input arguments to define instances (for exampleCircleModel(center, radius)). This follows on from prior deprecation of theestimatemethod, which had implied the need for the no-argument constructor, of formcm = CircleMoldel(); cm.estimate(data)(#7789). - Deprecate
skimage.measure.fit.BaseModel; after we expire the other*Model*deprecations, there is no work for an ancestor class to do (#7789). - In
skimage.measure, deprecate use ofparamsarguments topredict*calls of model objects. This applies toCircleModel,EllipseModel, andLineModelND. We now ask instead that the user provide initialization equivalent to theparamscontent in the class construction. For example, prefercm = CircleModel((2, 3), 4); x = cm.predict_x(t)tocm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))) (#7789). - In
skimage.measure, deprecate.paramsattributes of the modelsCircleModel,EllipseModel, andLineModelND. Instead set model-specific attributes:origin, directionforLineModelND;center, radiusforCircleModel,center, ax_lens, thetaforEllipseModel(#7789).
Enhancements
- Raise a
ValueErrorinstead of aTypeErrorinCircleModel,EllipseModel, andLineModelNDinskimage.measure. This applies when failing to pass a value forparams(or passingparams=None) topredictmethods of an uninitialized transform (#7789). - In
skimage.measure, theRegionPropertiesclass that is returned byregionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).
Performance
- Use greedy einsum optimization in
skimage.measure.moments_central(#7947). - Add lazy loading to skimage.segmentation (#7035).
Bug Fixes
- Make deconvolution example scientifically sensible (#7589).
- In
skimage.filters.sobel/scharr/prewitt/farid, whenmode="constant"is used ensure thatcvalhas an effect. It didn't previously (#7826). - Ensure
skimage.graph.cut_normalizedis deterministic when seeded with therngparameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used functionscipy.linalg.eigshis not deterministic and can lead to different results (#7912). - Avoid potential integer overflow in
skimage.morphology.reconstruction(#7938). - Handle negative axis lengths due to numerical errors in
axis_major_lengthandaxis_minor_lengthproperties ofskimage.measure.regionprops(#7916). - In
skimage.util.random_noise, ensure thatclipargument is handled consistently for various modes (#7924). - Apparent fix for Hough transform stray j (#7974).
Documentation
- Reflect deprecation of I/O plugin infrastructure in user guide (#7710).
- Display code blocks with a caption and extra indentation (#7706).
- Edit gallery examples on segmentation to comply with matplotlib's object-oriented style (#7531).
- Add link to 2.0 TODO (#7716).
- Denote changes in Frangi filter explicitly (#7721).
- Add SPEC badges (#7737).
- Fix math equations in docstrings for manders_coloc_coeff and normalized_mutual_information (#7517).
- Use the import convention
import skimage as skiin the docstrings ofski.measure.euler_number,ski.measure.perimeterandski.measure.perimeter_crofton(#7741). - Fix the definition of entropy in the docstring of
skimage.metrics.normalized_mutual_information(#7750). - DOC: document use of environment.yml in installation guide ([#7760](https...
v0.26.0rc1
We're happy to announce the release of scikit-image 0.26.0rc1!
New Features
- Add new parameter
max_step_costtoskimage.graph.MCP.find_costswhich allows limiting the maximal stepping cost between points (#7625). - In
skimage.transform, add theidentityclass constructor to all geometric transforms. For example, you can now useskimage.transform.PolynomialTransform(dimensionality=2)(#7754). - Add new property
intensity_mediantoskimage.measure.regionprops(#7745). binary_blobsnow supports amodeparameter for the Gaussian filter, allowing periodic boundary conditions withmode="wrap"(#7909).
API Changes
- In
skimage.morphology, deprecatebinary_erosion,binary_dilation,binary_opening, andbinary_closingin favor oferosion,dilation,opening, andclosingrespectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665). - Deprecate parameter
max_cumulative_costinskimage.graph.MCP.find_costswhich did nothing (#7625). - Deprecate parameter
max_costinskimage.graph.MCP.find_costswhich previously did nothing. Use the new parametermax_step_costinstead (#7625). - In
skimage.morphology.remove_small_objects, deprecate themin_sizeparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.morphology.remove_small_holes, deprecate thearea_thresholdparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.transform, turn all input parameters to transform constructors keyword-only (other thanmatrix). This avoids confusion due to the positional parameter order being different from the order by which they are applied inAffineTransform(#7754). - In
skimage.transform, deprecate the use of scalarscale, withdimensionality=3where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the parameters must specify the dimensionality, unless you mean to construct an identity transform (#7754). - Deprecate parameter
num_threadsinskimage.restoration.rolling_ball; useworkersinstead (#7302). - Deprecate parameter
num_workersinskimage.restoration.cycle_spin; useworkersinstead (#7302). - Officially deprecate old properties in
skimage.measure.regionpropsand related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via__get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778). - In
skimage.transform, add a new class method and constructorfrom_estimateforAffineTransform,EssentialMatrixTransform,EuclideanTransform,FundamentalMatrixTransform,PiecewiseAffineTransform,PolynomialTransform,ProjectiveTransform,SimilarityTransform, andThinPlateSplineTransform. This replaces the old API—the now deprecatedestimatemethod—which required initializing an undefined transform before callingestimate(#7771). - In
skimage.measure, add a new class method and constructorfrom_estimateforLineModelND,CircleModel, andEllipseModel. This replaces the old API—the now deprecatedestimatemethod—which required initalizing a model with undefined parameters before callingestimate(#7771). - In
skimage.measure, deprecate use of model constructor calls without arguments leaving an uninitialized instance (for exampleCircleModel()). This applies toCircleModel,EllipseModel, andLineModelND. Instead prefer input arguments to define instances (for exampleCircleModel(center, radius)). This follows on from prior deprecation of theestimatemethod, which had implied the need for the no-argument constructor, of formcm = CircleMoldel(); cm.estimate(data)(#7789). - Deprecate
skimage.measure.fit.BaseModel; after we expire the other*Model*deprecations, there is no work for an ancestor class to do (#7789). - In
skimage.measure, deprecate use ofparamsarguments topredict*calls of model objects. This applies toCircleModel,EllipseModel, andLineModelND. We now ask instead that the user provide initialization equivalent to theparamscontent in the class construction. For example, prefercm = CircleModel((2, 3), 4); x = cm.predict_x(t)tocm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))) (#7789). - In
skimage.measure, deprecate.paramsattributes of the modelsCircleModel,EllipseModel, andLineModelND. Instead set model-specific attributes:origin, directionforLineModelND;center, radiusforCircleModel,center, ax_lens, thetaforEllipseModel(#7789).
Enhancements
- Raise a
ValueErrorinstead of aTypeErrorinCircleModel,EllipseModel, andLineModelNDinskimage.measure. This applies when failing to pass a value forparams(or passingparams=None) topredictmethods of an uninitialized transform (#7789). - In
skimage.measure, theRegionPropertiesclass that is returned byregionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).
Performance
- Use greedy einsum optimization in
skimage.measure.moments_central(#7947). - Add lazy loading to skimage.segmentation (#7035).
Bug Fixes
- Make deconvolution example scientifically sensible (#7589).
- In
skimage.filters.sobel/scharr/prewitt/farid, whenmode="constant"is used ensure thatcvalhas an effect. It didn't previously (#7826). - Ensure
skimage.graph.cut_normalizedis deterministic when seeded with therngparameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used functionscipy.linalg.eigshis not deterministic and can lead to different results (#7912). - Avoid potential integer overflow in
skimage.morphology.reconstruction(#7938). - Handle negative axis lengths due to numerical errors in
axis_major_lengthandaxis_minor_lengthproperties ofskimage.measure.regionprops(#7916). - In
skimage.util.random_noise, ensure thatclipargument is handled consistently for various modes (#7924). - Apparent fix for Hough transform stray j (#7974).
Documentation
- Reflect deprecation of I/O plugin infrastructure in user guide (#7710).
- Display code blocks with a caption and extra indentation (#7706).
- Edit gallery examples on segmentation to comply with matplotlib's object-oriented style (#7531).
- Add link to 2.0 TODO (#7716).
- Denote changes in Frangi filter explicitly (#7721).
- Add SPEC badges (#7737).
- Fix math equations in docstrings for manders_coloc_coeff and normalized_mutual_information (#7517).
- Use the import convention
import skimage as skiin the docstrings ofski.measure.euler_number,ski.measure.perimeterandski.measure.perimeter_crofton(#7741). - Fix the definition of entropy in the docstring of
skimage.metrics.normalized_mutual_information(#7750). - DOC: document use of environment.yml in installation guide ([#7760](https...
v0.26.0rc0
We're happy to announce the release of scikit-image 0.26.0rc0!
New Features
- Basic infrastructure for dispatching to a backend (#7520).
- Add new parameter
max_step_costtoskimage.graph.MCP.find_costswhich allows limiting the maximal stepping cost between points (#7625). - Add new property
intensity_mediantoskimage.measure.regionprops(#7745). - Refactor fundamental matrix scaling (#7767).
binary_blobsnow supports amodeparameter for the Gaussian filter, allowing periodic boundary conditions withmode="wrap"(#7909).
API Changes
- In
skimage.morphology, deprecatebinary_erosion,binary_dilation,binary_opening, andbinary_closingin favor oferosion,dilation,opening, andclosingrespectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665). - Deprecate parameter
max_costinskimage.graph.MCP.find_costswhich previously did nothing. Use the new parametermax_step_costinstead (#7625). - Deprecate parameter
max_cumulative_costinskimage.graph.MCP.find_costswhich did nothing (#7625). - In
skimage.morphology.remove_small_holes, deprecate thearea_thresholdparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - In
skimage.morphology.remove_small_objects, deprecate themin_sizeparameter in favor of the newmax_sizeparameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739). - Deprecate use of scalar
scale, withdimensionality=3where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the paraters must specify the dimensionality, unless you mean to construct an identity transform. Addidentityclass constructor to all geometric transforms. Make all input parameters to Transform constructors, other thanmatrix, keyword only, to work around difference in the order of parameters, from the order of application, inAffineTransform(#7754). - Deprecate parameter
num_threadsinskimage.restoration.rolling_ball; useworkersinstead (#7302). - Deprecate parameter
num_workersinskimage.restoration.cycle_spin; useworkersinstead (#7302). - Officially deprecate old properties in
skimage.measure.regionpropsand related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via__get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778). - In
skimage.measure, add a new class method and constructorfrom_estimateforLineModelND,CircleModel, andEllipseModel. This replaces the old API—the now deprecatedestimatemethod—which required initalizing a model with undefined parameters before callingestimate(#7771). - In
skimage.transform, add a new class method and constructorfrom_estimateforAffineTransform,EssentialMatrixTransform,EuclideanTransform, FundamentalMatrixTransform,PiecewiseAffineTransform,PolynomialTransform,ProjectiveTransform,SimilarityTransform, andThinPlateSplineTransform. This replaces the old API—the now deprecatedestimatemethod—which required initializing an undefined transform before callingestimate` (#7771). - Deprecate use of model constructor calls without arguments (e.g.
CircleModel()), leaving an uninitialized instance. Instead prefer input arguments to define instance (e.g.CircleModel(center, radius)). This follows on from prior deprecation of theestimatemethod, which had implied the need for the no-argument constructor, of formcm = CircleMoldel(); cm.estimate(data). Deprecate.paramsattributes of models. Instead set model-specific attributes:origin, directionforLineModelND;center, radiusforCircleModel,center, ax_lens, thetaforEllipseModel. Deprecate use ofparamsarguments topredict*calls of model objects, because we now ask instead that the user provide initialization equivalent to theparamscontent in the class construction (i.e. prefercm = CircleModel((2, 3), 4); x = cm.predict_x(t)tocm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))). Deprecateskimage.measure.fit.BaseModel; after we expire the other*Model*deprecations, there is no work for an ancestor class to do. In a small cleanup, we now raise aValueErrorinstead of aTypeErrorwhen failing to pass a value forparams(or passingparams=None) topredictmethods of an uninitialized transform (#7789).
Enhancements
- In
skimage.measure, theRegionPropertiesclass that is returned byregionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).
Performance
- Add greedy optimization to einsum in moments (#7947).
Bug Fixes
- Make deconvolution example scientifically sensible (#7589).
- In
skimage.filters.sobel/scharr/prewitt/farid, whenmode="constant"is used ensure thatcvalhas an effect. It didn't previously (#7826). - Skip doctest with random component (#7854).
- Ensure
skimage.graph.cut_normalizedis deterministic when seeded with therngparameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used functionscipy.linalg.eigshis not deterministic and can lead to different results (#7912). - Fix integer overflow in reconstruction cython code (#7938).
- Fix negative axis length due to numerical error (#7916).
- moments_hu doctest should ignore tiny differences (#7944).
- Relax constraints of regionprops multichannel test on MacOS with NumPy & "Accelerate" (#7942).
- In
random_noise, ensure that 'clip' argument is handled consistently for various modes (#7924).
Documentation
- Reflect deprecation of I/O plugin infrastructure in user guide (#7710).
- Display code blocks with a caption and extra indentation (#7706).
- Edit gallery examples on segmentation to comply with matplotlib's object-oriented style (#7531).
- Add link to 2.0 TODO (#7716).
- Denote changes in Frangi filter explicitly (#7721).
- Add SPEC badges (#7737).
- Fix math equations in docstrings for manders_coloc_coeff and normalized_mutual_information (#7517).
- Use the import convention
import skimage as skiin the docstrings ofski.measure.euler_number,ski.measure.perimeterandski.measure.perimeter_crofton(#7741). - Fix the definition of entropy in the docstring of
skimage.metrics.normalized_mutual_information(#7750). - DOC: document use of environment.yml in installation guide (#7760).
- Further document use of regionprops function and fix terms (#7518).
- Display actual threshold value in Global Otsu plot (#7780).
- DOC: Include missing gain parameter in adjust_gamma equation (#7763).
- Document output dtype for transform.resize (#7792).
- Use consistent wording in property description (#7804).
- Draft migration guide for skimage2 ([#7...
v0.25.2
scikit-image 0.25.2
We're happy to announce the release of scikit-image 0.25.2!
Bug Fixes
- Handle random degenerate case in
skimage.graph.cut_normalizedgracefully (#7675). - In
skimage.feature.BRIEF, copykeypointsif necessary to preserve contiguity (#7692). - Revert a previous fix to
skimage.segmentation.watershedthat unintentionally changed the algorithm's behavior for markers placed at maxima in the image. We decided that the behavior originally reported as a bug (gh-6632), is not actually one (#7702).
Documentation
- Improve docstring of
skimage.restoration.rolling_ball(#7682).
Infrastructure
- Only run the job if the PR got merged (vs merely closed) (#7679).
- Fix typo in GH workflow (#7681).
- Refactor GitHub's CI config and helper scripts (#7672).
- Use pytest config in pyproject.toml in CI (#7555).
- Lower CI build verbosity (#7688).
- Port testing on Windows from Azure CI to GitHub's CI (#7687).
- CI cleanup (#7693).
- Simultaneously resolve all dependencies; add pip caching (#7690).
- Reenable graph reproducibility test (#7694).
- Give milestone labeler necessary permissions (#7695).
- Milestone labeler permission not needed (#7696).
- Fix 313t wheel build (#7699).
Maintenance
- Include a missing image in meson.build so they are included in the wheel (#7660).
- Add zizmor to pre-commit; address GH workflow issues raised (#7662).
Contributors
6 authors added to this release (alphabetically):
- Jarrod Millman (@jarrodmillman)
- Lars Grüter (@lagru)
- Marianne Corvellec (@mkcor)
- Matthew Brett (@matthew-brett)
- Orion Poplawski (@opoplawski)
- Stefan van der Walt (@stefanv)
8 reviewers added to this release (alphabetically):
- Jarrod Millman (@jarrodmillman)
- Juan Nunez-Iglesias (@jni)
- Lars Grüter (@lagru)
- Marianne Corvellec (@mkcor)
- Mark Harfouche (@hmaarrfk)
- Matthew Brett (@matthew-brett)
- Ralf Gommers (@rgommers)
- Stefan van der Walt (@stefanv)
These lists are automatically generated, and may not be complete or may contain duplicates.
v0.25.2rc0
scikit-image 0.25.2rc0
We're happy to announce the release of scikit-image 0.25.2rc0!
Bug Fixes
- Handle random degenerate case in
skimage.graph.cut_normalizedgracefully (#7675). - Copy keypoints if necessary to preserve contiguity (#7692).
- Revert a previous fix to
skimage.segmentation.watershedthat unintentionally changed the algorithm's behavior for markers placed at maxima in the image. We decided that the behavior originally reported as a bug (gh-6632), is not actually one (#7702).
Documentation
- Improve docstring for rolling_ball function (#7682).
Infrastructure
- Only run the job if the PR got merged (vs merely closed) (#7679).
- Fix typo in GH workflow (#7681).
- Refactor GitHub's CI config and helper scripts (#7672).
- Use pytest config in pyproject.toml in CI (#7555).
- Lower CI build verbosity (#7688).
- Port testing on Windows from Azure CI to GitHub's CI (#7687).
- CI cleanup (#7693).
- Simultaneously resolve all dependencies; add pip caching (#7690).
- Reenable graph reproducibility test (#7694).
- Give milestone labeler necessary permissions (#7695).
- Milestone labeler permission not needed (#7696).
- Fix 313t wheel build (#7699).
Maintenance
- Include a missing image in meson.build so they are included in the wheel (#7660).
- Add zizmor to pre-commit; address GH workflow issues raised (#7662).
Contributors
6 authors added to this release (alphabetically):
- Jarrod Millman (@jarrodmillman)
- Lars Grüter (@lagru)
- Marianne Corvellec (@mkcor)
- Matthew Brett (@matthew-brett)
- Orion Poplawski (@opoplawski)
- Stefan van der Walt (@stefanv)
8 reviewers added to this release (alphabetically):
- Jarrod Millman (@jarrodmillman)
- Juan Nunez-Iglesias (@jni)
- Lars Grüter (@lagru)
- Marianne Corvellec (@mkcor)
- Mark Harfouche (@hmaarrfk)
- Matthew Brett (@matthew-brett)
- Ralf Gommers (@rgommers)
- Stefan van der Walt (@stefanv)
These lists are automatically generated, and may not be complete or may contain duplicates.
v0.25.1
scikit-image 0.25.1
We're happy to announce the release of scikit-image 0.25.1!
Bug Fixes
- Include
centroidin__all__of the PYI file inskimage.measure(#7652). - Improve numerical stability of
blur_effect(#7643). - Because under-determined fits are unreliable,
skimage.measure.EllipseModelwill now warn and returnFalse(no fit) when fewer than 5 data points are provided (#7648). - Explicitly upcast
datawith dtypefloat16tofloat32inskimage.segmentation.random_walker; this fixes passingfloat16on NumPy 1.26 (#7655).
Documentation
- Don't use removed
QuadContourSet.collectionsin gallery example (#7638). - Change old import convention in the gallery examples (#7630).
Infrastructure
Maintenance
- Infer floating point type for sigma parameter (#7637).
- In
skimage.segmentation.active_contour, change the type of the default argument forw_lineto indicate it is a float (#7645). - Temporarily disable parallel building of gallery (#7656).
- [pre-commit.ci] pre-commit autoupdate (#7649).
- Skip flaky test on azure (#7669).
Contributors
8 authors added to this release (alphabetically):
- @michaelbratsch
- @scrimpys
- Jarrod Millman (@jarrodmillman)
- Jigyasu (@jgyasu)
- kwikwag (@kwikwag)
- Lars Grüter (@lagru)
- Marianne Corvellec (@mkcor)
- Stefan van der Walt (@stefanv)
8 reviewers added to this release (alphabetically):
- @michaelbratsch
- Dan Schult (@dschult)
- Jarrod Millman (@jarrodmillman)
- Jigyasu (@jgyasu)
- Lars Grüter (@lagru)
- Marianne Corvellec (@mkcor)
- Ruth Comer (@rcomer)
- Stefan van der Walt (@stefanv)
These lists are automatically generated, and may not be complete or may contain duplicates.
v0.25.0
scikit-image 0.25.0
We're happy to announce the release of scikit-image 0.25.0!
New Features
- Add the new Gray-Level Co-occurrence Matrix (GLCM) properties "mean", "variance", "standard deviation" and "entropy" to
skimage.feature.texture.graycoprops(#7375). - Add the new
skimage.morphology.footprint_rectanglesupporting generation of rectangular or hyper-rectangular footprints in one function (#7566).
API Changes
- Complete the deprecation of and remove
skimage.feature.plot_matches. Useskimage.feature.plot_matched_featuresgoing forward (#7487). - Deprecate
skimage.io.imshow,skimage.io.imshow_collectionandskimage.io.show. Please usematplotlib,napari, etc. to visualize images (#7508). - Remove deprecated
skimage.morphology.skeletonize_3d; useskimage.morphology.skeletonizeinstead (#7572). - Deprecate
skimage.ioplugin infrastructure (#7353). - Switched to using the
scipy.sparsearray interface. For more details, see the note about the newscipy.sparsearray interface here (#7576). - Deprecate
skimage.morphology.rectanglein favor of the new functionskimage.morphology.footprint_rectangle(#7566). - Deprecate
skimage.morphology.squarein favor of the new functionskimage.morphology.footprint_rectangle(#7566). - Deprecate
skimage.morphology.cubein favor of the new functionskimage.morphology.footprint_rectangle(#7566).
Enhancements
- Improve numerical stability of
skimage.morphology.local_minimafor extremely small floats (#7534). - Make sure that
skimage.feature.plot_matched_featuresuses the same random colors, ifmatches_colorisn't provided explicitly (#7541). - Allow passing a sequence of colors to the parameter
matches_colorinskimage.feature.plot_matched_features(#7541).
Performance
skimage.feature.peak_local_maxwill now skip unnecessary distance computations in the case ofmin_distance=1. This results in performance improvements to functions likeskimage.feature.blob_dog,skimage.feature.blob_log,skimage.feature.blob_dohandskimage.feature.corner_peaksthat callpeak_local_maxinternally (#7548).- In
skimage.featurepeak_local_max, skip unnecessary check for cases wheremin_distance > 1is passed (#7548).
Bug Fixes
- Ensure that
skimage.morphology.remove_objects_by_distancedoesn't fail if the given integer dtype cannot be safely cast to the architecture specific size ofintp, e.g. on i386 architectures (#7453). - Fix degeneracy in
skimage.draw.ellipsoid_statswhen all semi-axes have the same length (#7473). - Prevent
skimage.morphology.thinfrom accidentally modifying the input image in case it is of dtype uint8 (#7469). - Fix numerical precision error in
skimage.measure.ransac. In some cases,ransacwas stopping at the first iteration (#7065). - Fix numerical precision error in
skimage.measure.ransac; very small probabilities lead to -0 number of max trials (#7496). - Ensure that
RegionPropertiesobjects returned byskimage.measure.regionpropscan be deserialized with pickle (#7569). - Fix edge case where setting
watershed_lines=Trueinskimage.segmentation.watershedresulted in an incorrect solution (#7071). - Fix the behavior of
skimage.segmentation.watershedwhen the markers don't align with local minima by making sure every marker is evaluated before successive pixels (#7071). - Fix dtype promotion in
skimage.segmentation.join_segmentationsifnumpy.uintis used with NumPy<2 (#7292).
Documentation
- In
skimage.morphology.skeletonize, clarify the expected image dtypes and how objects of different intensities are handled (#7456). - Fix example section in docstring of
skimage.feature.graycomatrix(#7297). - Use conda-forge consistently in instructions for setting up the development environment (#7483).
- Use new
CITATION.cffinstead ofCITATION.bib(#7505). - Use correct
spin test --coveragein contribution guide (#7515). - Tweak advice to new developers; remove AI warning (#7522).
- Rework installation instructions (#7434).
- Improve the description of the
imageparameter inskimage.restoration.richardson_lucy(#7477). - Account for empty arrays when counting segments per contour level in gallery example "Segment human cells (in mitosis)" (#7551).
- Fix typo in morphology doc (#7606).
- Change type description of parameter
radiusinskimage.morphology.ballfrominttofloat(#7627).
Infrastructure
- Fix CI tests with minimal dependencies and make dependency resolution more robust (#7462).
- Add CI to test scikit-image against free-threaded Python 3.13 (#7463).
- Address autosummary.import_cycle warning (#7486).
- Temporarily exclude Dask 2024.8.0 to fix CI (#7493).
- Uncomment
currentmoduledirective again (#7492). - Add CI to release nightly free-threaded wheels (#7481).
- Update deprecated configuration (#7501).
- Bump spin version to 0.11 (#7507).
- Ensure only a single
type:label is present in PRs (#7512). - Update pydata-sphinx-theme (#7511).
- Fix OpenBLAS
s_cmpunresolved symbol error, update Emscripten CI testing (#7525). - Render paragraphs in dormant message (#7549).
- Build sphinx documentation with parallel jobs (#7579).
- Don't check test coverage in CI (#7594).
- Explicitly setup conda on macos for wheel building (#7608).
Maintenance
- Verify all artifacts that have been attested by looping over them in CI (#7447).
- Update circleci-artifacts-redirector-action that moved to the Scientific Python org (#7446).
- Use NumPy 2.0 stable to build packages (#7451).
- FIX Use python3 in Meson version script shebang (#7482).
- Refactored tests for skeletonize (#7459).
- Remove unused and deprecated dependency pytest-runner (#7495).
- Exclude imageio 2.35.0 that forces numpy downgrade (#7502).
- Don't test thresholding funcs for Dask compatibility (#7509).
- Fix build dependency (#7510).
- Add sdist check to
spin sdist(#7438). - Reorder items in TODO list (#7519).
- Use
Rotation.from_eulerto compute 3D rotation matrix (#7503). - Update spin (0.12) (#7532).
- Import
lazy_loaderas private symbol in top-level namespaces ([#7540](https://github.com/scikit-image/scikit...
v0.25.0rc2
scikit-image 0.25.0rc2
We're happy to announce the release of scikit-image 0.25.0rc2!
New Features
- Add the new Gray-Level Co-occurrence Matrix (GLCM) properties "mean", "variance", "standard deviation" and "entropy" to
skimage.feature.texture.graycoprops(#7375). - Add the new
skimage.morphology.footprint_rectanglesupporting generation of rectangular or hyper-rectangular footprints in one function (#7566).
API Changes
- Complete the deprecation of and remove
skimage.feature.plot_matches. Useskimage.feature.plot_matched_featuresgoing forward (#7487). - Deprecate
skimage.io.imshow,skimage.io.imshow_collectionandskimage.io.show. Please usematplotlib,napari, etc. to visualize images (#7508). - Remove deprecated
skimage.morphology.skeletonize_3d; useskimage.morphology.skeletonizeinstead (#7572). - Deprecate
skimage.ioplugin infrastructure (#7353). - Switched to using the
scipy.sparsearray interface. For more details, see the note about the newscipy.sparsearray interface here (#7576). - Deprecate
skimage.morphology.rectanglein favor of the new functionskimage.morphology.footprint_rectangle(#7566). - Deprecate
skimage.morphology.squarein favor of the new functionskimage.morphology.footprint_rectangle(#7566). - Deprecate
skimage.morphology.cubein favor of the new functionskimage.morphology.footprint_rectangle(#7566).
Enhancements
- Improve numerical stability of
skimage.morphology.local_minimafor extremely small floats (#7534). - Allow passing a sequence of colors to the parameter
matches_colorinskimage.feature.plot_matched_features(#7541). - Make sure that
skimage.feature.plot_matched_featuresuses the same random colors, ifmatches_colorisn't provided explicitly (#7541).
Performance
skimage.feature.peak_local_maxwill now skip unnecessary distance computations in the case ofmin_distance=1. This results in performance improvements to functions likeskimage.feature.blob_dog,skimage.feature.blob_log,skimage.feature.blob_dohandskimage.feature.corner_peaksthat callpeak_local_maxinternally (#7548).- In
skimage.featurepeak_local_max, skip unnecessary check for cases wheremin_distance > 1is passed (#7548).
Bug Fixes
- Ensure that
skimage.morphology.remove_objects_by_distancedoesn't fail if the given integer dtype cannot be safely cast to the architecture specific size ofintp, e.g. on i386 architectures (#7453). - Fix degeneracy in
skimage.draw.ellipsoid_statswhen all semi-axes have the same length (#7473). - Prevent
skimage.morphology.thinfrom accidentally modifying the input image in case it is of dtype uint8 (#7469). - Fix numerical precision error in
skimage.measure.ransac. In some cases,ransacwas stopping at the first iteration (#7065). - Fix numerical precision error in
skimage.measure.ransac; very small probabilities lead to -0 number of max trials (#7496). - Ensure that
RegionPropertiesobjects returned byskimage.measure.regionpropscan be deserialized with pickle (#7569). - Fix the behavior of
skimage.segmentation.watershedwhen the markers don't align with local minima by making sure every marker is evaluated before successive pixels (#7071). - Fix edge case where setting
watershed_lines=Trueinskimage.segmentation.watershedresulted in an incorrect solution (#7071). - Fix dtype promotion in
skimage.segmentation.join_segmentationsifnumpy.uintis used with NumPy<2 (#7292).
Documentation
- In
skimage.morphology.skeletonize, clarify the expected image dtypes and how objects of different intensities are handled (#7456). - Fix example section in docstring of
skimage.feature.graycomatrix(#7297). - Use conda-forge consistently in instructions for setting up the development environment (#7483).
- Use new
CITATION.cffinstead ofCITATION.bib(#7505). - Use correct
spin test --coveragein contribution guide (#7515). - Tweak advice to new developers; remove AI warning (#7522).
- Rework installation instructions (#7434).
- Improve the description of the
imageparameter inskimage.restoration.richardson_lucy(#7477). - Account for empty arrays when counting segments per contour level in gallery example "Segment human cells (in mitosis)" (#7551).
- Fix typo in morphology doc (#7606).
- Change type description of parameter
radiusinskimage.morphology.ballfrominttofloat(#7627).
Infrastructure
- Fix CI tests with minimal dependencies and make dependency resolution more robust (#7462).
- Add CI to test scikit-image against free-threaded Python 3.13 (#7463).
- Address autosummary.import_cycle warning (#7486).
- Temporarily exclude Dask 2024.8.0 to fix CI (#7493).
- Uncomment
currentmoduledirective again (#7492). - Add CI to release nightly free-threaded wheels (#7481).
- Update deprecated configuration (#7501).
- Bump spin version to 0.11 (#7507).
- Ensure only a single
type:label is present in PRs (#7512). - Update pydata-sphinx-theme (#7511).
- Fix OpenBLAS
s_cmpunresolved symbol error, update Emscripten CI testing (#7525). - Render paragraphs in dormant message (#7549).
- Build sphinx documentation with parallel jobs (#7579).
- Don't check test coverage in CI (#7594).
- Explicitly setup conda on macos for wheel building (#7608).
Maintenance
- Verify all artifacts that have been attested by looping over them in CI (#7447).
- Update circleci-artifacts-redirector-action that moved to the Scientific Python org (#7446).
- Use NumPy 2.0 stable to build packages (#7451).
- FIX Use python3 in Meson version script shebang (#7482).
- Refactored tests for skeletonize (#7459).
- Remove unused and deprecated dependency pytest-runner (#7495).
- Exclude imageio 2.35.0 that forces numpy downgrade (#7502).
- Don't test thresholding funcs for Dask compatibility (#7509).
- Fix build dependency (#7510).
- Add sdist check to
spin sdist(#7438). - Reorder items in TODO list (#7519).
- Use
Rotation.from_eulerto compute 3D rotation matrix (#7503). - Update spin (0.12) (#7532).
- Import
lazy_loaderas private symbol in top-level namespaces ([#7540](https://github.com/scikit-image/...
v0.25.0rc1
scikit-image 0.25.0rc1
We're happy to announce the release of scikit-image 0.25.0rc1!
New Features
- Add the new Grey-Level Co-occurrence Matrix (GLCM) properties "mean", "variance", "standard deviation" and "entropy" to
skimage.feature.texture.graycoprops(#7375).
API Changes
- Complete the deprecation of and remove
skimage.feature.plot_matches. Useskimage.feature.plot_matched_featuresgoing forward (#7487). - Deprecate
skimage.io.imshow,skimage.io.imshow_collectionandskimage.io.show. Please usematplotlib,napari, etc. to visualize images (#7508).
Enhancements
- Improve numerical stability of
skimage.morphology.local_minimafor extremely small floats (#7534).
Bug Fixes
- Ensure that
skimage.morphology.remove_objects_by_distancedoesn't fail if the given integer dtype cannot be safely cast to the architecture specific size ofintp, e.g. on i386 architectures (#7453). - Fix degeneracy in
skimage.draw.ellipsoid_statswhen all semi-axes have the same length (#7473). - Prevent
skimage.morphology.thinfrom accidentally modifying the input image in case it is of dtype uint8 (#7469). - Fix numerical precision error in
skimage.measure.ransac. In some cases,ransacwas stopping at the first iteration (#7065). - Fix numerical precision error in
skimage.measure.ransac; very small probabilities lead to -0 number of max trials (#7496).
Documentation
- In
skimage.morphology.skeletonize, clarify the expected image dtypes and how objects of different intensities are handled (#7456). - Fix example section in docstring of
skimage.feature.graycomatrix(#7297). - Use conda-forge consistently in instructions for setting up the development environment (#7483).
- Use new
CITATION.cffinstead ofCITATION.bib(#7505). - Use correct
spin test --coveragein contribution guide (#7515). - Tweak advice to new developers; remove AI warning (#7522).
- Rework installation instructions (#7434).
- Improve the description of the
imageparameter inskimage.restoration.richardson_lucy(#7477). - Account for empty arrays when counting segments per contour level in gallery example "Segment human cells (in mitosis)" (#7551).
Infrastructure
- Fix CI tests with minimal dependencies and make dependency resolution more robust (#7462).
- Add CI to test scikit-image against free-threaded Python 3.13 (#7463).
- Address autosummary.import_cycle warning (#7486).
- Temporarily exclude Dask 2024.8.0 to fix CI (#7493).
- Uncomment
currentmoduledirective again (#7492). - Add CI to release nightly free-threaded wheels (#7481).
- Update deprecated configuration (#7501).
- Bump spin version to 0.11 (#7507).
- Ensure only a single
type:label is present in PRs (#7512). - Update pydata-sphinx-theme (#7511).
- Fix OpenBLAS
s_cmpunresolved symbol error, update Emscripten CI testing (#7525).
Maintenance
- Verify all artifacts that have been attested by looping over them in CI (#7447).
- Update circleci-artifacts-redirector-action that moved to the Scientific Python org (#7446).
- Use NumPy 2.0 stable to build packages (#7451).
- FIX Use python3 in Meson version script shebang (#7482).
- Refactored tests for skeletonize (#7459).
- Remove unused and deprecated dependency pytest-runner (#7495).
- Exclude imageio 2.35.0 that forces numpy downgrade (#7502).
- Don't test thresholding funcs for Dask compatibility (#7509).
- Fix build dependency (#7510).
- Add sdist check to
spin sdist(#7438). - Reorder items in TODO list (#7519).
- Use
Rotation.from_eulerto compute 3D rotation matrix (#7503). - Update spin (0.12) (#7532).
- Import
lazy_loaderas private symbol in top-level namespaces (#7540). - Set -DNPY_NO_DEPRECATED_API=NPY_1_23_API_VERSION on build (#7538).
- Update up/download artifact version (#7545).
- Don't use deprecated
io.showandio.imshow(#7556). - Hide traceback inside
assert_stacklevel(#7558). - Update pre-commit versions (#7560).
- Drop Python 3.9 support (#7561).
- Update minimum dependencies (SPEC 0) (#7562).
- Remove unused PYX files in io/_plugins (#7557).
- Support Python 3.13 (#7565).
- During deprecation cycles, preserve the value of deprecated parameters that don't have a new parameter as a replacement (#7552).
- Fix missing minigalleries by using full names in directives (#7567).
- Build Python 3.13 wheels (#7571).
- Update TODO (#7573).
- Remove deprecated skeletonize_3d (#7572).
- Remove deprecated gaussian output parameter (#7574).
Contributors
21 authors added to this release (alphabetically):
- @FedericoWZhaw
- @jakirkham
- @michaelbratsch
- Adeyemi Biola (@decorouz)
- Agriya Khetarpal (@agriyakhetarpal)
- Brigitta Sipőcz (@bsipocz)
- Edgar Andrés Margffoy Tuay (@andfoy)
- Egor Panfilov (@soupault)
- Erik Welch (@eriknw)
- Gianluca (@geeanlooca)
- Hayato Ikoma (@hayatoikoma)
- Jarrod Millman (@jarrodmillman)
- João Seródio (@SerodioJ)
- Kushaan Gupta (@kushaangupta)
- Lars Grüter (@lagru)
- Loïc Estève (@lesteve)
- Marianne Corvellec (@mkcor)
- Mark Harfouche (@hmaarrfk)
- Matthew Feickert (@matthewfeickert)
- Piyush Amitabh (@pamitabh)
- Stefan van der Walt (@stefanv)
20 reviewers added to this release (alphabetically):
- @FedericoWZhaw
- @jakirkham
- @michaelbratsch
- Agriya Khetarpal (@agriyakhetarpal)
- Brigitta Sipőcz (@bsipocz)
- Edgar Andrés Margffoy Tuay (@andfoy)
- Egor Panfilov (@soupault)
- Gianluca (@geeanlooca)
- Hayato Ikoma (@hayatoikoma)
- Jarrod Millman (@jarrodmillman)
- João Seródio ([@serod...