opencv 4.14.0

4.14.0

OpenCV 4.14.0

Added 7
  • AVX VNNI support
  • NEON implementation for rotate function
  • platform-specific SIMD for cv::reduce REDUCE_SUM
  • safe handling of compressed file level extension (.gz[0-9])
  • SIMD intrinsics support for norm_mask function
  • ARMPL support for DFT Function
  • OpenCL kernel for UMat::diag to avoid aliasing races
Changed 4
  • Improved precision of RotatedRect::points
  • Revert Disable IPP with AVX512 in cv::compare because of performance regression
  • Optimized flip Horizontal
  • Extended AutoBuffer to mimic std::vector
Fixed 9
  • copyTo on empty fixed-type matrices
  • UB in cv::error when breakOnError set to true
  • cv::mul overflow for U16 type
  • UBSan function pointer type mismatch in countNonZero
  • heap-buffer-overflow in YAML parseKey for empty keys
  • meanStdDev on Windows for ARM

July, 2026

  • Core module:

    • Fixed copyTo on empty fixed-type matrices #28371
    • Improved precision of RotatedRect::points #28381
    • Fixed UB in cv::error when breakOnError set to true #28446
    • Fixed cv::mul overflow for U16 type #28579
    • Revert "Disable IPP with AVX512 in cv::compare because of performance regression" #28587
    • Fixed UBSan function pointer type mismatch in countNonZero #28581
    • Fixed heap-buffer-overflow in YAML parseKey for empty keys #28620
    • Optimized flip Horizontal #28614
    • Added AVX VNNI support #28684
    • Fixed meanStdDev on Windows for ARM #28739
    • Added NEON implementation for rotate function #28609
    • Fixed inplace transpose race by enforcing LLSS ordering via local barrier in OpenCL #28686
    • Fixed incorrect results for in-place flip on strict OpenCL implementations #28813
    • Added platform-specific SIMD for cv::reduce REDUCE_SUM #28782
    • Implemented safe handling of compressed file level extension (.gz[0-9]) #28923
    • Extended AutoBuffer to mimic std::vector #28909 and use it more #28907
    • Fixed signed overflow UB in Point/Point3i::dot() #28959
    • Added SIMD intrinsics support for norm_mask function #28610
    • Add ARMPL support for DFT Function #28664
    • Implemented OpenCL kernel for UMat::diag to avoid aliasing races #28897
    • Optimized norm with RVV HAL #29057
    • Deprecateed MatCommaInitializer_ #29060
    • Fixed v_matmul/v_matmuladd scalable semantics and expand lane-group test coverage #29080
    • Siwtched to better Durand-Kerner initialization in solvePoly #29109
    • Fixed numerical instability and out-of-bounds store in VBLAS SIMD #29141
    • Added convertScale data type conversions to RVV HAL #29174
    • Fixed inverted continuity check in cvReshapeMatND() #29132
    • Fixed memory leak in OpenCL extensions gathering #28981
    • Added check to reject nd-matrix dim count above CV_MAX_DIM in FileStorage read #29301
    • Moved IPP math functions from core module to HAL #29306
    • parallelize sort_ using parallel_for_ #29192
    • Fixed potential stack overflow in FileStorage #29348
    • Vectorizeed meanStdDev #29339
    • FileStorage reads integers above INT_MAX into float/double without truncation #29368
    • Optimized minMaxIdx/minMaxLoc #29340
    • Added fast-path transposeND for identity and 2D transpose orders #29172
    • Migrateed MomentsInTile_SIMD to universal:scalable intrinsics #28881
    • Fixed Unicode temp path handling on Windows #28935
    • Vectorized cv::reduce #27510
    • Enabled ipp calls for sort and sortIdx #29477
    • Fixed use-after-scope when Mat::mul() is given a scalar #29447
    • Optimized countNonZero #29390
    • Enabled AVX-512 dispatch for sum #29400
    • SIMD optimizations for norm, distance and Hamming APIs #29335
    • Optimized gemm implementation with Universal SIMD #29242
  • Imgproc module:

    • Added findTRUContours - lock-free parallel contour extraction #28773, #29167, #29461

    • Fixed race condition in GaussianBlur #28372

    • BilateralFilter optimization for AVX512 #28401

    • MedianBlur improvement with AVX512 #28394

    • Fixed integer overflow in medianBlur #28386

    • Fixed Laplacian kernel precision for double inputs #28489

    • Fixed minEnclosingCircle O(n^3) worst case by adding Welzl shuffle #28548

    • Added SIMD support for distance transform function #28636

    • Fixed fitEllipseDirect/AMS determinant threshold for near-circular data #28628

    • Optimized tiled parallel box filter with TLS buffers and custom border fill #28830

    • Fixed ROI handling in 2D-tiled parallel execution in FilterEngine #29159

    • Fixed Apple conversions build without AVFoundation #29138

    • Fixed floodFill simple path #29187

    • Speed up first BGR2Lab and BGR2Luv call by building the color LUT faster #29253

    • Fixed missing tipLength validation in arrowedLine #29191

    • Optimized EMD (Earth Mover's Distance) solver performance #29194

    • Improved Parallelism and Memory Access Efficiency for Hough Transform Accumulator #29059

    • Fixed remap nearest rounding #29145

    • Fixed matchTemplate TM_SQDIFF precision loss for CV_8U images #29096

    • Improved color convert and AVX512 dispatch added #28992

    • Optimized LUT and equalizeHist with SIMD #29250

    • Optimized remap interpolation #29507

    • Optimized PyrDown #28650

    • Fixed IPP warpAffine #28562

    • Disabled ipp path for 32FC1 in ipp_hal_warpPerspective

    • Disabled IPP implementation for warpPerspective F32C4 as it triggers exception on Windows #29490

    • Restored IPP integration for Sobel and Schaar #29328

    • Extracted following IPP integrations as HAL: resize #29374, cvtColor #29397, calcHist #29511, distanceTransform #29463, threshold #29491, Canny #29434

    • Filter2D IPP migration to HAL for 4.x #29427

    • Extracted IPP integration as HAL function for box_filter #29420

    • Moved IPP-based Sobel and Scharr to HAL #29417

    • Made RVV HAL resize bit-exact for 8U INTER_LINEAR #29473

    • Added Laplacian hal for riscv-rvv: #28887

    • Added RVV HAL for spatialGradient #29062

    • Re-enabled RVV integral for safe cases #29163

    • hal/riscv-rvv: Fix test failures on hardware that implements tail-agnostic as all 1s #28375

  • Imgcodecs module:

    • Allow TIFF compression schemes for 32F #28785
    • imgcodecs: fix integer overflow in BMP and SunRaster decoders #28379
    • imgcodecs(webp): improve IMWRITE_WEBP_LOSSLESS_MODE to support exact lossless compression #28519
    • Fix invalid PAM decoding #28753, oss-fuzz 497290557
    • Added support for cICP metadata in imreadWithMetadata() #28615
    • Fixed JPEG chroma configuration & Standardize component settings #28667
    • Fixed UBSan load-invalid-value in SunRasterDecoder::readHeader #29151
    • Improved EXIF profile handling #29295, #29322
    • Fixed out-of-bounds write when reading 2-channel PAM #29296
  • Flann module:

    • Helped compiler vectorize loops in meanSplit #28545
    • Fixed Index::radiusSearch output size mismatch #28990
    • Used per-thread storage for heap pool to remove lock contention #29346
    • Bound kd-tree node indices when loading a saved flann index #29503
  • Features2d module:

    • Added missing KAZE DIFF_CHARBONNIER support #28324
    • Added OpenCL acceleration for BFMatcher cross-check #28735
    • OpenCL BFMatcher optimization for crosscheck case #28828
    • Added OpenCL support for AKAZE features #28879
    • Optimized FAST for RISC-V RVV #28938, #29197
View original

Upgraded? How did it go?

Discussion