opencv 4.13.0

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

  • Core module:

    • Modified Input/OutputArray methods to handle 'std::vector' or 'std::vector<std::vector>' in more accurate way #28242
    • Made cuda::GpuMatND compatible with InputArray/OutputArray #23913
    • Forced output type for empty matrices where it's defined in API #27972
    • Added std::vector length check Input/OutputArray #27817
    • Added 16-bit LUT and corresponding HAL entrypoint #27890, #27911
    • Add cv::Mat::copyAt for for ROI operation #27318
    • Extended JSON support in cv::FileStorage: null parsing #27579 and
    • Added support parsing null in JSON parser in cv::FileStorage #27579 and back slash "" support #27587
    • Fixed cv::solveCubic numerical 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::convexHull output indices monotone if possible #28163
    • Fixed overflow in connected components #27582
    • Corrected cv::minAreaRect to 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::BitShift option #28014
    • Fixed cv::minEnclosingCircle #27904, #27914
    • Fixed standard cv::HoughLines output 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_SIZE option 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 matrixCoefficients to UNSPECIFIED for 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
View original

Upgraded? How did it go?

Discussion