From charlesreid1

The OpenCV library is a general, all-purpose computer vision library. It's high performance and written in C++. It has many dependencies and is non-trivial to install, so the best approach is to either use a detailed guide, a package manager like aptitude or homebrew, or an Ansible playbook.

Operating Systems

Mac

OpenCV3

To install OpenCV3 on a Mac, and make it usable from Python 3, use Homebrew:

$ brew install opencv --with-python3 --c++11 --with-contrib
$ brew link --force opencv

You may need to add the --without-openexr flag if you run into compiler errors (hat tip: [1]).

Test that it installed okay:

$ python3
>>> import cv2
>>> print(cv2.__version__)

(Yeah, the OpenCV 3 module is still called "cv2" - thanks to the genius who thought that was a good idea.)

OpenCV2

To install OpenCV version 2, use the (at)2 after opencv:

$ brew install opencv@2
$ brew unlink opencv # This is necessary if you already installed opencv (version 3 by default)
$ brew link --force opencv@2

Raspberry Pi

Install OpenCV using aptitude:

#!/bin/bash

### # This is a meta-package that points to other dev packages.
### # Try the stuff below first.
### apt-get -y install libopencv-dev

apt-get -y install libopencv-core-dev
apt-get -y install libopencv-video-dev
apt-get -y install libopencv-features2d-dev
apt-get -y install python-opencv

See the pi-opencv repository on Github: https://github.com/charlesreid1-raspberry-pi/pi-opencv


Documentation and Usage

Using OpenCV from Python

Unfortunately, most of the OpenCV documentation covers use of OpenCV from C++, not Python.

OpenCV-Python Tutorials: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

These cover the following topics:

  • Introduction to OpenCV
  • GUI features
  • Image processing
  • Feature detection
  • Video analysis
  • Camera calibration
  • Machine learning
  • Computational photography
  • Object detection

Face Detection and Object Detection

Face detection: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection

Using OpenCV from Cpp

All of the documentation links: https://docs.opencv.org/

OpenCV 2.4 documentation for C++ API: https://docs.opencv.org/2.4/index.html

OpenCV 3.3.1 documentation for C++ API: https://docs.opencv.org/3.3.1/

How the Documentation Works

Here's a link to an explanation of how the OpenCV documentation works, how it is organized, and how to contribute to it: https://docs.opencv.org/trunk/d4/db1/tutorial_documentation.html

Flags