The ImageDev library allows easy integration of advanced 2D and 3D image processing and analysis capabilities into imaging software applications. ImageDev is available for Windows and Linux operating systems, in C++, C#, and Python languages.
- Introduction To ImageDev
- System Requirements
- A multi language documentation
- Getting Started with ImageDev Python
- Getting Started with ImageDev C#
- Getting Started with ImageDev C++
Introduction to ImageDev
Specifically designed for application developers, the ImageDev software development toolkit (SDK) allows easy integration of advanced 2D and 3D image processing and analysis capabilities into imaging software applications in various domains such as medical and life sciences, industrial inspection, materials science, and geosciences.ImageDev can process a wide range of image data, including 2D and 3D, grayscale, color and spectral, various bit-depth images, data from X-ray tomography, electron and optical microscopy, MRI, or other image acquisition systems.
ImageDev helps to implement automated image processing and analysis workflows and provides software users with faster, more accurate, and more complete insight into their data.
The ImageDev SDK provides an extensive collection of high-performance parallelized 2D/3D image processing and analysis operators to implement application workflows, including:
- Pre-processing: 2D/3D image cleaning and enhancement
- Segmentation: identification of objects, phases, defects, and regions of interest
- Analysis: data quantification and numerical results
Figure 1. Role of ImageDev in an image analysis workflow (red boxes)
System Requirements
$$ \begin{array}{|l|l|l|} \hline \textbf{} & \textbf{Minimum Requirement} & \textbf{Recommended Requirement} \\ \hline \textbf{Architecture} & \mbox{64-bit} & \mbox{64-bit with SSE, AVX or AVX 2 instruction set} \\ \hline \textbf{Windows Operating System} & \mbox{Windows 10} & \mbox{Windows 10} \\ \hline \textbf{Linux Operating System} & \mbox{Ubuntu 18.04} & \mbox{Ubuntu 20.04} \\ \hline \textbf{CPU} & \mbox{2 GHz processor / 4 logical processors} & \mbox{3 GHz processor / 8 logical processors} \\ \hline \textbf{Memory} & \mbox{4 GB of RAM }& \mbox{2D: 8 GB, 3D: 32 GB} \\ \hline \textbf{Free Space} & \mbox{1 GB }& \mbox{100 GB} \\ \hline \textbf{Windows C++ Compiler} & \mbox{VC 15}& \mbox{VC 16} \\ \hline \textbf{Linux C++ Compiler} & \mbox{GCC 7}& \mbox{GCC 9.X} \\ \hline \textbf{Windows .NET Implementation} & \mbox{.NET Framework 4.6}& \mbox{.NET 6.0} \\ \hline \textbf{Linux .NET Implementation} & \mbox{.NET Core 2.1}& \mbox{.NET 6.0} \\ \hline \textbf{Windows Python Version} & \mbox{Python 3.7}& \mbox{Python 3.10} \\ \hline \textbf{Linux Python Version} & \mbox{Python 3.8}& \mbox{Python 3.10} \\ \hline \end{array} $$ Note: Most ImageDev algorithms are CPU parallelized. However, if the computation time scales well with the CPU clock speed, it does not with the number of threads. Generally, more than 8 threads is useless. For instance, a system with 3.2 GHz and 8 threads processor configuration will run ImageDev algorithms faster than a system with 2.7 GHz and 32 threads.A multi language documentation
ImageDev respects the naming conventions of each language for which it is wrapped. The ImageDev documentation is a common guide for all supported languages. ImageDev algorithm documentation details the syntax in each language through three different tabs for:- The function prototype
- A code snippet in function programming mode
- A code snippet in class programming mode
Figure 2. Multi language programming syntax
In other places, the name of algorithms and parameters are cited with the C++ class naming conventions.