Version 1.2.0
Breaking changes
- Removed the dynamic loader interface.
Features
- Added HDR imaging and tonemapping support.
- Introduced an experimental Data Matrix code reader.
- Implemented support for new pixel formats, including:
Improvements
- Moved memory ownership from ids_peak_ipl to ids_peak_icv to improve memory management.
- Changed the minimum calibration plate pattern size to 5x5 for improved robustness.
- Updated the Python package name to follow PEP conventions (kebab-case).
Bug Fixes
- Fixed an issue where image undistortion could result in images that were too small under certain distortion coefficients.
- Ensured a meaningful exception is thrown when attempting to write an empty point cloud.
- Fixed regressions caused by pixel format changes, including updates to the renamed
PixelFormatInfo::GetChannelIndex() function.
- Ensured image metadata is retained after move operations.
- Fixed an issue where RGB10 and RGB12 TIFF images could be saved but not loaded.
Documentation
- Added instructions for uploading calibration parameters to the camera in the camera calibration guide.
- Added serialization code snippets to the documentation.
- Added missing “since” version annotations to API documentation.
Version 1.1.0
Features
- Added a Python interface (see here for more information).
- Implemented image pipeline in Python (see here for more information).
- Added automatic type-checking mechanisms, external type-checker support, and mypy integration.
- Added support for undistortion considering regions. (see more information for Python or for C++).
- Add convertPixelFormatWithFactor to apply multiplication factor to image pixelwise while converting pixel format (see more information for Python or for C++).
- Add ROI (Region Of Interest) to image metadata and use it in undistortion to make it possible to also undistort images with different ROI than used during calibration.
- Move experimental features to stable:
- Camera calibration: From now on, cameras might be calibrated using a supported calibration plate, which then results in intrinsic and extrinsic parameters. See Camera Calibration for more information
- Undistortion: Added support for image undistortion using camera calibration results. This corrects lens distortion effects for more accurate image representation. See Undistortion for more information.
- Workspace calibration: The workspace calibration calculates the extrinsic parameters based on a single image.
- PointCloud: A point cloud is a set of data points defined in a three-dimensional (3D) coordinate system.
- Median Filter: The MedianFilter class applies a median filter to reduce noise in an image. It replaces each pixel value with the median value of its neighboring pixels, based on a defined kernel size.
- Painter: Can be used to paint simple things (e.g. a region) on images.
- RegionSelector: Can be used to filter regions by different criteria.
- Threshold: Can be used to apply a threshold to an image. See Thresholding and Segmentation for more information.
- Add support for pixel format conversion from all bayer formats to format RGB10p32 (see here for more information).
Improvements
- When saving a point cloud existing files are now overridden and no exception occurs.
- Revisit binning/decimation implementation Replaced the binning/decimation function that internally allocates memory by a function with a previously allocated output image. The new implementation will also use multi threading and is faster now
- Remove nodiscard macro and use the one from ids_peak_common.
Bug Fixes
- Fix memory leak when creating regions or calibration results.
- Change output of peak::icv::Serializer::Write to be empty, when the archive itself is empty Previously the functions output was just an empty json object.
- Change peak::pipeline::detail::DownsamplingModule::ResetToDefault to not disable the module upon invocation.
- Added validation to ensure that the origin of a calibration plate cannot be placed outside the plate’s defined coordinate system.
- Fix a
-Wundef warning when checking _MSVC_LANG before checking if it's defined.
Version 1.0.0
The IDS Industrial Computer Vision Library (ICV) is a modern C++ library for high-performance image processing in industrial vision applications. It builds on the foundation of the IDS Image Processing Library (IPL) and is designed to expand its capabilities with a modern architecture, improved performance, and greater flexibility.
The ICV library provides a configurable, modular image processing pipeline that converts raw sensor data into high-quality, ready-to-use images. The pipeline includes stages such as raw data unpacking, sensor artifact correction, debayering and format conversion. When combined with the IDS Auto Feature Library, the pipeline also supports advanced auto features like brightness, white balance, and focus.
The IPL will continue to be supported for existing projects, while the ICV evolves to cover and extend its feature set — making the ICV the recommended choice for new developments.