opencv 4.12.0

4.12.0

OpenCV 4.12.0

Added 3
  • Added user-defined logger callback
  • Added `reinterpret()` method to `cv::Mat`
  • Added `cv::THRESH_DRYRUN` flag to get adaptive threshold values without input thresholding
Changed 10
  • Used HAL for cv::mean function
  • Vectorized cv::normalize / cv::norm
  • Enabled SIMD_SCALABLE for exp and sqrt
  • Vectorized normDiff with universal intrinsics
  • Refactored normDiff in hal_rvv and extended with support of more data types
  • Further vectorized copyTo with mask
Fixed 7
  • Fixed empty ND-array construction
  • Fixed bug with `int64` support for FileStorage
  • Fixed `cv::meanStdDev` overflow for large images
  • Fixed POWN OpenCL implementation
  • Fixed integer overflow in `cv::HoughLinesProbabilistic` with very large input images
  • Fixed several potential overflows in image warping
  • Fixed `cv::getPerspectiveTransform` for singular case
Deprecated 1
  • Deprecated copyData parameter in `cv::UMat` construction from `std::vector`

July, 2025

Summer update for OpenCV 4.x

  • Core Module:

    • Added user-defined logger callback #27154
    • Added reinterpret() method to cv::Mat #25394
    • Fixed empty ND-array construction #27362
    • Fixed bug with int64 support for FileStorage #26846
    • Fixed cv::meanStdDev overflow for large images #26867
    • Useed HAL for cv::mean function too #26895
    • Vectorized cv::normalize / cv::norm #26885
    • Enabled SIMD_SCALABLE for exp and sqrt #26886
    • vectorized normDiff with universal intrinsics #27042
    • Refactored normDiff in hal_rvv and extended with support of more data types #27115
    • Further vectorized copyTo with mask #27145
    • Fix POWN OpenCL implementation #27274
    • Restored legacy universal intrinsics operators in a separate header #27327
    • Improved solveCubuc accuracy: #27331, #27347
    • Deprecated copyData Parameter in cv::UMat construction from std::vector and always copy data #27408
  • Imgproc Module:

    • Optimized and reduced memory consumption in cv::findContours #26690, #26834
    • Fixed integer overflow in cv::HoughLinesProbabilistic with very large input images #26744
    • Fixed several potential overflows in image warping #26765, #26776
    • Improved robustness for ellipse fitting #26773
    • Added cv::THRESH_DRYRUN flag to get adaptive threshold values without input thresholding #26836
    • Fixed cv::getPerspectiveTransform for singular case #26926
    • Optimized bayer2Gray with universal intrinsics #26868
    • Added optional mask to cv::threshold #26842
    • Accelerated cv::remap calculation with multi-threading, when cv::WARP_INVERSE_MAP is used #27108
    • Reworked HSV color conversion tables initialization in OpenCL branch to fix possible data raise #27287
    • Fixed bilateral filter's sigma color and sigma space issue #27309
    • Impoved performance of medianblur #27299
    • Added cv::getClosestEllipsePoints function to get the closest point on an ellipse #26299
    • Corrected IPP implementation for cv::distanceTransform results with single thread #27432
    • Fixed cv::matchTemplate with mask crash #26703
    • Added diamond structuring element to morphology operations #27441, #27492
    • Improved cv::intersectConvexConvex accuracy in corner cases #26974
  • Calib3d module:

    • Fixed inliers updating in homography estimation #26742
    • Added cv::solvePnPRansac implementation for the fisheye camera model #26669
    • Fixed different marker ordering with cv::findChessboardCornersSBWithMeta and cv::CALIB_CB_LARGER flag.
    • Fixed logical mistake in FilterSpecklesImpl #26996
    • Optimized undistort points for the fisheye camera model #26988
    • Optimized new camera matrix estimation and some related functions #27001
    • Added warning if projected axes are out of camera frame in cv::drawAxes function #27311
    • Added image dimension check to avoid StereoSGBM non-determinism #27305
    • Fixed bugs in SQPNP orthogonalization and simplified column vectors copying #27437
  • DNN Module:

    • Added TFLite StridedSllice (without strides but just Slice) and enable strides for TF importers #27273
    • Added fusion handler of conv+eltwise in case of multi-output node (i.e. Split) #27326
    • Added new ops import in TFLite parser: SUB, SQRT, DIV, NEG, SQUARED_DIFFERENCE, SUM #27307
    • Fxied scalars and 1d tensors support in TFLite parser #27307
    • Reduced number of NHWC<->NCHW conversions in TFLite parser #27307
    • Added checks before getting latest pin in Net::Impl::getLatestLayerPin #27353
    • Added OpenVINO NPU support #27363
    • Added more operations to CANN backend #24756
  • Objdetect module:

    • Extend ArUcoDetector to run multiple dictionaries in an efficient manner #26934.
    • Fixed rotated aruco marker board generation #26753
    • Fixed incorrect Aruco marker detection near image edge #26968
    • Fixed invalid vector access in QR de/encoder #26532
    • Fix QR code encoder with auto version #27244
    • Aded QRCode ECI encoding support #24426, #27486
    • Made ChAruco board consistency check optional #26824
  • Photo Module:

    • Added 16-bit support to cv::fastNlMeansDenoising and updated tests #26831
    • Local decolor pipeline optimization #27041
    • Fixed Triangle Weights used by Debevec algorithm being non zero at extremes #27270
    • Fixed NaNs in HDR Triangle Weights and Tonemapping and Update LDR Ground Truth in tutorial #27396
  • VideoIO Module:

    • Fixed invalid custom FFmpeg options handling provided with environment variable #26793
    • Fixed default cv::CAP_PROP_ORIENTATION_ATUO behaviour #26800
    • Improved camera opening performance when with DShow backed, if custom options are provided #26601
    • Added zoom support into Android native camera capture #26837
    • Fixed V4L frame size for non-BGR output #27193
    • Added Orbbec Gemini 330 camera support #27230
    • Fixed cv::VideoWriter failure on writing colorless images #27153
    • Fixed Android setCameraIndex issue #27419
  • Imgcodecs:

  • Highgui Module:

    • displayOverlay doesn't disappear after timeout #27082
    • Fix closing of windows when using the Qt backend #27170
    • Fixed QT window resize regression #27282
  • G-API module:

    • Workaround for successfull append of OpenVINO Execution Provider: Moved creation of 'Ort::Env' before it #26983
    • Adding AddRgbFeature(), and improving robustness in ComputeRgbDistance #26682
    • Added MS Media Foundation availability check in G-API too #27355
  • Video Module: …

View original

Upgraded? How did it go?

Discussion