opencv_dart 2.1.0-dev.0 copy "opencv_dart: ^2.1.0-dev.0" to clipboard
opencv_dart: ^2.1.0-dev.0 copied to clipboard

OpenCV4 bindings for Dart language and Flutter, using dart:ffi. The most complete OpenCV bindings for Dart!

opencv_dart #

OpenCV Bindings for Dart Language.

Star on Github https://pub.dev/packages/opencv_dart https://pub.dev/packages/opencv_dart License: Apache-2.0 Native Assets Build

Important

v2.x is prepared for Native Assets, Use only if you know what you are doing!

v2.x doesn't need to download the prebuild binaries but requires Native Assets feature, which is still experimental, see more here: https://github.com/dart-lang/sdk/issues/50565

conan and cmake are required

Usage:

for pure dart:

  1. take a look at https://pub.dev/packages/opencv_dart/versions and find the latest version, e.g., 2.0.0-dev.2
  2. add to your pubspec.yaml
  3. dart --enable-experiment=native-assets run <path-to-your-code>

for flutter:

  1. take a look at https://pub.dev/packages/opencv_dart/versions and find the latest version, e.g., 2.0.0-dev.2
  2. add to your pubspec.yaml
  3. flutter config --enable-native-assets
  4. flutter run

Note

WIP, contributions are welcome!

Example #

example

Supported Platforms #

Platform Supported Tested Prebuilt Binaries
Android ☑️ x86_64, arm64-v8a, armeabi-v7a
iOS ☑️ arm64, x64(Simulator)
Linux x64
Windows x64
macOS x64, arm64

Status #

Core Modules #

module Binding status Test status description
core Core module
calib3d Calib3D module
dnn DNN module
features2d Features2D module
gapi GAPI module
highgui HighGUI module
imgcodecs ImageCodecs module
imgproc ImageProc module
ml ML module
objdetect Object Detection module
photo Photo module
stitching ☑️ ☑️ Stitching module
svd SVD module
video Video module
videoio VideoIO module

Contrib Modules #

module Binding status Test status description
aruco ArUco module
img_hash Image hashing module
cuda
wechat_qrcode
bgsegm
superres
xfeatures2d
ximgproc
xobjdetect
xphoto
  • ❌ : not finished
  • ☑️ : partially supported
  • ✅ : finished
  • modules not in the above table are not considered, contributions are welcome

Usage #

Pure Dart

import 'package:opencv_dart/opencv_dart.dart' as cv;

void main() {
  final img = cv.imread("test/images/lenna.png", flags: cv.IMREAD_COLOR);
  final gray = cv.cvtColor(img, gray, cv.COLOR_BGR2GRAY);
  print("${img.rows}, ${img.cols}");

  cv.imwrite("test_cvtcolor.png", gray);
}

Flutter

see example

More examples are on the way... see opencv_dart.examples and share yours

TODO #

  • compile libs for android, linux
  • support for iOS, macOS
  • add more examples
  • ❌ documentation
  • modify C wrapper to catch exceptions
  • Native Assets
  • ❌ async?
  • ✅ more/full test coverage
  • directly include opencv source code, refactor cmakelists.txt

Contributors #

rainyl
rainy liu
abdelaziz-mahdy
Abdelaziz Mahdy
Jiinwoo
JinWoo Jung
mdeleau
mdeleau
totemat
Matteo T.

Acknowledgement #

Star History #

Star History Chart

License #

Apache-2.0 License

70
likes
140
pub points
92%
popularity

Publisher

verified publisherrainyl.dev

OpenCV4 bindings for Dart language and Flutter, using dart:ffi. The most complete OpenCV bindings for Dart!

Repository (GitHub)
View/report issues
Contributing

Topics

#opencv #image #ffi #flutter

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

ffi, logging, native_assets_cli, path

More

Packages that depend on opencv_dart