Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

OpenCV Change Logs

Alexander Smorkalov edited this pageDec 8, 2025 ·39 revisions

Previous Change Logs:

version:4.13.0

December, 2025

New Year update for OpenCV 4.x has been released.

  • TBD

Contributors

contributors
git shortlog --no-merges -ns 4.12.0..4.13.0

version:4.12.0

July, 2025

Summer update for OpenCV 4.x

  • Core Module:

    • Added user-defined logger callback#27154
    • Addedreinterpret() method tocv::Mat#25394
    • Fixed empty ND-array construction#27362
    • Fixed bug withint64 support for FileStorage#26846
    • Fixedcv::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 incv::UMat construction fromstd::vector and always copy data#27408
  • Imgproc Module:

    • Optimized and reduced memory consumption incv::findContours#26690,#26834
    • Fixed integer overflow incv::HoughLinesProbabilistic with very large input images#26744
    • Fixed several potential overflows in image warping#26765,#26776
    • Improved robustness for ellipse fitting#26773
    • Addedcv::THRESH_DRYRUN flag to get adaptive threshold values without input thresholding#26836
    • Fixedcv::getPerspectiveTransform for singular case#26926
    • Optimized bayer2Gray with universal intrinsics#26868
    • Added optional mask tocv::threshold#26842
    • Acceleratedcv::remap calculation with multi-threading, whencv::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
    • Addedcv::getClosestEllipsePoints function to get the closest point on an ellipse#26299
    • Corrected IPP implementation forcv::distanceTransform results with single thread#27432
    • Fixedcv::matchTemplate with mask crash#26703
    • Added diamond structuring element to morphology operations#27441,#27492
    • Improvedcv::intersectConvexConvex accuracy in corner cases#26974
  • Calib3d module:

    • Fixed inliers updating in homography estimation#26742
    • Addedcv::solvePnPRansac implementation for the fisheye camera model#26669
    • Fixed different marker ordering withcv::findChessboardCornersSBWithMeta andcv::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 incv::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 inNet::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 tocv::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 defaultcv::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
    • Fixedcv::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 inComputeRgbDistance#26682
    • Added MS Media Foundation availability check in G-API too#27355
  • Video Module:

    • Added trackers factory with pre-loaded dnn models#26875
  • HAL:

  • Python, Java and JavaScript bindings:

    • Added conditional inclusion support to header parser#27325,#27393,#27478
    • Updated predefined_types.py#26826
    • Added bindings for animations#26813
    • Fix wrong python type hints forcv::imread#26890
    • Replacedtostring() andfromstring() call in tests and samples for compatibility with modern Python#26932,#26949
    • Replaced ndarray.ptp() with np.ptp() for NumPy 2.0 Compatibility#27133
    • Extended Java bindings generation in DNN#27228,#27260, Features2d#27245
    • Fixedstd::vector<Point3f> handling in JS wrappers#27291
    • Addedcv::VideoCapture buffered stream constructor into Java#27284,#27421
    • Extended bindings forcv::HoughLinesWithAccumulator#27377
    • Fixed Kotlin 2.0 internal error for unsafe coercions#26354
  • Platforms support:

    • Fixed OpenBLAS detection on Linux#27029
    • Fixed compatibility with CMake 4#27192
    • Fixed Android build with Vulkan support#26765
    • Fixed VSX intrinsics (Power) implementation#26750,#26786
    • Added CMake checks for getauxval and elf_aux_info for POWER architecture#26798
    • Fixed build for openBSD#26803
    • Added initial support for Nvidia Blackwell GPU arch in CUDA#26820
    • Fixed cv namespace dependency in Carotene HAL#26878
    • Fixed _DEBUG/NDEBUG handling across modules#26151
    • Fixed build for QNX 7.0#26985
    • Switched to statically linked FastCV#26917,#27340 fixed build issues on Android#27345
    • Forced C++17 Standard for CUDA targets when CUDA Toolkit >=12.8#27112#27142
    • Fixed build for Windows ARM64EC#27416
    • Fixed filesystem support under Cygwin environment#27484

Contributors

contributors
git shortlog --no-merges -ns 4.11.0..4.12.0    58Alexander Smorkalov    20Kumataro    19Yuantao Feng    17Suleyman TURKMEN    16Vincent Rabaud    14Benjamin Knecht    14shyama7004    12Maksim Shabunin    12天音あめ    10Dmitry Kurtaev    10GenshinImpactStarts    10Maxim Smolskiy    10MaximSmolskiy    10Skreg    10amane-ame     4Alexander Alekhin     4Liutong HAN     4Pierre Chatelier     4Souriya Trinh     4fengyuentau     3Kavyansh Tyagi     3Letu Ren     3Xue Zhang     3adsha-quic     3cudawarped     3eplankin     3utibenkei     2Aakash Preetam     2Abhishek Gola     2Aditi Sharma     2Brad Smith     2Daniel     2Martin Valgur     2Myron Rodrigues     2Rüdiger Ihle     2leopardracer     2quic-xuezha     2ruisv     2s-trinh     2xaos-cz     1Aditya Jha     1Adrian Kretz     1Alfred Wingate     1Ali Saleem     1Anastasiya Pronina     1Anshuprem     1Connor Baker     1Dan Dennedy     1Daniel Bermuth     1Daniil Anufriev     1Diego1V     1FleeOvernight     1Francisco Mónica     1Frank Liu     1FurkanTahaSaranda     1Gianluca Nordio     1Gou Minghao     1Gursimar Singh     1Horror Proton     1Ivan Avdeev     1JavaTypedScript     1Johnny     1Junrou Nishida     1Kababey     1Ken Shirriff     1Liane Lin     1Madan mohan Manokar     1Maksym Ivashechkin     1Malacath-92     1Manolis Lourakis     1Mark Harfouche     1Martin     1Maxim Evtush     1Neko Asakura     1Onuralp SEZER     1RoshniUG     1Ryan Wong     1Scorpion1234567     1Sergei Nikiforov     1Snehasish Basu     1Super     1UnnamedOrange     1Vadim Levin     1Vadim Pisarevsky     1Vidip Singh     1Yannis Guyon     1YooLc     1chengolivia     1dai-xin     1fuder.eth     1gaohaoyuan     1iiiuhuy     1kilavvy     1krikera     1kyler1cartesis     1lawrencec98     1lve-gh     1nina16448     1omahs     1phanirithvij     1sight     1sirudoi     1sssanjee-quic     1sujal     1tho     1xi-guo     1Øystein Walle

version:4.11.0

January, 2025

New Year update for OpenCV 4.x has been released.

  • Generic:

    • Internal C API cleanup and back-ports for 5.x.
    • RISC-V/AArch64: disable CPU features detection#25901
    • Support C++20 standard#26590
    • algoHint parameter for some functions to allow potentially faster, but not bit-exact implementation
  • Core Module:

    • Added int64 data type support for FileStorage#26434
    • Fixed invalid attribute value handling in FileStorage#25955.
    • Extended LUT for FP16 support#25787.
    • Fixed stdDev tail filling with zeros with HAL in meanStdDev#25789.
    • Set and check allocator pointer for all cv::Mat instances#25979
    • Improved accuracy of Rect::contains#26022
    • Fixed result offset in minMaxIdx with HAL in some cases#26080
    • Replaced C++ operators with wrapper functions on universal intrinsics backends#26109
    • Extended cv::TickMeter#26212
    • Rewrote OpenCL-OpenGL-interop device discovery routine without extensions and with Apple support#26281
    • Marked cv::Mat(Mat&&) as noexcept#25899
    • Multiple Eigen library interop improvements#25751.
  • Calib3d module:

    • Multiple chessboard detector improvements#25427,#25807,#25991,#26014
    • Enabled checkerboard detection with a central / corner marker on a black tile#25808
    • Fixed Rodrigues CV_32F and CV_64F type mismatch in projectPoints#25824
    • Added fisheye::distort with non-identity projection matrix#25943
    • SQPnP solver updates#26219
    • Fixed vector access in USAC#26530
  • Imgproc Module:

    • Added a new function that approximates the polygon bounding a convex hull with a certain number of sides#25607
    • Added Weighted Hough Transform#21407
    • Fixed bug in contours approximation#25672
    • Fixed bug in divSpectrums#25738
    • Fixed result buffer overflow in intersectConvexConvex_ for non-convex input#25725.
    • Added flag to GaussianBlur for faster but not bit-exact implementation#25792
    • Added flag to cvtColor for faster but not bit-exact implementation#25932
    • Fixed fillPoly drawing over boundaries#26187
  • DNN Module:

    • [GSoC] Blockwise quantization support#25644
    • Faster implementation of blobFromImages for cpu nchw output#26127
    • DNN optimization with RISC-V RVV#25883.
    • Added DepthToSpace and SpaceToDepth#25779
    • Yolo v10 support and related samples#25794
    • Parallel implementation of nary elementwise operations#25630
    • Support for Unflatten operation required by Attention layer#25861
    • Erf and GELU layers optimization#25147
    • Activations optimization with v_exp#25881
    • Fixed compilation errors with different OpenVINO versions#25987
    • Fixed matmul crash with CuDNN#26029
    • Fixed CuDNN runtime version check for CuDNN 9+#25841.
    • Added ONNX TopK#23279
    • Fixed buffer allocation in einsum (fixed random crash on 32-bit platforms)#26059
    • Added Leaky RELU support for TFLite#26132.
    • Switched to run-time dispatcher for Winograd#26155
  • Objdetect module:

    • Properly check markers when none are provided#25938.
    • Fixed invalid vector access in QR decoder and encoder#26532
  • Highgui module:

    • Added new Highgui backend on top of Framebuffer#25661
    • Fixed HWND_TOP window handling on Windows#25836
    • [GSoC] Added OpenGL support with GTK3#25822
    • Several OpenGL related fixed on Linux#25865,#22836
    • Fixed leak in cvGetWindowRect_COCOA#26625
  • Imgcodecs module:

    • [GSoC] New API for Animations with WEBP, AVIF and Animated PNG support#25608,#25715.
    • [GSoC] Add GIF decode and encode for imgcodecs#25691
    • Added experimental JPEG XL (jxl) codec support#26379
    • Initial RGB layout support in imread and imdecode#25809
    • Fixed imread output type for some cases#25703
    • Fixed file descriptor leak in HDR decoder#25838
    • Fixed corrupted JPEG decoding#25864
    • Improved error handling in image codecs#25975
    • Fixed Bayer2Gray SIMD for U8#25968
    • Avoid uninitialized value read in AVIF#26084
    • Implemented imencodemulti()#26211
    • Fixed compatibility with different OpenEXR versions#26478.
  • VideoIO module:

    • Added VideoCapture constructor for in-memory data stream#25584
    • Fixed bugs in native video encoding on Android#25716.
    • Added BGRA streams support in GStreamer back-end#25602.
    • Updated materials for Orbbec cameras support#25813,#25845, 25907
    • Fixed cv::VideoWriter with FFmpeg timestamps encapsulation#25874
    • Fixed memory leak in Dshow back-end#26045
    • Fixed V4L NV12 color conversion#26081
    • Android native camera feature enhancements#26627
    • AndroidMediaNdkCapture pixel format enhancement#26656
    • Fixed VideoCapture fails to read single image with digits in name#26637
    • Fixed writer setProperty with FFmpeg plugin#26652
  • Video module:

    • Fixed VitTrack in the case where crop size grows until out-of-memory when the input is black#25771
  • Features2d:

    • Fixed out of bounds access in SIFT#26148
  • G-API module:

    • Fixed input buffer read overflow in vectorized G-API convertTo implementation#25780.
    • Extended G-API onnx::Params to pass arbitrary session options#25791
    • Handling I32/I64 data types in G-API ONNX back-end#25817
    • G-API: Introduce level optimization flag for ONNXRT backend#26293
  • Optimizations:

    • New FastCV-based HAL for Qualcomm SoCs (-DWITH_FASTCV=ON CMake option)#26556,#26617, 26619, 26621.
    • Added own vectorized version of v_exp#24941, v_log#25781, v_erf#25872, v_sin and v_cos#25892.
    • KleidiCV HAL for ARM updated to KleidiCV 0.3#26623 and it is turned on by default for Android builds. The supported operations and parameters are documentedhere.
    • Initial version of HAL for RISC-V RVV 1.0 and RISC-V RVV 0.7.1 extensions#26216,#26624, 26675.
    • Used LMUL=2 in the RISC-V Vector (RVV) backend of Universal Intrinsic.#26318
    • More functions in NDSRVP HAL for RISC-V P extension#25786,#26088,#26364.
    • Updated built-in IPP to version 2021.12. Fixed build issues with old and new Intel IPP layouts#25773
  • Platforms:

    • HWAsan support on Android#25746
    • Several CUDA fixes for old GPUs without FP16 support#25880
    • Added getStdAllocator() to cv::cuda::GpuMat#25978
    • Updated NPP calls to use the new NppStreamContext API if available#26245
    • More convenient GpuMatND constructor#26472
    • Added run-time GPU check to haveCUDA#26164.
    • Add support for QNX#25832
  • OpenCV.js

    • Extended API white-list and added more tests#26387
    • Split white-list per module. Added opportunity to cover opencv_contrib modules#25986
    • Fix incorrect string format in js build script#26374
    • Emscripten build fixes with SIMD intrinsics#26537
    • Added more public types for USAC support#26638
    • Rename Mat::clone binding because it is used in Emscripten#26643
    • Fixed C preprocessor stringification#26644
    • Fix enum generation issues#26147
    • Multiple test improvements#25732,#25757,#25961

Contributors

contributors
git shortlog --no-merges -ns 4.10.0..4.11.0    57Alexander Smorkalov    34Maksim Shabunin    25Vincent Rabaud    16Rostislav Vasilikhin    15Suleyman TURKMEN    13Kumataro    12Letu Ren    10Yuantao Feng    9Maxim Smolskiy     8Dmitry Kurtaev     8Alexander Lyulkov     7Liutong HAN     7kallaballa     5Alexander Alekhin     5Wanli     4FantasqueX     4cudawarped     3Abduragim Shtanchaev     3Rüdiger Ihle     2Amir Hassan     2Hao Chen     2Junyan721113     2KangJialiang     2Manolis Lourakis     2Maxim Milashchenko     2Pierre Chatelier     2chacha21     2eplankin     2ericmariasis     2richard28039     2zihaomu     1Alberto Zurini     1Alessandro de Oliveira Faria (A.K.A.CABELO)     1Alexander Panov     1Aliaksei Urbanski     1Andy-SAKN     1Arvind Iyer     1Aven     1Billy Robert O'Neal III     1CSBVision     1Christine Poerschke     1Corentin Noël     1Dan Mašek     1Daniele Affinita     1Dietmar Schabus     1Dmitry Yurov     1HAN Liutong     1Hardik Kamboj     1Ivan Afanasyev     1James Choi     1Javier Macias Sola     1Karsten Wiese     1Kimberly N. McGuire     1Masahiro Ogawa     1Miguel Daipré     1Mikhail Khachayants     1Mironov Arseny     1MurtazaSaherwala     1Neko Asakura     1Nishanth     1Octopus136     1Onur Can KARAMAN     1Oちゃん     1Patrick Keane     1Philip Lamb     1Richard Barnes     1Robert Lexmann     1Robert Mitchell     1Scott     1Septimiu Neaga     1ShengYu     1Simon Kämpe     1Skreg     1Sourav Kumar     1Super     1TFiFiE     1Thirumalai Nagalingam     1Ujjayant Kadian     1Vadim Levin     1WU Jia     1WangWeiLin-MV     1Yang Chao     1Yannis Guyon     1Yoshiki Obinata     1Zach Lowry     1_Ayaka     1adsha-quic     1alex-urm     1anandkaranubc     1cDc     1catree     1fengyuentau     1gblikas     1george     1inayd     1j3knk     1kaingwade     1kozinove     1lamiayous     1llh721113     1pasbi     1penghuiho     1quantizs     1quic-apreetam     1quic-xuezha     1shengyu     1shyama7004     1stepkamipt     1tingboliao     1xkszltl     1xndcn     1武士风度的牛

version:5.0-alpha

December, 2024

The alpha release for the new OpenCV generation. The release is designed as technology preview and not ready for production usage yet.

The following notation is used to mark various items below:

  • 5+4.x: the feature is not quite new, it's already put into the latest 4.x, but it's important enough to mention it here as well.
  • 5.0: the item will be finished in 5.0 release; currently it's planned or in progress.
  • 5.x: the item will be put in some form into 5.0 release, but will mostly be finished in subsequent 5.x releases.

Release highlights

General changes, improvements

  • 5+4.x: Recent OpenCV 4.x (since OpenCV 4.5.0) and also OpenCV 5.0 are now distributed under Apache 2 license. We used BSD license before, but switched to Apache 2, because the latter is more refined and provides somewhat better protection (not ideal though) from patent-related issues.
  • OpenCV now requires C++ 17 as a minimum C++ standard. It is built by default with C++ 17, but we also plan to make it compatible with C++ 20 and C++ 23.
  • Python 2 support is removed. OpenCV now requires Python 3 (3.6+) and we only build Python 3 bindings.

Big OpenCV cleanup

  • C API has been removed. We still use someCV_ macros, such asCV_8U, but all C functions (likecvCreateMat() orcvFindContours()) and structures (such asCvMat) have been removed. Goodbye, good old OpenCV 1.x API, RIP :)
  • OpenVX support has been removed. If some vendors provide OpenVX kernels and want to use them for OpenCV acceleration, they can create a custom “non-CPU” HAL for that, see below.
  • Graph API (G-API) module has been moved toopencv_contrib.
  • ClassicML module has been moved toopencv_contrib. If you use Python,scikit-learn is a much better alternative.
  • Features2D module has been renamed toFeatures. Scope of the renamed module has been extended to process feature vectors produced by the modern deep nets. Several obsolete feature detectors/descriptors have been moved to opencv_contrib.SIFT,ORB,FAST,GoodFeaturesToTrack,MSER are still available, though.
  • 5.0:FLANN as a separate module will be gone. Annoy-based ANN (approximate nearest neighbor) search algorithm, which has been already added toFeatures module, will replace it.
  • Cleanedobjdetect module: Haar-based and HOG-based detectors have been moved toopencv_contrib,xobjdetect module. There are modern deep learning-based object/face detectors that are both faster and more accurate.
  • Calib3d module has been split into 3 modules:
    • 3d — basic 3D geometry and 3D vision functionality
    • calib — camera calibration
    • stereo — algorithms for depth map estimation via stereo correspondence.
  • Many obsolete samples (~50% of C++ samples and 5% of Python samples) have been removed. Many of the remaining samples have been revised.

Updated Core module

  • OpenCV now supports the extended set of data types:
    • uint8_t: CV_8U,int8_t: CV_8S,uint16_t: CV_16U,int16_t: CV_16S,int32_t: CV_32S,float: CV_32F,double: CV_64F,hfloat (a.k.a.half orfloat16_t or__fp16):CV_16F.
    • (new in OpenCV 5):bfloat (a.k.a.bfloat16_t):CV_16BF,uint32_t: CV_32U,uint64_t: CV_64U,int64_t: CV_64S,bool: CV_Bool.
    • bool type takes 1 byte per value, not 1 bit. Any non-zero byte is consideredtrue, zero byte meansfalse.cv::Mat of typebool (CV_Bool) can now be used as a mask for all functions where we usedcv::Mat ofuchar/uint8_t orschar/int8_t before.
    • Operations onhfloat andbfloat are always available, even on hardware that does not support those types natively. If necessary, internally we use efficient inline functions for scalar and vectorfloat<=>hfloat/bfloat conversion.Support for the new types has been added tocv::Mat,cv::UMat,InputArray/OutputArray, key modules (core, dnn, (5.x) imgproc etc.),FileStorage,various programming language bindings etc.
  • OpenCV now supports arrays of lower than 2 dimensionality, i.e. 1D (vectors) and 0D (scalars).std::vector<T> wrapped intoMat orInputArray/OutputArray is now a real 1D array, not 2D Nx1 or 1xN array (as in OpenCV 4.x). For 1D arraysMat::dims == Mat::rows == 1,Mat::cols == Mat::total() == <number_of_elements>. For 0D arraysMat::dims == 0,Mat::rows == Mat::cols == Mat::total() == 1. The safe method to distinguish between an empty matrix and a scalar is to use<some_mat>.empty(), which is basically equivalent to (but is slightly faster than)<some_mat>.total() == 0.
  • Lapack is now always available within OpenCV. In particular, it’s used for more efficient SVD and eigenvalue/eigenvector decomposition and the USAC framework. When there is no external Lapack library installed in the system, OpenCV builds and uses the internal small subset of Lapack.
  • 5.0, 5.x: Further refactoring and improvements are expected before and after 5.0 release:https://github.com/opencv/opencv/issues/25011.

Updated Imgproc module

  • Accelerated image warping functions: warpAffine, warpPerspective, remap. Acceleration factor varies from 10% to more than 300%, depending on the platform, image size, type and operation flags. More optimizations for those functions, as well as other important image processing functions are expected in 5.0 gold.
  • Text rendering now uses STB-based truetype engine and the embedded variable truetype font. Users can also load and use custom fonts. Consequently, many Unicode symbols are now supported, with a few caveats though:
    1. some scripts, such as Arabic or Devanagari, are not rendered properly, we need to add Harfbuzz for that
    2. some compound Unicode symbols are not rendered properly for the same reason
    3. color emoji are not supported, as STB is a simple black-n-white engine.
  • 5.0, 5.x: Further refactoring and improvements are expected before and after 5.0 release:https://github.com/opencv/opencv/issues/25012

Updated HAL

  • 5+4.x: Many new entries have been added to OpenCV HAL, allowing various vendors to provide custom acceleration to OpenCV functions. In 5.0 gold some more new HAL entries will be added.
  • 5+4.x: In some cases vendors provide super-fast implementations that are unfortunately not 100% compatible with OpenCV. To let user to choose between speed and accuracy in some critical places, OpenCV introduced the optionalAlgorithmHint hint parameter to several functions, which is set toALGO_HINT_DEFAULT by default (which is equivalent toALGO_HINT_ACCURATE unless user compiled OpenCV withALGO_HINT_DEFAULT=ALGO_HINT_FAST (-DOPENCV_ALGO_HINT_DEFAULT=ALGO_HINT_APPROX option in cmake).
  • 5+4.x: Universal intrinsics for math functions (v_exp,v_log,v_erf,v_sincos) have been added to accelerate deep learning inference, image processing and other algorithms.
  • FP16 (i.e. half-precision) universal intrinsics have been added into ARMv8 NEON and RISC-V RVV backends. In both cases FP16 SIMD arithmetics is not available by default, the code needs to be built with special options. The corresponding parts of OpenCV use our runtime dispatching mechanism, which chooses the best-suited flavors of kernels depending on the actual client hardware.
  • 5.0, 5.x: UMat will be extended to be able to store any CPU or non-CPU array/tensor. That is, from an OpenCL-only solution (T-API) we now migrate to a universal heterogeneous API (we might call it U-API or “non-CPU HAL”) and UMat will be the main data container for it. Many other improvements are expected as well:https://github.com/opencv/opencv/issues/25019,https://github.com/opencv/opencv/issues/25025

Updated DNN (Deep Learning Inference Module)

  • The new engine has been introduced that now co-exists with the old engine. The new engine provides better support for dynamic shapes and other modern ONNX features. By 5.0 gold it will also provide much better coverage of ONNX specification than the old engine; now the coverage is comparable.
  • Added parameterint engine = ENGINE_AUTO tocv::dnn::readNet() to control which engine is used to load and further run the model. By default, we try the new engine first and if it fails to load the model, fall back to the old engine. We can also force the new engine or the old engine. Because of the different internal representation the engine cannot be switched after the model is loaded.
  • Parsers for ONNX, Caffe, TF and TFLite formats have been updated to support the engine selection.
  • 5.0, 5.x: currently, the new engine only supports the default backend and CPU target. It’s planned to enable more backends and targets by 5.0 gold and even more backends in subsequent 5.x releases#26198.

Updated 3D/Calib

  • 5+4.x: Significantly more efficient USAC framework (especially in the case of noisy datasets) is now used for RANSAC-based algorithms to estimate homography, essential matrix, solve PnP problem etc. Seehttps://docs.opencv.org/5.x/de/d3e/tutorial_usac.html
  • New Levenberg–Marquardt algorithm implementation. It's faster and more accurate.
  • Efficient multi-camera calibration framework has been added to calib module. It includes smart initialization and USAC-based optimization pipeline to compute relative positions of all simultaneously calibrated cameras w.r.t. the 1st camera. Various camera configurations are supported (all pinhole cameras, all fisheye cameras and the mixed case). Seetutorial for more details.
  • Initiated work on basic mesh processing and point cloud processing algorithms: TSDF, ICP, etc.
  • Added importers and exporters for some popular point cloud formats, such as .ply and .obj.

Revised Samples

  • Revised the following deep learning samples: classification, segmentation, object detection, edge detection, tracking, person reid. All the samples use a collection of models that can be conveniently downloaded withcd <opencv>/samples/dnn && python3 download_models.py.
  • Added experimental samples for LLM (GPT2) and diffusion (LDM) models.

Migration for 4.x

TBD

© Copyright 2019-2025, OpenCV team

Clone this wiki locally


[8]ページ先頭

©2009-2025 Movatter.jp