Image processing

Available in Python and C++, IPSDK offers a complete range of image processing features to process your datasets.

IPSDK’s parallelized functions allow you to significantly accelerate your applications’ speed.

Image processing SDK

IPSDK Library sum up

  • Windows and Linux
  • Python and C++
  • High Performance Computation (Multi-threading, distributed computation, …)
  • Big Data support
  • Compatible with many solutions in the market
  • Batch Processing
  • Exhaustive and rigorous documentation with examples

IPSDK offers a comprehensive and optimized range of functionalities for 2D and 3D image processing.

Available in C ++ and Python, these IPSDK functionalities can be used either individually or combined together to be used as scripts and batch-processing.

The implementation of IPSDK features is compliant to state of the art. All functions are parallelized to maximize all your workstation cores capabilities. On the other hand, IPSDK automatically adjusts itself to your processors architecture and capabilities. As a result, IPSDK supports SSE2, AVX, AVX2 and even AVX512 accelerators (if available).

IPSDK reduces significantly computational time : some treatments will take down to few minutes when it could take several hours with other software in the market. Hereafter is a comparative graphs of processing times on datasets from 10 to 100 Mb. In X-axis, the dataset size is displayed, in Y-axis the processing time. These graphs highlight the significant IPSDK time saving when compared to other solutions.

IPSDK can be called from a large number of market image analysis solutions such as : Avizo/Amira, Dragonfly, ITK / VTK, Matlab, …      This connection can be used either through a Python import or through a C++ coding.

IPSDK offers an exhaustive and rigorous documentation of all image processing functions. In addition, all the commands are accompanied by a visual to understand the function interest and an example of coding in Python and C ++.

List of available processing features (non exhaustive)

  • Image edition: Creation, conversion, random image, crop, …
  • Binarization: Manual, automatic (otsu, kapur, iso, …), tophat,
  • Arithmetic: Addition, subtraction, standardization, background correction, …
  • Equalization of histograms,
  • Logical operations: OR, AND, NOT, …
  • Image stack combination: Min, max, mean, stddev, max gradient,…
  • Morphology: Erosion, dilation, opening, closing, reconstruction, filling holes, removing objects at the edge, …
  • Global statistical measurement: Entropy, variance, tortuosity, inertia,…
  • Morphological filtering,
  • Exact distance map, labeling,
  • Separation (watershed),
  • Linear filters: medium, Gaussian, Gaussian gradient, convolution with any type of kernel,
  • Adaptive filters: Bilateral, unsharp mask, …
  • Non-linear filters: Median, delieneate, deblur, anisotropy diffusion, Non local Means, bilateral,
  • Fourier,
  • Filtering periodic noises,
  • Border detection: Gradient,
  • Laplacian, isosurface, …
  • Extracting polygonal contours for 2D objects,
  • Extracting mesh-type contours for 3D objects,
  • Correlation, transformed from Hough, …
  • Classification: K-means, Masked K-means, Karhunen Loeve,…
  • Registration, extraction of point of interest, similarity, homography, …
  • Individual analysis (object by object)
  • Volume, surface, Feret diameters, length, thickness,
  • Moments of inertia,
  • Encompassing rectangle (oriented or not),
  • Contact surface, distance to nearest neighbor, …
  • Orientation
  • Measure of form, sphericity, eccentricity, convex hull, …
  • Intensity measurements: min, max, average, standard deviation, …
  • Filtering from mathematical formulas on these measurements,
  • Histogram.

Example of IPSDK Python script with the corresponding image results

Graphical User Interface

IPSDK Explorer sum up

  • All IPSDK 2D/3D library features
  • Open source editable GUI
  • Direct visualization of function and parameters results
  • Possibility to fine-tune each treatment
  • Automatic Python scripts generation
  • Direct access to the documentation
  • Manual Retouch

 

IPSDK Explorer is a GUI assistant provided with IPSDK distribution and allows to use it without any coding knowledge. The complete image processing features are available through this Friendly and Easy to use interface.

IPSDK Explorer displays the algorithms results directly in its Viewer. It permits to directly define the best and most relevant feature to be used and to finely define the best associated parameters.

IPSDK Explorer allows to design scripts and, once a relevant result is obtained, to generate the equivalent Python code.

Being Open-source, IPSDK Explorer GUI can be modified, enhanced… either by contacting Reactiv’IP or directly by any user. It can be also done directly from the Python editor console with adding some buttons, parameters…

As it is implemented in Python, IPSDK Explorer is an open and adaptive tool, it can be easily connected to third party software by using only the generated scripts or using the Graphical User Interface.

IPSDK Explorer also proposes to manually retouch element detections : it is now possible to define directly on the images the elements or Region of interest to be analyzed, to correct if needed automatic element detection : add, remove, combine, separate elements.

Distribution Package

IPSDK Runtime sum up

  • Batch / Script processing
  • Accurate, reliable, reproductible and traceable workflows
  • Cost saving
  • Distribute pre-built workflows
  • Internal or external distribution

IPSDK allows to distribute and share scripts on different Workstation than the one that was used by the script developer.

For several type of applications, having access to unitary algorithms may not be useful or relevant. Those cases can be :

  • computation on a powerful Workstation
  • several simultaneous computations on cluster nodes
  • scripts embedded on a 3rd party application
  • InLine control with no human interaction…

To cover those cases, Reactiv’IP proposes IPSDK Runtime. This version displays end-users pre-built workflows designed by development team.

The distribution can be either for internal (Imaging platform, Computation Center, …) or for external needs (application distribution, OEM, …)

It is the right way to propose all the computation performances of IPSDK and to ensure accurate, reliable, reproductible and traceable results.

IPSDK Runtime is the perfect choice for internal or external distribution as it provides the best balance between performance and cost saving.