Release notes

Version 1.2.0

New features

added option to disable OpenMP (#4)

update becnhmarks (#142)

transform.resize threaded version (#143)

example for affine warp transform (#151)

transform.warp threaded version (#139)

Multi-threading with OpenMP for some statements in own_FilterEdge (#2)

re-implement _mask_filter_results (#3)

Commits notes

Multi-threading with OpenMP for some statements in own_FilterEdge (#2)

  • Multi-threading with OpenMP for some statements in own_FilterEdge

  • added USE_OPENMP directive

  • Multi-threading with OpenMP for some statements in own_FilterEdge function, that is a backend for scikit-ipp edge filters

  • added external multi-threading with OpenMP for some part of code

re-implement _mask_filter_results (#3)

  • implemented native own_mask_filter_results

  • template ippiSet_<mode>_C1R: added ippiSet_C1R adpater

added option to disable OpenMP (#4)

  • added option to disable OpenMP

  • added using USE_OPENMP env variable

  • disabled using OpenMP for osx

Create CODE_OF_CONDUCT.md

update becnhmarks (#142)

  • added test_benchmarks.py

  • corrected test suits inputs and settings

  • updated benchmarks/readme.md:

update own_resize.h (#159)

added missed include

refactor: own_resize.c (#156)

  • removed extra statement

update own_warp.c and own_warp.h (#149)

  • update own_warp.h/.c

  • removed unused own_RotateCoeffs, own_RotateCoeffs

  • renamed number_of_threads to max_num_threads

  • added setting max_num_threads =1 for small images

  • added case when num_threads == 1, that doesn’t uses openmp for initializing single thread

  • removed unused variable srcOffset

example for affine warp transform (#151)

  • added example for affine warp transform: plot_geometric.py

update transform.pyx (#150)

  • implemented __rer__ and __str__ for AffineTransform

transform.resize threaded version (#143)

  • added parallel verision of own_Resize

  • update resize func

  • added ippiResizeGetSrcRoi_<mod>

  • added ippiResizeGetBorderSize_<mod>

  • update own_Resize

  • refactor own_resize.h /own_resize.c

  • update docstrings

  • Update meta.yaml

  • using num_threads instdead of omp_set_num_threads

  • added case for when number of threads is 1

fix own_Warp threads statuses init (#145)

  • fix warp thread status init

update setup.py (#147)

fixed ignoring flags for openmp [win]

bump up numpy version (#146)

Update meta.yaml (#144)

  • fix buildnumber setting

feat: transform.warp threaded version (#139)

  • added openmp dependecy

  • update warp and rotate backend funcs

  • implemented multithreaded transfrom.warp

  • update own_warp.c

  • update test suits

  • update _transform.pxd

  • update docsting for

update version (#140)

incremented to dev version 1.2.0dev

removed not used dependecy (#138)

  • removed scipy and scikit-image since they are not used in tests

Version 1.1.0

API changes

  • extend skipp.filters.gaussian filter supported dtypes(uint8, uint16, int16), update docstring (#119)

  • extend skipp.filters.laplace filter supported dtypes, more supported dtypes(uint8, uint16, int16) (#118)

  • extend skipp.transform.resize interpolation methods support [Lanczos and Super] (#135)

  • extend skipp.transform.resize function params, added num_lobes param, that is used in conjunction with order=6 (Lanczos) (#135)

Bug fixes

  • skipp.filters.median filter bug with default mode of selem=None (#117)

  • skipp.transform.resize function bug with cubic interpolation and update test suits (#128)

  • skipp.transform.resize problems with resized image shape (#130)

  • skipp.transform.rotate problems related with resized images center (#130)

  • skipp.transfrom.warp bug for all provided non-default value of mode param (#130), (#123)

New features

  • added/update docstrings for all methods and structures (#108) and pep8 align docstrings - numpy style (#110). Also (#122), (#126), (#130)

  • update README.md (#111), (#109): new modules were added.

  • created scikit-ipp documentation by using sphinx (#89)

  • extend laplace filter supported dtypes (#118)

  • package was checked for MacOS and was added MacOS support in documentation (#121)

  • extended setup metadata (#120)

  • update gaussian filter test suits (#131)

  • re-implement edge filters tests (#132)

  • added inverse, __add__ methods to AffineTransform class (#130)

  • re-implemented transform.rotate function (#130)

  • extend skipp.transform.resize interpolation methods support [Lanczos and Super] (#135)

  • update processing mode for transform funcs - make them as is in scikit-image (numpy.pad). Created __get_numpy_pad_IppBorderType for given boundary mode processing (#123)

Refactoring

  • fix legal names [dtypes.c/.h] (#112)

  • separate similarity tests from scikit-ipp own functional/unit tests (#113)

  • removed skimage dependence from skipp own tests and re-implemented test suits without skimage use (#113)

  • removed outdated, unused src file own_morphology_tl.c (#133)

Commits notes

update README.md (#109)

  • Getting started

  • Prerequisites

  • Building scikit-ipp using conda-build

  • Building documentation for scikit-ipp

update docstrings (#108)

docstrings for:

  • filters: gaussian, median, laplace, prewitt, prewitt_h, prewitt_v, sobel, sobel_v, sobel_h

  • morphology: dilation, erosion

  • transfrom: warp, rotate, resize, AffineTransform

Docstrings for all methods were added/updated.

update README.md (#111)

  • added documentations web link

fix legal names [dtypes.c/.h] (#112)

refactor scikit-ipp own tests (#113)

  • separate similarity tests from scikit-ipp own functional/unit tests

  • removed skimage dependence from skipp own tests and re-implemented test suits without skimage use

pep8 align docstrings - numpy style (#110)

  • pep8 align docstrings morphology funcs - numpy style

  • pep8 align docstrings filters funcs - numpy style

  • pep8 align docstrings tranform funcs - numpy style

scikit-ipp docs initial (#89)

creating scikit-ipp documentation by using sphinx

  • updated main README.md

  • added configuration conf.py

  • Added: Makefile, make.bat, release_notes.rst, index.rst, installing.rst, license.rst, contents.rst, contribute.rst, api.rst, examples.rst

  • some misc. updates

fix median filter (#117)

  • fix median filter bug with default mode of selem=None

extend laplace filter supported dtypes (#118)

  • extended laplace filter supported dtypes: uint8, uint16, int16 and float32 [was only float32]

  • added test_laplace_preserve_dtype test suit

  • update laplace filter docstring

update gaussian filter docstring (#119)

  • update gaussian filter docstring - added supported dtypes, removed outdated notes

added MacOS support in documentation (#121)

  • added MacOS support in documentation

update setup metadata (#120)

  • update setup.py

  • extended metadata

update Gaussian filter docstrings (#122)

  • correct supported modes list

update processing boundary mode (#123)

  • update processing mode for transform funcs - make them as is in scikit-image (numpy.pad)

  • created __get_numpy_pad_IppBorderType for given boundary mode processing

  • update docstrings for __get_IppBorderType

  • update docstrings for transform functions: update info about supported modes

  • test suits test_transform were updated - all checks passed

update resize func docstrings (#126)

fixed skipp.transform.resize function with cubic interpolation and update test suits (#128)

  • fix transfrom.resize function when interpolation method is cubic

  • rewrite test suits for transform.resize

    • added test_resize2d test suit

    • added parameterized test_resize_without_antialiasing and test_resize_with_antialiasing test suits

update gaussian filter test suits (#131)

  • update and enabled test_gaussian_preserve_dtype test suit

  • removed outdated test suit test_gaussian_preserve_output

re-implement edge filters tests (#132)

  • re-implement test_sobel.py and test_prewitt.py

update transform module (#130)

  • update AffineTransform class

    • added inverse method

    • added test suit test_AffineTransform_inverse

    • implemented __add__ method for AffineTransform

    • added test_invalid_input test suit

    • added test_affine_init test suit

  • update transform.warp transform func

  • added test_warp_matrix and test_warp_tform test suits

  • enabled test_rotate, test_rotate_resize, test_rotate_center, test_rotate_resize_center, test_rotate_resize_90 test suits

  • re-implemented transform.rotate function

  • update transform.rotate function docstrings

  • removed unused own_RotateCoeffs and own_GetAffineDstSize from tranform.pxd

refactor: removed unused own_morphology_tl.c (#133)

  • removed outdated, unused src file own_morphology_tl.c

extend skipp.transform.resize interpolation methods support [Lanczos and Super] (#135)

  • added Lanczos, Super interpolation method to __get_IppiInterpolationType function

  • update transform.resize function

  • added ippiResizeLanczos, that is adapter for ippiResizeLanczos_<mode> funcs

  • added ippiResizeLanczosInit, that is adapter for ippiResizeLanczosInit_<mode> funcs

  • added ippiResizeSuper, that is adapter for ippiResizeSuper_<mode> funcs

  • added ippiResizeSuperInit, that is adapter for ippiResizeSuperInit_<mode> funcs

  • updated ippiResize function

  • updated own_Resize function

  • update transform.resize function:

    • update docstrings for transform.resize function

    • extended transform.resize function params, added `num_lobes param, that is used in conjunction with order=6 (Lanczos)

  • added tests suits for check:

    • added test_resize_super for checking transform.resize with super interpolation method

    • update parameterized test_resize_without_antialiasing test suit for checking transform.resize with Lanczos interpolation method

Version 1.0.0

New Features

Gaussian filter

Median filter

Laplace filter

  • skipp.filters.laplace. Find the edges of an image using the Laplace operator.

  • This function uses Intel(R) Integrated Performance Primitives (Intel(R) IPP) funcs: ippiFilterBorder_<mod> on the backend, that filters an image using a rectangular filter with coeffs (Laplace (3x3)) [[0 -1 0], [-1 4 -1], [0 -1 0]] for implementing laplace filtering as is in scikit-image, see: FilterBorder on https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/

Sobel filter

Horizontal Sobel filter

Vertical Sobel filter

Prewitt filter

Horizontal Prewitt filter

Vertical Prewitt filter

Morphological dilation

  • skipp.morphology.dilation. Morphological dilation sets a pixel at (i,j) to the maximum over all pixels in the neighborhood centered at (i,j). Dilation enlarges bright regions and shrinks dark regions.

  • This function uses Intel(R) Integrated Performance Primitives (Intel(R) IPP) funcs: ippiDilateBorder_<mod> on the backend, that performs dilation of an image, see: DilateBorder on https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/

Morphological erosion

  • skipp.morphology.erosion. Return greyscale morphological erosion of an image. Morphological erosion sets a pixel at (i,j) to the minimum over all pixels in the neighborhood centered at (i,j). Erosion shrinks bright regions and enlarges dark regions.

  • This function uses Intel(R) Integrated Performance Primitives (Intel(R) IPP) funcs: ippiErodeBorder_<mod> on the backend, that performs dilation of an image, see: ErodeBorder on https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/

2D affine transformation object

  • skipp.transform.AffineTransform class. Contains homogeneous transformation matrix.

Image warping

  • skipp.transform.warp. Warp an image according to a given coordinate transformation.

  • This function uses Intel(R) Integrated Performance Primitives (Intel(R) IPP) funcs: ippiWarpAffineLinear_<mod>, ippiWarpAffineNearest_<mod> and ippiWarpAffineCubic_<mod> on the backend, that performs warp affine transformation of an image using the linear, nearest neighbor or cubic interpolation method, see: WarpAffineLinear, WarpAffineCubic, WarpAffineNearest on https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/

Image rotation

  • skipp.transform.rotate. Rotate image by a certain angle around its center.

  • This function uses skipp.transform.warp on the backend, and skipp.transform.warp in turn uses Intel(R) Integrated Performance Primitives (Intel(R) IPP) funcs: ippiWarpAffineLinear_<mod>, ippiWarpAffineNearest_<mod> and ippiWarpAffineCubic_<mod> on the backend, that performs warp affine transformation of an image using the linear, nearest neighbor or cubic interpolation method, see: WarpAffineLinear, WarpAffineCubic, WarpAffineNearest on https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/

Image resizing

  • skipp.transform.resize. Resize image to match a certain size.

  • This function uses Intel(R) Integrated Performance Primitives (Intel(R) IPP) funcs on the backend: ippiResizeNearest_<mod>, ippiResizeLinear_<mod>, ippiResizeCubic_<mod>, ippiResizeLanczos_<mod>, ippiResizeSuper_<mod> that changes an image size using nearest neighbor, linear, cubic, Lanczos or super interpolation method, and ippiResizeAntialiasing_<mod>, that changes an image size using using the linear and cubic interpolation method with antialiasing, see: ResizeNearest, ResizeLinear, ResizeCubic, ResizeLanczos, ResizeSuper,`ResizeAntialiasing` on https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/