4.13.0
OpenCV 4.13.0
Added 8
- Added CVBenchmark, an unbiased CPU benchmark providing evaluation of different CPUs in real-world computer vision and AI workloads
- Added std::vector length check to Input/OutputArray
- Added 16-bit LUT and corresponding HAL entrypoint
- Added cv::Mat::copyAt for ROI operation
- Added support for parsing null values and backslash in JSON parser in cv::FileStorage
- Added inRange HAL entry point
- Added Iterative Phase Correlation to imgproc module
- Added cv::minEnclosingConvexPolygon
Changed 5
- Modified Input/OutputArray methods to handle std::vector<T> or std::vector<std::vector<T>> in a more accurate way
- Made cuda::GpuMatND compatible with InputArray/OutputArray
- Forced output type for empty matrices where it is defined in API
- Dropped OPENCV_FOR_OPENMP_DYNAMIC_DISABLE environment variable in favor of standard OMP_DYNAMIC
- Enabled fp16 conversions but disabled NEON FP16 arithmetics on Windows for ARM
Fixed 7
- Fixed cv::solveCubic numerical instability via coefficient normalization
- Fixed tempfile race condition on Windows
- Fixed dot product accumulation causing NORM test failures on Windows ARM64
- Fixed missing vec_cvfo on IBM POWER9 due to unavailable VSX float64 conversion
- Fixed in-place flip in HAL for RISC-V RVV
- Fixed overflow in connected components
- Corrected cv::minAreaRect to follow documentation by forcing angle to range [-90, 0)
December, 2025
New Year update for OpenCV 4.x has been released.
-
CVBenchmark
- An unbiased CPU benchmark by OpenCV (https://github.com/opencv/cvbenchmark) that provides an evaluation of different CPUs in real-world computer vision and AI workloads is released.
-
Core module:
- Modified Input/OutputArray methods to handle 'std::vector' or 'std::vector<std::vector>' in more accurate way #28242
- Made
cuda::GpuMatNDcompatible with InputArray/OutputArray #23913 - Forced output type for empty matrices where it's defined in API #27972
- Added
std::vectorlength check Input/OutputArray #27817 - Added 16-bit LUT and corresponding HAL entrypoint #27890, #27911
- Add
cv::Mat::copyAtfor for ROI operation #27318 - Extended JSON support in cv::FileStorage:
nullparsing #27579 and - Added support parsing null in JSON parser in cv::FileStorage #27579 and back slash "" support #27587
- Fixed
cv::solveCubicnumerical instability via coefficient normalization #28117 - Fixed tempfile race condition on Windows #28087
- Restore parallel framework name on failure attempt #27802
- Dropped OPENCV_FOR_OPENMP_DYNAMIC_DISABLE environment variable in favor of standard OMP_DYNAMIC #28122
- Enabled fp16 conversions, but disabled NEON FP16 arithmetics on Windows for ARM #27897
- Fixed dot product accumulation causing NORM test failures on Windows ARM64 #28211
- Added several performance optimizations for Windows on ARM: #27575, #27596
- Fixed missing vec_cvfo on IBM POWER9 due to unavailable VSX float64 conversion #27990
- Fix in-place flip in HAL for RISC-V RVV #28180
- Added inRange HAL entry point #27854
- Disabled IPP with AVX512 in cv::compare because of performance regression #28311
-
Imgproc module:
- Added Iterative Phase Correlation #28146, paper
- Added
cv::minEnclosingConvexPolygon#27369 - Improved near-zero convexity handling in
cv::convexHull#28043 - Kept
cv::convexHulloutput indices monotone if possible #28163 - Fixed overflow in connected components #27582
- Corrected
cv::minAreaRectto follow documentation (force angle to range [-90, 0)) #28051. Versions of OpenCV with different angle range are 4.5.1-4.12.0. Expected angle range documented first time in 4.12.0 release. - Increased minAreaRect accuracy with doubles #28149
- Added
cv::CLAHE::BitShiftoption #28014 - Fixed
cv::minEnclosingCircle#27904, #27914 - Fixed standard
cv::HoughLinesoutput shift for rho. #27992 - Fixed LINE_4/LINE_8 swap in
cv::drawContours#28088 - Fixed bug in approxPolyDP: calculate distance to a segment, not to a line #28119
- Various performance optimizations for Gaussian Blur, including AVX512 #27795 and blur #27822, bilateralFilter #27433.
- Added CV_SIMD_SCALABLE branch to pointSetBoundingRect #27479
- Added Canny, Scharr and Sobel for riscv-rvv hal #27378
- Optimized
ThickLine()for distant points #27366 - Fixed heap-buffer-overflow in stackBlur #28233 #28250
- Fixed the out-of-bounds read in cv::bilateralFilter for 32f images #28259
- Fixed memory leak in ipp_warp function #27532
- Set limitation to IPP Bilateral Filter tiles number to avoid too small tiles #27720
- Fixed incorrect implementation of multi-threaded call for warp perspective in IPP HAL #27903
- Added stateless HAL for filters and morphology #28208
-
Imgcodecs module:
- Extended metadata support in Jpeg (ICCP and XMP) #27583, PNG and WebP #27503, cICP field in PNG #27741, AVIF (XMP) #27506, #28072.
- Added OpenEXR multispectral read/write support #27485
- Added strict validation for encoding parameters #27621, #27769
- Relaxed decoding size limit to over 1 GiB for several formats #27811, #27976
- Added
IMWRITE_PNG_ZLIBBUFFER_SIZEoption support for PNG #27551, #27615 - Fixed memory leak in WebP backend #27849
- Added workaround for image flipping bug in older GDAL FITS drivers #27919
- Added support for 32bpp BMP with BI_BITFIELDS #27559
- Fixed several overflow and out-of-bound access issues in BMP #28040, #27847
- Fixed potential crashes in PNG found by fuzzer. Namely 429429085, 429645379, 430091585 #27529
- Fixed several potential overflows and error handling mistakes in PNG #28249, #28196, 27750
- Fixed alpha handling for blending in PNG format #27981
- Set
matrixCoefficientstoUNSPECIFIEDfor monochrome images in AVIF #28065 - Added safety checks for AVIF decoder and encoder #28200
-
VideoIO module:
- Added option to open camera device by index through FFmpeg #27841, Added FFmpeg 8.0 support #27691, #27746
- Extended Orbbec SDK support: added timestamps #27610, options for custom fps and resolution #27629, camera distortion coefficients as API #27663
- Extended Aravis SDK support: allowed system-wide installation of SDK #28090, set default pixel format for cameras with unsupported format #28086
- Added macOS support for Orbbec Gemini330 camera #27930
- Fixed frame seeking with negative DTS values in FFMPEG backend #27878
- Fixed CvCapture_FFMPEG::setProperty(CAP_PROP_POS_*) followed by getProperty #27523
- Added Raspberry Pi 4 and 5 V4L2 Stateless HEVC Hardware Acceleration with FFmpeg #27453
- Optimized FFmpeg VideoCapture with swscale threads option #27755
- Fix return code from CvVideoWriter_FFMPEG::writeFrame() when encapsulating ##27737
- Added OPENCV_FFMPEG_SKIP_LOG_CALLBACK to preserve custom FFmpeg logging #27864
- Get code to compile without FFMPEG's libavdevice #27948
- catch _com_error exceptions to suppress debugger flooding #28073
- Fixed picture_sw object leak in ffmpeg backend with hardware codecs. #28283
- videoio(dshow): Fix incorrect mapping for White Balance Temperature (
CAP_PROP_WB_TEMPERATURE) property #28202 - Fixes a crash on iOS when calling
VideoWriter::release()in OpenCV 4.12.0 #28173.
-
Features2D module:
- Fixed ORB inconsistency for masks with values differs from 255 #26366
- Fixed pointer arithmetic in BRISK corner traversal #28091
- Added heuristic to allocate buffer for FAST features depending on input image resolution #27657
- Optimized AGAST for Windows on ARM #27776
- Added FAST to RISC-V RVV HAL #27391
-
Objdetect module:
- Added pixel-based confidence in ArUco marker detection #23190
- Improved multiple QR codes detection with QRCodeDetector::detectAndDecodeMulti #27787
- Fixed to prevent QR code decoding from throwing on degenerate source points #27837
- Fix QRCodeDetector::detectAndDecode crash in case of inconsistent detection #27877
- Remove floating point arithmetic from angle computation in QR codes #28157
- Speedup ChArUco by avoiding temporary copies #27820 …