dartcv4
OpenCV4 bindings for Dart language and Flutter, using dart:ffi. The most complete OpenCV bindings for Dart!
2.3.0
8.8K downloads/mo
#3094 most downloaded on pub.dev
rainyl/opencv_dart
What this package is like to depend on
Last release 4 days ago
19 Aug 2026
Release timing varies
gaps range from 8 days to 6 months
Nearly every release is documented
notes for 21 of 22 stable releases
1 version withdrawn
withdrawn after publishing
2 years old
25 releases · first in 2024
11 releases in the last 12 months
see the full history below
Release timeline
25 releases · Oct 2024 to Aug 2026Releases
latest 25-
2.3.019 Aug 2026Release notes
Open source →What's Changed
- Safety enhancement, memory management, Tree-shaking support, API-style ffigen, disable OpenCL by default. by @rainyl in #443
- Added charucos by @pariterre in #437
- Bump package_config from 2.2.0 to 3.0.0 in /packages/dartcv by @dependabot[bot] in #444
- docs(contributor): contributors readme action update by @github-actions[bot] in #445
- feat: add skip_build user define to bypass native build for CI unit tests by @jasaw in #446
- docs(contributor): contributors readme action update by @github-actions[bot] in #447
New Contributors
- @pariterre made their first contribution in #437
- @jasaw made their first contribution in #446
Full Changelog: v2.2.2...v2.3.0
Release notes
Open source →- new: memory-safety fixes:
- fix
VecVec6ffinalizer - fix
strdup/callocmemory leaks - fix
Mat.fromMat(copy: true)memory leak - add null-guards in logging
- fix
- new: idempotent
dispose()/freeNative(), addisDisposedfor all wrappers (P2 refactor, additive — no breaking API change) - new: native-assets tree-shaking: link hook writes
dartcv_keep.txtfrom recorded uses (@RecordUse) + finalizer symbols; CMake.def/--retain-symbols-filerestrict exports; keep-list only written on AOT builds; newtreeshakehook option (Dart 3.13+) - new:
use_openclhook option to build OpenCV with OpenCL support, per-platform, defaultfalse, always disabled onios - new: regenerate FFI bindings through the ffigen
FfiGeneratorAPI (tool/ffigen.dart) with@RecordUse+record_use_mappingoutput - bump
ffigento21.0.0 - add dependencies:
meta,record_use - new: add
CharucoBoard/CharucoDetectorbindings (contrib module) - fix(videoio): free native-allocated arrays in backend registry getters (memory leak); make
hasBackend/isBackendBuiltInexception-safe; skip unknown backend values ingetBackends-family viaVideoCaptureAPIs.maybeFromValue; always release probed cameras inenumerateCameras; support16FinparseFrameFormat - fix(videoio): writer tests write to per-test temp dirs (no shared-file race between parallel test files); silence OpenCV backend-probing warnings in videoio tests
- new: add
skip_buildhook user-define to bypass the native build entirely, for CI unit-test runs that never call into dartcv4's native code
-
2.2.216 Aug 2026Release notes
Open source →What's Changed
- fix: iOS build fails - OpenCL/cl.h not found due to FORCE in cmake options by @abdelaziz-mahdy in #421
- Ci fix test publish by @rainyl in #422
- fix: explicitly disable all modules by default in cmake-options.cmake by @rainyl in #425
- fix(build): ensure opencv-contrib modules path is set correctly by @rainyl in #426
- fix: ensure aruco module is correctly built with required dependencies by @rainyl in #428
- add LineSegmentDetector + the detech method by @dupuchba in #430
- docs(contributor): contributors readme action update by @github-actions[bot] in #433
- chore: bump version to 2.2.2 and update documentation by @rainyl in #434
- Bump hooks from 1.0.3 to 2.1.0 in /packages/dartcv by @dependabot[bot] in #441
New Contributors
Full Changelog: v2.2.1...v2.2.2
Release notes
Open source →- new: add
LineSegmentDetectorsupport (imgproc module) - bump
native_toolchain_cmaketo0.3.1 - bump
hooksto2.1.0
-
2.2.104 Feb 2026Release notes
Open source →- support setting custom cmake generator
- fix: Skip native build hook for web builds
- new: support enumerating videoio backends
-
2.2.1+106 Feb 2026Release notes
Open source →What's Changed
- add camera_demo and videoio to readme#Demos by @rainyl in #376
- [opencv_core] disable videoio by @rainyl in #380
- Sync 2.x to main by @rainyl in #386
- Bump ffigen from 19.1.0 to 20.0.0 in /packages/dartcv by @dependabot[bot] in #392
- Merge
2.xto main, support stable hooks by @rainyl in #397 - add opencl functions, allow to disable opencl at runtime by @rainyl in #402
- explicitly set generator, use vs2019/2022 for windows by @rainyl in #407
- Build opencv from source by @rainyl in #411
- remove windows generator, use Generator.defaultGenerator by @rainyl in #413
- support setting custom generators by @rainyl in #416
- fix: Skip native build hook for web builds by @abdelaziz-mahdy in #418
- support get videoio backends by @rainyl in #417
- fix: windows CI by @rainyl in #420
- fix: iOS build fails - OpenCL/cl.h not found due to FORCE in cmake options by @abdelaziz-mahdy in #421
- Ci fix test publish by @rainyl in #422
Full Changelog: v1.4.3...v2.2.1+1
-
2.2.1+218 Feb 2026 -
2.2.1+318 Feb 2026Release notes
Open source →- fix: opencv-contrib modules are not correctly built when changing include modules.
-
2.2.1+426 Feb 2026 -
2.2.006 Jan 2026Release notes
Open source →- breaking change: support building from opencv source code, it's now the default behavior, since this version, prebuilt opencv static binary is no longer included.
- bump opencv version to
4.13.0 - NOTE: opencv
4.12.0is the last version that provides prebuilt static binary. - breaking change: change default include modules to
imgcodecsimgproc. - breaking change: change default excluded modules to
calib3ddnnfeatures2dflannfreetypehighguiobjdetectphotostitchingvideovideoioarucoimg_hashqualitywechat_qrcodeximgprocxobjdetect - breaking change: since this version, FFMPEG is no longer included.
-
2.1.018 Nov 2025 withdrawnRelease notes
Open source →- NOTE: Breaking change.
- The minimum required dart sdk version is 3.10 that supports hooks (Native-Assets) stable.
- add
stackBlurfunction inimgprocmodule. - Breaking change: default included models:
calib3d,features2d,imgcodecs,imgproc,objdetect,photo,stitching, default excluded modules:contrib,freetype,highgui,video,videoio,dnn.
-
2.1.0+118 Nov 2025 -
2.1.0-dev.215 Aug 2025 pre-releaseRelease notes
Open source →- add
Mat.reinterpret - add
fisheye.solvePnPRansac, supportmaskforcv.threshold - add
StereoBM,StereoSGBMfromcalib3dmodule
- add
-
2.1.0-dev.124 Jul 2025 pre-releaseRelease notes
Open source →- sync main branch, now support all methods in
dartcv v1.1.6 - :tada: this version supports windows, linux, macos, android and ios, for platforms except ios, ffmpeg is also supported.
- sync main branch, now support all methods in
-
1.1.802 Sep 2025Release notes
Open source →- bump dependencies
- add
UMat - [features2d] add more functions/constructions
- add custom loggers, support user-defined logger callback
- add
cv.freetypemodule
-
1.1.715 Aug 2025Release notes
Open source →- add
Mat.reinterpret - add
fisheye.solvePnPRansac, supportmaskforcv.threshold - add
StereoBM,StereoSGBMfromcalib3dmodule
- add
-
1.1.616 Jul 2025Release notes
Open source →- add
FlannIndexParams,FlannSearchParams,FlannKDTreeIndexParams - add
FlannBasedMatcher.create - bump opencv to 4.12.0
- add
-
1.1.503 Jul 2025Release notes
Open source →- added
approxPolyN. - add more high-precision functions (
arcLength2f, etc.) toimgprocmodule, https://github.com/rainyl/opencv_dart/pull/364 - breaking change: optional arg
hierarchyofdrawContoursnow change fromMattoVecVec4itype.
- added
-
1.1.421 May 2025Release notes
Open source →- remove deprecated
MatType.toInt(), should use MatType.value instead - add
MatType.elemSizeMatType.elemSize1 - remove deprecated
(double x, double y, double z).asPoint3f(double x, double y).asPoint2f(int x, int y).asPointVecPoint.toVecVecPoint - add
bin/gen_cmake_vars.dartfor generating optional module vars for CMake
- remove deprecated
-
1.1.311 Feb 2025Release notes
Open source →- add
VideoCapture.grabAsync - add
Mat.fromBufferto allow creatingMatfrom self-managed buffer - add
copyDataparameter toMat.fromVec - remove
Mat.fromPtr, merge it toMat.fromMat - add
Mat.atU8,Mat.setU8, etc. - remove deprecated
Mat.copyToWithMask,List<Mat>.asVecMat()
- add
-
1.1.220 Jan 2025 -
1.1.117 Jan 2025 -
1.1.017 Jan 2025Release notes
Open source →- update to OpenCV 4.11.0
- change vector wrappers to std::vector
- fix reference of estimateAffinePartial2D
- support
VideoWriter.get()andVideoWriter.set() - use native implementation of 8U/8S -> F16 for
cv.LUT()
-
1.0.125 Oct 2024Nothing published for this version
-
1.0.025 Oct 2024Release notes
Open source →- Refactor nearly all APIs, this version is NOT compitable with previous versions!.
- better exceptions, more concise API
-
0.0.224 Oct 2024Release notes
Open source →- Implemented: imgproc, imgcodecs, core, video, need to be tested!
- add example
-
0.0.122 Oct 2024Release notes
Open source →- Initial Release
- Implemented: imgproc, imgcodecs, core, video, need to be tested!