opencv_dart
OpenCV4 bindings for Flutter, using dart:ffi.
2.2.2
5.7K downloads/mo
#3660 most downloaded on pub.dev
rainyl/opencv_dart
What this package is like to depend on
Last release 8 days ago
16 Aug 2026
Release timing varies
gaps range from 8 days to 6 months
Nearly every release is documented
notes for 53 of 54 stable releases
17 versions withdrawn
withdrawn after publishing
3 years old
89 releases · first in 2024
7 releases in the last 12 months
see the full history below
Release timeline
89 releases · Feb 2024 to Aug 2026Releases
latest 60 of 89-
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.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.1.018 Nov 2025Release 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-dev.0.donotuse31 Jul 2024 pre-release withdrawnNothing published for this version
-
2.1.0-dev.001 Aug 2024 pre-releaseNothing published for this version
-
2.0.0-dev.13.donotuse31 Jul 2024 pre-release withdrawnNothing published for this version
-
2.0.0-dev.1218 Jun 2024 pre-releaseNothing published for this version
-
2.0.0-dev.1113 Jun 2024 pre-releaseNothing published for this version
-
2.0.0-dev.1012 Jun 2024 pre-releaseNothing published for this version
-
2.0.0-dev.912 Jun 2024 pre-releaseNothing published for this version
-
2.0.0-dev.802 Jun 2024 pre-releaseNothing published for this version
-
2.0.0-dev.719 May 2024 pre-releaseNothing published for this version
-
2.0.0-dev.614 May 2024 pre-releaseNothing published for this version
-
2.0.0-dev.513 May 2024 pre-releaseNothing published for this version
-
2.0.0-dev.413 May 2024 pre-releaseNothing published for this version
-
2.0.0-dev.301 May 2024 pre-releaseNothing published for this version
-
2.0.0-dev.221 Apr 2024 pre-releaseNothing published for this version
-
2.0.0-dev.119 Apr 2024 pre-releaseNothing published for this version
-
2.0.0-dev.019 Apr 2024 pre-releaseNothing published for this version
-
1.4.518 Nov 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.4.324 Jul 2025Release notes
Open source →What's Changed
- fix DART_EXECUTABLE lookup logic in CMakeLists by @rainyl in #367
- Bump OpenCV to 4.12.0, add new constructor for FlannBasedMatcher by @rainyl in #370
Full Changelog: v1.4.2...v1.4.3
Release notes
Open source →- add
FlannIndexParams,FlannSearchParams,FlannKDTreeIndexParams - add
FlannBasedMatcher.create - bump opencv to 4.12.0
- [android] fix ffmpeg search logic in
ffmpeg-config.cmake, https://github.com/rainyl/opencv_dart/issues/293
-
1.4.203 Jul 2025Release notes
Open source →What's Changed
- remove ndkVersion from opencv_core and opencv_dart android/build.gradle by @rainyl in #340
- Add
externalSizeoption when attaching to help auto disposing by @rainyl in #342 - Bump ffigen from 16.1.0 to 17.0.0 in /packages/dartcv by @dependabot in #343
- Bump ffigen from 17.0.0 to 18.0.0 in /packages/dartcv by @dependabot in #346
- [opencv_core] & [opencv_dart] with android auto ignore unuse abi by @einsitang in #348
- Add docs for VecVec* operator[] by @rainyl in #350
- Enhance README and CMakeLists for OpenCV module customization by @abdelaziz-mahdy in #355
- bump opencv to 4.11.0+1, dartcv to 4.11.0.3 by @rainyl in #359
- added API for approxPolyN by @lennartalff in #362
- docs(contributor): contributors readme action update by @github-actions in #363
- [Imgproc] Add more 2f version APIs for high-precision usage by @rainyl in #364
New Contributors
- @lennartalff made their first contribution in #362
Full Changelog: v1.4.1...v1.4.2
Release notes
Open source →- support optional modules, configure it in
pubspec.yaml, from this version, both opencv_core and opencv_dart can enable/disable optional modules. - 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.
-
1.4.2+104 Jul 2025 -
1.4.111 Feb 2025Release notes
Open source →What's Changed
- Add async version of VideoCapture.grab() by @Gold872 in #329
- docs(contributor): contributors readme action update by @github-actions in #330
- Fix dependabot by @rainyl in #331
- Bump ffigen from 14.0.1 to 16.1.0 in /packages/dartcv by @dependabot in #332
- Add fromBuff constructor for Mat by @westito in #335
- Wrap code inside
try finallyforMat.fromListby @rainyl in #336 - docs(contributor): contributors readme action update by @github-actions in #337
- Mat at set by @rainyl in #338
New Contributors
Full Changelog: v1.4.0...v1.4.1
Release 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()
-
1.4.022 Jan 2025Release notes
Open source →Note: highly recommended to upgrade
What's Changed
- make file auto clone by @abdelaziz-mahdy in #300
- add isContourConvex, intersectConvexConvex by @rainyl in #299
- add Vec version of imencode imdecode, add haveImageReader haveImageWr… by @rainyl in #305
- fix reference of estimateAffinePartial2D by @Escaton615 in #316
- docs(contributor): contributors readme action update by @github-actions in #317
- No copy vec, update to opencv 4.11.0 by @rainyl in #315
- More
calib3dfunctions by @rainyl in #324 - make the version of
dartcv4fixed (without^) in opencv_core and … by @rainyl in #325
New Contributors
- @Escaton615 made their first contribution in #316
Thanks for all the contributors and users, happy chinese new year 🎉
Full Changelog: v1.3.3...v1.4.0
Release 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() - make
VecVecCharunmodifible - more tests
- add more functions in
calib3d - make the version of
dartcv4fixed
-
1.3.325 Nov 2024Release notes
Open source →- Fix example link in readme
- [Android] Support 16KB Page Size
- Fix:
minEnclosingCircle - Fix: requested object not found in
glob_rec - Exclude system paths from search paths in
ffmpeg-config.cmake - bump dartcv to 4.10.0.5
- bump opencv to 4.10.0+10
-
1.3.206 Nov 2024Release notes
Open source →- Fix: minEnclosingCircle
- hide highgui from building, cache options
- [Android] Remove debug info in release build to reduce package size
- bump DartCvIOS and DartCvMacOS to 4.10.0.4, remove
-Wl,-ld_classicfor ios and macos
-
1.3.2-dev.106 Nov 2024 pre-releaseNothing published for this version
-
1.3.130 Oct 2024Release notes
Open source →- breaking change: hide
highgui - bump DartCvMacOS and DartCvIOS to 4.10.0.3, conditionally add link option
-ld_classic
- breaking change: hide
-
1.3.025 Oct 2024Release notes
Open source →- breaking change: local build. Will download opencv sdk (~100M) from remote, set
DARTCV_CACHE_DIRto cache it and avoid downloading in every build. - breaking change: many async class constructors and getters/setters were removed.
- Breaking change: highgui, remove Window and Trackbar class, use functions like opencv c++ and python directly, e.g., cv.namedWindow("TestWindow"), more examples refer to: https://github.com/rainyl/opencv_dart/blob/split-dartcv/packages/dartcv/test/highgui_test.dart
- macos: support 10.15 and above
- android: API level 24 and above
- ios: 12.0 and above
- support custom linked ffmpeg 6.1 for windows, linux, android, macos
- add DartCvMacOS dependency for macos
- add DartCvIOS for ios
- move all dart code to independent plugin
dartcv4 - bump dartcv to 1.0.1
- add
cv.Mat.fromMat
- breaking change: local build. Will download opencv sdk (~100M) from remote, set
-
1.2.6-dev.124 Oct 2024 pre-releaseNothing published for this version
-
1.2.6-dev.023 Oct 2024 pre-releaseNothing published for this version
-
1.2.527 Sep 2024Release notes
Open source →- add quality module by @rainyl in https://github.com/rainyl/opencv_dart/pull/239
- Bump ffigen from 13.0.0 to 14.0.0 by @dependabot in https://github.com/rainyl/opencv_dart/pull/242
- Cmake install to platform dir by @rainyl in https://github.com/rainyl/opencv_dart/pull/243
- fix: [iOS] opencv_dart framework is missing MinimumOSVersion #246 by @rainyl in https://github.com/rainyl/opencv_dart/pull/247
- do not dispose vec in Mat.fromVec by @rainyl in https://github.com/rainyl/opencv_dart/pull/250
-
1.2.406 Sep 2024Release notes
Open source →- change
Mat.toString()to return something likeMat(addr=0x1dde02c74b0, type=CV_8UC4, rows=-1, cols=-1, channels=4)by @rainyl in https://github.com/rainyl/opencv_dart/pull/233 - migrate build toolchain from
conantocmakeby @rainyl in https://github.com/rainyl/opencv_dart/pull/234 - add
cv.floodFillandcv.floodFillAsyncby @rainyl in https://github.com/rainyl/opencv_dart/pull/236 - move
findHomographytocalib3dby @rainyl in https://github.com/rainyl/opencv_dart/pull/236
- change
-
1.2.330 Aug 2024Release notes
Open source →- fix: android build.gradle task by @einsitang in https://github.com/rainyl/opencv_dart/pull/226
- fix: vector conversion by @rainyl in https://github.com/rainyl/opencv_dart/pull/229
- remove the dependency of flutter
-
1.2.225 Aug 2024Release notes
Open source →- remove arm64 and x64 setup options for ios by @rainyl in https://github.com/rainyl/opencv_dart/pull/202
- rename factory VideoWriter.open to VideoWriter.fromFile, add apiPreference option for VideoWriter by @rainyl in https://github.com/rainyl/opencv_dart/pull/203
- check libs for android by @rainyl in https://github.com/rainyl/opencv_dart/pull/210
- Android Plugin custom arch support by @einsitang in https://github.com/rainyl/opencv_dart/pull/211
- use
setRangefor Vec, optimize operator [] by @rainyl in https://github.com/rainyl/opencv_dart/pull/215 - add
asVec()to List extensions for better Vec and List interop by @rainyl in https://github.com/rainyl/opencv_dart/pull/222
-
1.2.131 Jul 2024Release notes
Open source →- use ndk from conan by @rainyl in https://github.com/rainyl/opencv_dart/pull/187
- add Float16P, Float16List, impl float16 access for Mat by @rainyl in https://github.com/rainyl/opencv_dart/pull/189
- export Mat properies as leaf functions by @rainyl in https://github.com/rainyl/opencv_dart/pull/191
- use Mat::Ptr in Mat.ptrAt by @rainyl in https://github.com/rainyl/opencv_dart/pull/193
-
1.2.028 Jul 2024Release notes
Open source →- Many breaking changes in this version, keep using old version if you do not want to modify your code.
- Split to multiple libraries by @rainyl in https://github.com/rainyl/opencv_dart/pull/147
- refactor vector wrappers by @rainyl in https://github.com/rainyl/opencv_dart/pull/155
- deprecate copyToWithMask, use copyTo(Mat img, {Mat? mask}) instead by @rainyl in https://github.com/rainyl/opencv_dart/pull/157
- support fp16 by @rainyl in https://github.com/rainyl/opencv_dart/pull/158
- add getBackendName() for VideoCapture by @rainyl in https://github.com/rainyl/opencv_dart/pull/161
- support create Mat from VecU8, etc. by @rainyl in https://github.com/rainyl/opencv_dart/pull/162
- fix: Better mat format/print #156 by @rainyl in https://github.com/rainyl/opencv_dart/pull/163
- added from list by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/165
- fix imencode interface by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/168
- fix Mat.size is not correct #170 by @rainyl in https://github.com/rainyl/opencv_dart/pull/171
- logging interface by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/175
- optimize Rng, remove unnecessay async by @rainyl in https://github.com/rainyl/opencv_dart/pull/176
- update version to use enabled vulkan version by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/178
- refactor Mat.at, Mat.set, Mat.ptrAt by @rainyl in https://github.com/rainyl/opencv_dart/pull/172
- improve divide tests by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/181
- updated functions to pass all params by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/182
- bump ffigen to 13.0.0 by @rainyl in https://github.com/rainyl/opencv_dart/pull/183
- add more methods to Mat, more test, add cv.sqrt, cv.sum by @rainyl in https://github.com/rainyl/opencv_dart/pull/185
- added more tests by @abdelaziz-mahdy in https://github.com/rainyl/opencv_dart/pull/186
-
1.1.004 Jul 2024Release notes
Open source →- Breaking Change: Asynchronous support, APIs ended with
Asyncsupport asynchronous call. - Breaking Change:
Rng.uniform,gaussian,nextreturns aStreamnow, #135 - Breaking Change: delete
xdataof Mat, MakeMat.fromListcopy data internally to avoid extra data management, now it will copy the input data 2 times - Breaking Change:
class MatType->extension type const MatType(int value) - remove the dependency of
equatable - New:
ximgprocandxobjdetectmodules. (int, int).toSize(Arena arena)->(int, int).asSize(int, int).toPoint(Arena arena)->(int, int).asPoint(double, double, double, double).toScalar(Arena arena)->(double, double, double, double).asScalar- New:
Mat.fromRange - New:
Point3i,VecPoint3i - remove
BlockMeanHash.compareS,BlockMeanHash.computeS - remove
FaceRecognizerSF.newRecognizer - More info at: #143
- Breaking Change: Asynchronous support, APIs ended with
-
1.1.0+118 Jul 2024Release notes
Open source →- Fix: download wrong binaries on
windowsandlinux, other platforms are not affected.
- Fix: download wrong binaries on
-
1.1.0-dev.102 Jul 2024 pre-releaseRelease notes
Open source →- New: EXPERIMENTAL Asynchronous support by @abdelaziz-mahdy and @rainyl, try it and open an issue if you have any problems.
-
1.0.1018 Jun 2024 -
1.0.10+121 Jun 2024 -
1.0.913 Jun 2024 -
1.0.812 Jun 2024Release notes
Open source →- API change:
FaceRecognizerSF.feature(Mat alignedImg)->FaceRecognizerSF.feature(Mat alignedImg, {bool clone = false}) - Deprecated:
FaceRecognizerSF.newRecognizerFaceRecognizerSF.DIS_TYPR_FR_COSINEFaceRecognizerSF.DIS_TYPE_FR_NORM_L2
- API change:
-
1.0.711 Jun 2024Release notes
Open source →- Add: FaceDetectorYN, FaceDetectorSF
- Add: Mat.dataPtr to allow get raw data pointer
- update lint rules and format
-
1.0.609 Jun 2024 withdrawnRelease notes
Open source →- Upgrade to OpenCV 4.10.0
- VecUChar.toU8List() return a copy of data rather than a view
- Better Auto setup, support universal ios framework (x86_64 and arm64)
-
1.0.6+109 Jun 2024 -
1.0.502 Jun 2024Release notes
Open source →- Auto setup by @abdelaziz-mahdy, from v1.0.5, libs will be downloaded automatically during build, i.e., no need to run setup commands
- Improve performance and optimize memory consumption
- Add
dispose()methods to allow manual free native resources - Better exception for cv.imencode
- Add more API for objdetect module
-
1.0.5+105 Jun 2024 withdrawnRelease notes
Open source →- Optimize Vectors
- Fix: free cExt before exception in cv.imencode
- Add data getter for Vec<int,uchar,chat,float,double>, cache type of Mat
- Make auto setup build locally, set
OPENCV_DART_DISABLE_AUTO_BUILDto disable auto setup and run setup commands as before, read more in README
-
1.0.419 May 2024Release notes
Open source →- Fix: Stitcher.composePanorama
- Fix: pyrDown/Up border type, BORDER_CONSTANT -> BORDER_DEFAULT
- New API: cv.Subdiv2D
- New API: cv.LUT
- improve performance of Mat.at() and Mat.set()
- Add: Mat.aU8(), Mat.setU8(), etc.
-
1.0.313 May 2024Release notes
Open source →- New API: Mat::ptr -> Mat.ptrAt
- ffi.Pointer<T> Mat.ptrAt<T extends ffi.NativeType>(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.UnsignedChar> Mat.ptrU8(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.Char> ptrI8(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.UnsignedShort> ptrU16(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.Short> ptrI16(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.Int> ptrI32(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.Float> ptrF32(int i0, [int? i1, int? i2])
- ffi.Pointer<ffi.Double> ptrF64(int i0, [int? i1, int? i2])
- New API: Mat::ptr -> Mat.ptrAt
-
1.0.3+113 May 2024 -
1.0.3+214 May 2024Release notes
Open source →- fix: change the default border type of pyrDown/pyrUp to BORDER_DEFAULT, same as opencv
-
1.0.201 May 2024Release notes
Open source →- API change: (Mat mean, Mat stdDev) meanStdDev(InputArray src, {OutputArray? mean, OutputArray? stdDev}) => (Scalar mean, Scalar stddev) meanStdDev(InputArray src, {InputArray? mask})
- New: Mat.stdDev(), Mat.variance()
- New: Scalar operator +, -, *, /, sqrt(), pow(int n)
-
1.0.2+102 May 2024 -
1.0.2+212 May 2024Release notes
Open source →- Fix: update archive version to 3.5.1
- Minor change: change cache, .cache -> .dart_tool/.cache
- Minor change: setup script, use cache, add -f flag to force download