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
- Restored legacy universal intrinsics operators in a separate header
- Improved solveCubic accuracy
- Optimized and reduced memory consumption in `cv::findContours`
- Improved robustness for ellipse fitting
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 tocv::Mat#25394 - Fixed empty ND-array construction #27362
- Fixed bug with
int64support for FileStorage #26846 - Fixed
cv::meanStdDevoverflow 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::UMatconstruction fromstd::vectorand always copy data #27408
-
Imgproc Module:
- Optimized and reduced memory consumption in
cv::findContours#26690, #26834 - Fixed integer overflow in
cv::HoughLinesProbabilisticwith very large input images #26744 - Fixed several potential overflows in image warping #26765, #26776
- Improved robustness for ellipse fitting #26773
- Added
cv::THRESH_DRYRUNflag to get adaptive threshold values without input thresholding #26836 - Fixed
cv::getPerspectiveTransformfor singular case #26926 - Optimized bayer2Gray with universal intrinsics #26868
- Added optional mask to
cv::threshold#26842 - Accelerated
cv::remapcalculation with multi-threading, whencv::WARP_INVERSE_MAPis 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::getClosestEllipsePointsfunction to get the closest point on an ellipse #26299 - Corrected IPP implementation for
cv::distanceTransformresults with single thread #27432 - Fixed
cv::matchTemplatewith mask crash #26703 - Added diamond structuring element to morphology operations #27441, #27492
- Improved
cv::intersectConvexConvexaccuracy in corner cases #26974
- Optimized and reduced memory consumption in
-
Calib3d module:
- Fixed inliers updating in homography estimation #26742
- Added
cv::solvePnPRansacimplementation for the fisheye camera model #26669 - Fixed different marker ordering with
cv::findChessboardCornersSBWithMetaandcv::CALIB_CB_LARGERflag. - 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::drawAxesfunction #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:
-
VideoIO Module:
- Fixed invalid custom FFmpeg options handling provided with environment variable #26793
- Fixed default
cv::CAP_PROP_ORIENTATION_ATUObehaviour #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::VideoWriterfailure on writing colorless images #27153 - Fixed Android setCameraIndex issue #27419
-
Imgcodecs:
- Extended image I/O API with metadata support #27499
- Added in-memory animation encoding and decoding #27013
- Added hidden frame support for Animated PNG #27127
- Added GIF decode and encode for imgcodecs #25691, #26971, #26859, #26738, #26930, #27081, #27138, #27296
- Added animated WebP Support #25608, #27457
- Added GDAL multi-channel support #27458
- Fixed AVIF linkage on Windows #26762
- Significantly improved PNG and Animated PNG files handing #26849, #26739, #26748, #26782, #26832, #26835, #26848, #26851, #26854, #26915, #27040, #27087, #27297
- Added several fixes for libspng integration #27314
- Fixed memory leak in JpegXL decoder #26787
- Added support for
cv::IMREAD_UNCHANGEDand other ImreadFlags into JpegXL implementation #26788 - Implemented
imdecode()for JpegXL to directly read from memory #26844 - Added lossless compression support for JpegXL #27384
- Fixed cv::imread() implementation for 16-bit png with libspng back-end #27113
-
Highgui Module:
-
G-API module:
-
Video Module: …