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, …
  • Image segmentation using Deep Learning, interactive training module,
  • Object classification using Deep Learning, interactive training module,
  • 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.

Deep Learning / Smart Segmentation and Smart Classification

IPSDK Library sum up

  • Innovative and revolutionary learning tool
  • Fast and user-friendly
  • Direct visualization of learning results
  • 2D and 3D features

 

  • Smart Segmentation: pixel classification
  • Smart Classification: object classification
  • Random Forest Algorithm

 

deeplearning

DEEP LEARNING MODULES

IPSDK provides two innovative and revolutionary modules based on Deep Learning techniques. Even if they are extremely sophisticated in terms of technology, these modules have been designed to be user-friendly for all IPSDK users, even for beginners.

IPSDK offers the possibility to generate models through learning within the IPSDK Explorer Graphical User Interface (GUI) using easy-to-use interactive features. These models can then be applied from the GUI or within scripts to process massive amounts of data in a very short timeframe.

 

SMART SEGMENTATION
make image processing accessible to everyone

After a short and user-friendly segmentation learning step performed by the user, IPSDK Deep Learning tool enables to quickly and automatically define image pixel classification rules.

ReactivIP deeplearning Segmentation
ReactivIPDeep Learning Segmentation After

 

SMART CLASSIFICATION
classify segmented objects automatically.

After a short and user-friendly learning step to assist the user to classify certain labels or objects, IPSDK Deep Learning tool performs a fast and automatic rule definition to classify objects in image sets based on distinguishing features.

ReactivIP Deep Learning Smart Classification

Implemented using IPSDK optimized library and Random Forest’s algorithm, these features are the fastest and most easy to use on the market. These full Deep Learning features can be used on both 2D and 3D images.

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.