# opencv 4.12.0 — OpenCV 4.12.0 - Product: opencv (https://whatsnew.fyi/product/opencv) - Vendor: opencv - Date: 2025-07-02 - Version: 4.12.0 - Original notes: https://github.com/opencv/opencv/releases/tag/4.12.0 - Permalink: https://whatsnew.fyi/product/opencv/releases/4.12.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Added user-defined logger callback - **added** — Added `reinterpret()` method to `cv::Mat` - **fixed** — Fixed empty ND-array construction - **fixed** — Fixed bug with `int64` support for FileStorage - **fixed** — Fixed `cv::meanStdDev` overflow for large images - **changed** — Used HAL for cv::mean function - **changed** — Vectorized cv::normalize / cv::norm - **changed** — Enabled SIMD_SCALABLE for exp and sqrt - **changed** — Vectorized normDiff with universal intrinsics - **changed** — Refactored normDiff in hal_rvv and extended with support of more data types - **changed** — Further vectorized copyTo with mask - **fixed** — Fixed POWN OpenCL implementation - **changed** — Restored legacy universal intrinsics operators in a separate header - **changed** — Improved solveCubic accuracy - **deprecated** — Deprecated copyData parameter in `cv::UMat` construction from `std::vector` - **changed** — Optimized and reduced memory consumption in `cv::findContours` - **fixed** — Fixed integer overflow in `cv::HoughLinesProbabilistic` with very large input images - **fixed** — Fixed several potential overflows in image warping - **changed** — Improved robustness for ellipse fitting - **added** — Added `cv::THRESH_DRYRUN` flag to get adaptive threshold values without input thresholding - **fixed** — Fixed `cv::getPerspectiveTransform` for singular case *July, 2025* Summer update for OpenCV 4.x - Core Module: - Added user-defined logger callback [#27154](https://github.com/opencv/opencv/issues/27154) - Added `reinterpret()` method to `cv::Mat` [#25394](https://github.com/opencv/opencv/issues/25394) - Fixed empty ND-array construction [#27362](https://github.com/opencv/opencv/issues/27362) - Fixed bug with `int64` support for FileStorage [#26846](https://github.com/opencv/opencv/issues/26846) - Fixed `cv::meanStdDev` overflow for large images [#26867](https://github.com/opencv/opencv/issues/26867) - Useed HAL for cv::mean function too [#26895](https://github.com/opencv/opencv/issues/26895) - Vectorized cv::normalize / cv::norm [#26885](https://github.com/opencv/opencv/issues/26885) - Enabled SIMD_SCALABLE for exp and sqrt [#26886](https://github.com/opencv/opencv/issues/26886) - vectorized normDiff with universal intrinsics [#27042](https://github.com/opencv/opencv/issues/27042) - Refactored normDiff in hal_rvv and extended with support of more data types [#27115](https://github.com/opencv/opencv/issues/27115) - Further vectorized copyTo with mask [#27145](https://github.com/opencv/opencv/issues/27145) - Fix POWN OpenCL implementation [#27274](https://github.com/opencv/opencv/issues/27274) - Restored legacy universal intrinsics operators in a separate header [#27327](https://github.com/opencv/opencv/issues/27327) - Improved solveCubuc accuracy: [#27331](https://github.com/opencv/opencv/issues/27331), [#27347](https://github.com/opencv/opencv/issues/27347) - Deprecated copyData Parameter in `cv::UMat` construction from `std::vector` and always copy data [#27408](https://github.com/opencv/opencv/issues/27408) - Imgproc Module: - Optimized and reduced memory consumption in `cv::findContours` [#26690](https://github.com/opencv/opencv/issues/26690), [#26834](https://github.com/opencv/opencv/issues/26834) - Fixed integer overflow in `cv::HoughLinesProbabilistic` with very large input images [#26744](https://github.com/opencv/opencv/issues/26744) - Fixed several potential overflows in image warping [#26765](https://github.com/opencv/opencv/issues/26765), [#26776](https://github.com/opencv/opencv/issues/26776) - Improved robustness for ellipse fitting [#26773](https://github.com/opencv/opencv/issues/26773) - Added `cv::THRESH_DRYRUN` flag to get adaptive threshold values without input thresholding [#26836](https://github.com/opencv/opencv/issues/26836) - Fixed `cv::getPerspectiveTransform` for singular case [#26926](https://github.com/opencv/opencv/issues/26926) - Optimized bayer2Gray with universal intrinsics [#26868](https://github.com/opencv/opencv/issues/26868) - Added optional mask to `cv::threshold` [#26842](https://github.com/opencv/opencv/issues/26842) - Accelerated `cv::remap` calculation with multi-threading, when `cv::WARP_INVERSE_MAP` is used [#27108](https://github.com/opencv/opencv/issues/27108) - Reworked HSV color conversion tables initialization in OpenCL branch to fix possible data raise [#27287](https://github.com/opencv/opencv/issues/27287) - Fixed bilateral filter's sigma color and sigma space issue [#27309](https://github.com/opencv/opencv/issues/27309) - Impoved performance of medianblur [#27299](https://github.com/opencv/opencv/issues/27299) - Added `cv::getClosestEllipsePoints` function to get the closest point on an ellipse [#26299](https://github.com/opencv/opencv/issues/26299) - Corrected IPP implementation for `cv::distanceTransform` results with single thread [#27432](https://github.com/opencv/opencv/issues/27432) - Fixed `cv::matchTemplate` with mask crash [#26703](https://github.com/opencv/opencv/issues/26703) - Added diamond structuring element to morphology operations [#27441](https://github.com/opencv/opencv/issues/27441), [#27492](https://github.com/opencv/opencv/issues/27492) - Improved `cv::intersectConvexConvex` accuracy in corner cases [#26974](https://github.com/opencv/opencv/is _[Truncated at 4000 characters — full notes: https://github.com/opencv/opencv/releases/tag/4.12.0]_