Search packages, repositories and app categories

Package detailsv2.2.2

opencv_dart

OpenCV4 bindings for Flutter, using dart:ffi.

AndroidiOSmacOSWindowsLinux
30-day downloads
17.5K
Likes
137
Pub points
140

Install package

flutter pub add opencv_dart

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

opencv_dart provides OpenCV4 bindings for Flutter using dart:ffi, enabling computer vision and image processing capabilities in cross-platform applications. It allows developers to leverage OpenCV's extensive library of algorithms—such as image filtering, object detection, and feature extraction—directly within Flutter apps on Android, iOS, macOS, Windows, and Linux. The package bridges native OpenCV functionality with Dart code, offering high performance through direct system calls. Ideal for integrating real-time camera processing, OCR, or advanced image analysis into mobile and desktop apps.

Use cases

  • Real-time image processing
  • OCR integration
  • Object detection
  • Camera-based analytics
  • Face recognition

Key features

  • Cross-platform support
  • Uses dart:ffi for performance
  • OpenCV4 compatibility
  • Native OpenCV function access
  • Lightweight wrapper

Suitable for

  • Flutter developers needing computer vision
  • Apps requiring image analysis
  • Mobile and desktop vision projects
  • Prototyping vision features
  • Performance-critical image processing

Considerations

  • Requires native OpenCV libraries
  • Platform-specific setup may be needed
  • Limited documentation
  • Potential size increase in app bundle
  • Debugging native code can be complex

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

opencv_dart

OpenCV Bindings for Dart Language. Support both asynchronous and synchronous!

Star on Github License: Apache-2.0
Native Assets Build Discord Server
Package Link Description
dartcv4 OpenCV bindings for Dart Language.
opencv_dart OpenCV for Flutter, from 2.x , it is a wrapper of dartcv4 to keep compatibility.

[!NOTE] WIP, APIs may change in the future, contributions are welcome!

Demos

Screenshot Link
example example
videoio texture renderer
dnn_minist DNN MNIST inference
stitching stitching
stitching camera
stitching videoio

Supported Platforms

Platform Supported Tested Platforms
Android :white_check_mark: :white_check_mark: x86_64, arm64-v8a, armeabi-v7a
iOS :white_check_mark: :white_check_mark: arm64, x64+arm64(Simulator)
Linux :white_check_mark: :white_check_mark: x64, arm64
Windows :white_check_mark: :white_check_mark: x64, arm64
macOS :white_check_mark: :white_check_mark: x64, arm64

Status

Core Modules
module Binding status Test status description
core :white_check_mark: :white_check_mark: Core module
calib3d :white_check_mark: :white_check_mark: Calib3D module
dnn :white_check_mark: :white_check_mark: DNN module
features2d :white_check_mark: :white_check_mark: Features2D module
gapi :x: :x: GAPI module
highgui :white_check_mark: :white_check_mark: HighGUI module
imgcodecs :white_check_mark: :white_check_mark: ImageCodecs module
imgproc :white_check_mark: :white_check_mark: ImageProc module
ml :x: :x: ML module
objdetect :white_check_mark: :white_check_mark: Object Detection module
photo :white_check_mark: :white_check_mark: Photo module
stitching :ballot_box_with_check: :ballot_box_with_check: Stitching module
svd :white_check_mark: :white_check_mark: SVD module
video :white_check_mark: :white_check_mark: Video module
videoio :white_check_mark: :white_check_mark: VideoIO module
Contrib Modules
module Binding status Test status description
aruco :white_check_mark: :white_check_mark: ArUco module
img_hash :white_check_mark: :white_check_mark: Image hashing module
cuda :x: :x:
wechat_qrcode :white_check_mark: :white_check_mark:
bgsegm :x: :x:
superres :x: :x:
xfeatures2d :x: :x:
ximgproc :white_check_mark: :white_check_mark:
xobjdetect :white_check_mark: :white_check_mark:
xphoto :x: :x:
quality :white_check_mark: :white_check_mark:
  • :x: : not finished
  • :ballot_box_with_check: : partially supported
  • :white_check_mark: : finished
  • modules not in the above table are not considered, contributions are welcome
  • videoio: cv.VideoCapture from file is not supported yet supported now.

Usage

Pure Dart
import 'package:dartcv4/dartcv.dart' as cv;

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

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

see awesome-opencv_dart and share yours

TODO

  • [x] compile libs for android, linux
  • [x] support for iOS, macOS
  • [x] add more examples
  • [ ] documentation
  • [x] modify C wrapper to catch exceptions
  • [x] Native Assets, see native-assets branch
  • [x] async
  • [x] more/full test coverage
  • [x] directly include opencv source code, refactor cmakelists.txt

Contributors

rainyl
rainy liu
abdelaziz-mahdy
Abdelaziz Mahdy
einsitang
爱因斯唐
Gold872
Gold87
diegolopezrm
Diego López
Jiinwoo
JinWoo Jung
westito
westito
heyarny
Arnold Stark
dupuchba
Baptiste DUPUCH
Escaton615
Escaton615
mdeleau
mdeleau
pariterre
Pariterre
lennartalff
Thies Lennart Alff
jasaw
jasaw
totemat
Matteo T.

Acknowledgement

Star History

Star History Chart

License

Apache-2.0 License

Categories

Dependencies

Dependency list 1 items

  • dartcv4^2.2.2

Source repository

Projects using this package

No data available yet.