List of changes in each version
v1.9
v1.8
- Improve the performance of the histogram
- Add method PixelFormat::BayerPattern() to receive the corresponding BayerPattern.
- Fix compilation error with dynamic loader.
- Add RGB/BGR(A) to mono converter
- Improve performance of mirror and rotate inplace functions
- Add reference counting to classes, so they can be shallow copied
v1.7
- Add a EdgeEnhancement implementation
- Changed the dotnet bindings to use .NET Standard 2.0.
- Adjust move constructor and move assignment to not call the internal destruct function
- Add new methods [HotpixelCorrection::CorrectInPlace] and [HotpixelCorrection::CorrectAdaptiveInPlace] for in place hotpixel correction
- Add new methods [Image::Scale], [Image::ScaleInto] and [Image::Crop] for image processing
- Add multithreading support for detecting hotpixel within a given image.
- Add SSE2/AVX2 implementation for a Bayer10p/Mono10p to Bayer10/Mono10 decoder and Bayer12p/Mono12p to Bayer12/Mono12 decoder
- Optimized 8/10/12 bit BayerRG and BayerGR debayering. Added optimized 8/10/12 bit BayerGB and BayerBG debayering
- Optimization of image rotation and image mirroring
- Changed the python bindings to release the GIL for long-running functions
- Add NEON implementation for debayering and color correction
- Fix MSVC 2015 unable to compile some of the provided header implementations
- Fix unnecessary buffer copy in [ImageConverter::Convert] when passing an output buffer.
- Fix some functions of the binding not working correctly (notably Sharpness, VideoWriter and Histogram)
- Fix Histogram not working correctly
- Breaking changes
- Renamed the member functions of the Range class
v1.6
- Add a signed .NET binding library for strong-named assemblies support
- Add saturation feature to ColorCorrector
- Add the Decimation algorithm for mono, bayer and some color images
- Add new operators for comparison to the Image class
- Add a Sharpness implementation which can be used to measure the sharpness of images
- Add multithreading support to the library and use it for some functions e.g. Sharpness
- Add method Image::Timestamp to receive the corresponding timestamp.
- Remove the RGB10p32 format from Binning as it was not actually supported
- Improve performance of 10/12 bit BayerRG and BayerGR debayering (x86 systems with SSE/AVX)
- Improve performance of 10/12 bit color correction (x86 systems with SSE/AVX)
- Fix HotpixelCorrection functions crashing if image dimension is smaller than 3 pixels for bayer images or smaller than 2 pixels for mono images
- Fix images converted with Image::ConvertTo were actually converted inplace, when a destination image was given
- Fix images converted with Image::ConvertTo were not set to the correct alpha value, when channels were expanded.
- Fix wrong file size in the file header when writing bmp files
- Breaking changes
v1.5
- Add a VideoWriter implementation which can be used to save images in an avi container encoded as mjpeg
v1.4
- Add new function ImageConverter::PreAllocateConversion which can be used to pre-allocate the internal buffer pools of the converter in order to save time on the first conversion
- Add new function Binning::ExpectedOutputSize which can be used to calculate the output size after binning of a given input size and pixelformat
- New CMake packages for both windows and linux, which now take care of adding their respective include directories
- Add new CMake function ids_peak_ipl_deploy to take care of copying dependent files(i.e. DLL's) into your targets output directory
- Add corresponding function ids_peak_ipl_dotnet_deploy when using dotnet
- Add the Binning algorithm for mono, bayer, some color and RGB10p32 images
- Fix HotpixelCorrection algorithms not working on the borders of an image
- Fix ImageWriter saving 10 Bit formats, although not supported, resulting in a broken bmp file with wrong colors
- Fix an issue with user defined hotpixels
- Fix images converted with Image::ConvertTo not freed when leaving the scope
- Fix images cloned with Image::Clone not freed when leaving the scope
- Fix images converted with Image::ConvertTo taking up 5 times more memory than necessary
- Fix images cloned with Image::Clone taking up 5 times more memory than necessary
- Breaking changes
- Due to previously mentioned fixes, the calls to Image::ConvertTo and Image::Clone are now allocating memory on every use, causing additional overhead and will take more time. Users are advised to construct an ImageConverter which keeps internal memory pools.
v1.3.2
v1.3.1
- Fix issues regarding peak_dynamic_loader.h
- Fix problem with ImageTransformer::RotateInPlace throwing exception when passing raw image buffers
- Add color correction support for pixel formats RGB10p32, RGB10 and RGB12
- Add gamma support for RGB10p32
- Fix breaking change: Add backwards compatibility for stdcall symbols
v1.3
v1.2
- Add Python binding
- Add methods for image rotation in 90° steps
- Improve performance of BayerGR debayering
- Rework internal buffer management to more efficiently free unused buffers
- Fix possible memory leaks in PNG and JPEG related functions
- Fix PNG IO functions for 10-bit and 12-bit pixel formats
- Improve stability and error safety
- Improve Doxygen documentation
- Breaking changes
v1.1
- Add .NET binding
- Add ColorCorrector algorithm
- Major performance improvement for various algorithms
- Breaking changes
- Various Bugfixes
v1.0