impy

Speed up coding/extending image analysis in Python.

BSD-3-CLAUSE License

Downloads
2.2K
Stars
30
Committers
2
impy - v2.4.3 Latest Release

Published by hanjinliu 3 months ago

What's Changed

Full Changelog: https://github.com/hanjinliu/impy/compare/v2.4.2...v2.4.3

impy - v2.4.2

Published by hanjinliu 5 months ago

What's Changed

Full Changelog: https://github.com/hanjinliu/impy/compare/v2.4.1...v2.4.2

impy - v2.4.1

Published by hanjinliu 7 months ago

Changes

  • Rename rescale to zoom, and add an option to retain the image shape.

Bug fixes

  • Fix saving float32 images to tiff files.
impy - v2.4.0

Published by hanjinliu 7 months ago

What's Changed

Full Changelog: https://github.com/hanjinliu/impy/compare/v2.3.2...v2.4.0

impy - v2.3.2

Published by hanjinliu 12 months ago

  • Fix iradon with odd number shapes.
  • More delayed import to save import time.
impy - v2.3.1

Published by hanjinliu about 1 year ago

  • Fix typing of many functions.
  • Fix pandas subtypes.
impy - v2.3.0

Published by hanjinliu over 1 year ago

Major Changes

  • Adding lazy submodule. Now lazy image reader imread, random array generation random etc. are moved to this submodule.
  • Adding tiled accessor. Tiled image processing methods are now available via this attribute.
impy - v2.2.2

Published by hanjinliu over 1 year ago

Changes

  • All the array classes are now generic.
  • Allow list/tuple input in set_scale.
  • Overload np.diff and np.gradient to allow string axis input.
  • Support sequence input in rescale.

Bug Fixes

  • Fix wrong results of iradon with odd number pixel sizes.
impy - v2.2.1

Published by hanjinliu over 1 year ago

What's New

  • Read "interval_ms" metadata of tiff file.
  • Improved polar_pcc and polar_zncc algorithm.
  • has_nan option in map_coordinates.
  • Experimental support of .npy and .npz IO.
  • Experimental support of reading .nd2 file.
  • Update for skimage=0.20.

Bug Fixes

  • Bug fix in lazy_imread with wildcard.
  • Bug fix in output scale unit after binning.
  • Bug fix in imsave of mrc file.
impy - v2.2.0

Published by hanjinliu almost 2 years ago

New Features

  • New methods in ImgArray

    • min, max, std, sum, mean: Basic reduction with support of string axis.
    • np.cross now supports ImgArray input with string axis.
    • as_rgba: convert an image into a RGBA image.
  • New methods in LazyImgArray

    • radon, iradon: Lazy Radon transformation and its inverse.
    • wiener, lucy: Deconvolution (reverted by dropping support of tiled deconvolution).
  • New class: BigImgArray (see docs).

Changes

  • Support like argument in many array constructors, such as ip.array and ip.random.normal.
  • Return self instead of None for set_scale. Similarly, new method set_axes can be used instead of axes property.
  • Don't use dask.core.Array preparing for the newer dask version.
  • Use da.store to cache LazyImgArray into a memory map.
  • Use generic wrapper and call scipy.fft inside dask FFT.

Bug Fixes

  • ImgArray.iradon
  • ImgArray.transpose
impy - v2.1.3

Published by hanjinliu about 2 years ago

New Methods

  • radon: 2D/3D Radon transformation around an axis pointing any direction.
  • iradon: 2D/3D inverse Radon transformation pointing any direction.
  • sel, isel: An xarray like slicing.
  • inpaint: Inpainting of missing value using "biharmonic" or "mean" method.

Improvements

  • Use scipy.fft instead of np.fft in some places.
  • Print scale unit in ScaleView.

Bug Fixes

  • Could not properly read png and jpg.
  • rolling_ball returned pre-filtered image.
  • smooth_mask did not work with very small values.
impy - v2.1.2

Published by hanjinliu about 2 years ago

New Features

  • ip.aslabel function for Label array creation.
  • Add overwrite guard to imsave function. img.imsave(..., overwrite=False) to avoid unexpected overwrite of images.

Changes

  • The default behavior of unmix is changed. Background intensity will be set to 0 (was minimum value before) by default.

Bug fixes

  • map_coordinates did not work in cupy environment.
  • ImportError with numpy>=1.23.
  • "μ" in scale unit caused error in imsave.
impy - v2.1.1

Published by hanjinliu over 2 years ago

Important Change

  • Axes.replace now does not change axes in-place.
    Instead of img.axes.replace("t", "z"), you'll have to do img.axes = img.axes.replace("t", "z").

New Features

  • Add plugin argument in imshow for visualization with different backends.
  • New mask option in gaussfit.
  • Implemented array covariates. The labels attribute of LabeledArray is now one of the covariates.
  • Initial support of ImageJ-like ROI object as an array covariate. Accordingly, implement ip.roiread function.
  • New chapter "Gallery" in documentation.
  • Add random generator and its API ip.random.default_rng.

Bug Fixes

  • Scale unit was wrong when reading a MRC image.
  • Some filters didn't work for binary images.
  • Try/except in reading OME-TIFF.
impy - v2.1.0

Published by hanjinliu over 2 years ago

Highlights

  • Design of Axes is thoroughly revised. Now img.axes returns Axes object and a Axes object is a list-like sequence of Axis object. For more information see documentation.
    • If a part of the image axes cannot be determined, such as the returned array of np.stack and np.expand_dims, their axes information used to be lost. From this version, only unknown ones are substituted with UndefAxis object and represented as "#".
    • The very strict or very flexible broadcasting rule can be applied. By default, arrays with axes "yx" and "zx" cannot be added even if their shape is the same. On the other hand, ip.broadcast_arrays can wisely reshape arrays with different shapes and axes.
    • Symbol of axis can be more than one letter. To make clearer, axes of arrays returned from some functions are renamed (e.g. "l" and "r" are renamed to "base" and "dim" in hessian_eig).
  • Slicer object for safer axis-targeted-slicing. See documentation.
impy - v2.0.1

Published by hanjinliu over 2 years ago

New Features

  • Initial zarr support. Currently only support reading and writing at local directories in a specific format.
  • Read .map.gz file using mrcfile.
  • Multi-positional drift correction.

Improvements

  • Refactor I/O submodule for better maintainability.
  • Updates in DataList and DataDict (move UserList to ABC).
  • LabeledArray always has labels attribute .
impy - v2.0.0

Published by hanjinliu over 2 years ago

v2.0.0

This new version has a lot of refactoring of arrays.
These changes largely improves code maintenance and usage of impy in other packages.

Changes from v1.x

  • The history attribute and the relevant functionalities are completely removed.
  • The dirpath attribute is removed. To get image source path, use source attribute instead.
  • Methods no longer display progress so that ip.silent is also removed.
  • Many of the custom napari widgets are removed considering the current situation that people favor napari plugins.
impy - v1.26.1

Published by hanjinliu over 2 years ago

New Features

  • Shift correction in real space using ip.zncc_maximum.

Bug Fixes

  • Bug fix in lowpass_filter for cupy.
  • Lock global constants when using ip.SetConst for safer parallel processing.
impy - v1.26.0

Published by hanjinliu over 2 years ago

New Features

  • Whether use numpy or cupy can be switched at any time.
    with ip.use("cupy"):
        out = img.gaussian_filter()
    
  • max_shifts in ip.pcc_maximum now supports float value.
  • Initial support of map_coordinates in ImgArray.

Other changes

  • Bug fix in ip.fsc.
  • Default dask chunking is same as chunks="auto".
impy - v1.25.2

Published by hanjinliu over 2 years ago

Updates

  • max_shifts argument in ip.pcc_maximum. Using this argument you can control the maximum shift of phase cross correlation.
  • The axes arguments in numpy functions are overloaded. Now you can call like np.rot90(img, axes="yx").
  • Cache .shape property.
impy - v1.25.1

Published by hanjinliu almost 3 years ago

Improvements

  • Avoid using functions from dask-image for better performance on multi-dimensional images (gaussian_filter and convolve).
  • Performance improvements on binning using GPU.
  • Set depth correctly in LazyImgArray.