Opencv For Python Mac

What’s OpenCV?

  1. Opencv For Python Mac Download
  2. Opencv Mac Python 2.7
  3. Opencv Python Machine Learning

Ahhh, computer vision, such a cool field! Lately, I’ve been trying to become more knowledgeable about CV and image processing in python. OpenCV (CV = ‘computer vision’) is an excellent open source computer vision software library written in C++ that supports C++, C, Python, Java, and Matlab API’s. OpenCV will supply you with functions that will let you detect faces in images, track objects in a video, and perform any number of image processing tasks.

The only problem is: how the hell do I install OpenCV so that I can use it in conjunction with a Jupyter notebook? Let’s be honest, most likely you’re either you’re using a Jupyter notebook, Spyder, or the ipython terminal (if you’re a real sadist) to test your python code. And especially if you’re coding for image processing, you’re going to want to view your progress without having (a) a million separate images open and (b) having to wait for Spyder to inevitably crash. That’s the beauty of a Jupyter notebook - when you’re using it with Matplotlib, you can just display your images and videos in a living document!

  • For example, on Mac, it might be the case that OpenCV is installed for MacPorts Python but we are running the script with the system's Python.
  • OpenCV waitKey in python doesn't work on mac. I'm writing code to face recognition in python and i'm using open cv on mac (PyCharm). I don't understand why: if cv2.waitKey(1) & 0xFF ord('q'): break. Doesn't work on mac, but on windows this code work. In particular q doesn't trigger the if.

For me, my ideal OpenCV situation would be for me to be able to simply type and evaluate the following import statements with zero errors or package conficts:


Problems with traditional installation methods

There are many ways to install OpenCV. The standard approach is to download it from the OpenCV website and then compile and install OpenCV using the software building utility “CMake” all within a virutal Python environment. I’ve gone down this route according to Adrian Rosebrock’s fabulous installation walkthrough, and if you just want to have access to OpenCV 3.0, I suggest you consider it. But, at the end of the day, there are even more steps required after Adrian’s 9 steps to get OpenCV compatible with a Jupyter notebook. Other installation walkthroughs I’ve found tend to be generally convoluted and assume that you have Homebrew, XCode, maybe MacPorts, or just experience in general with installing and building software packages. Wouldn’t it be great if we could just run something analogous to pip install opencv?

If you’re like me (maybe you’re not) I often think that pip install‘ing a Python package is the same thing as R’s install.packages function - while we get similar functionality, R packages come with the luxury of basically never interfering with other R package dependencies! If one package needs a newer or older version of some other package you’ve already installed, install.packages will most likely just take care of everything for you. Python packages, on the other hand, will often have dependencies on specific versions of other packages, so if you pip install one package, other package may fail to import because their dependent packages have been updated. That’s why we use virtual environments; my favorite method for creating and running virtual environments is with Anaconda, a Python distribution that comes with Sklearn, Scipy, NumPy, Jupyter notebook, and most of the other essential tools a data scientist needs when using Python.

Overall, I installed OpenCV cleanly in just a few steps:

  • Install Anaconda, make Anaconda’s Python your system’s default Python (skip if you already have this).
  • Create a virtual environment.
  • Make sure all Conda packages are up-to-date.
  • Run conda install -c https://conda.binstar.org/menpo opencv
  • Test.


(1) Install Anaconda. (Skip if you already have Anaconda).

First off, I’m still a python 2 guy. Yeah, there’s python 3, but I grew up on Py 2.7 and it’ll take a lot to pry it from my cold, dead hands. So I have a python 2.7 Anaconda environment running on my computer. Your choice.

Why is it so hard to install OpenCV for python on Mac? Votes 2018-04-25 13:26:32 -0500 Gadgeteering. What size should libopencvjava341.dylib file be.

I went to the Anaconda downloads page and got the Python 2.7 Mac OS X 64-Bit command-line installer, so that we can install everything from Terminal.

Opencv For Python Mac

After downloading that, navigate to your Downloads directory (if you’re new to the Terminal, just open the Terminal application and type cd $HOME/Downloads).

While still in Terminal, enter

Awesome, now you’ve downloaded and installed Anaconda.


(1.b) Make Anaconda your default python installation.

For data science, Anaconda rules. Ideally, when you’re in Terminal and you type python, you’d like for the Anaconda python installation to be the default python that starts running instead of what comes installed by default on a typical Macbook. Why? Well, using Anaconda we can just import NumPy, import any Scikit Learn funciton, import Matplotlib, etc.

To see what I’m talking about, type this in Terminal:

If you get /usr/bin/python2.7, you’re not using the Anaconda installation. To change this, you’ll need to change your bash_profile so that the default path to the python installation in the Anaconda directory. If you don’t have a .bash_profile file in your home directory, do this:

This just created that file. Next, open the .bash_profile page and add this line:

export PATH=”~/anaconda/bin:$PATH”

Tutorial

Finally, you have to make your system update python path the with your new settings, so in Terminal type


(2) Make an Anaconda virtual environment

Anaconda has great documentation if you ever get lost using their tools, but otherwise they’re pretty easy to use. To create a virtual python 2.7 environment called “py27,” run this:

To enter this virtual environment, we use Conda’s source activate function:

If the environment is running properly, you should see (py27) preceding the $ sign at the command prompt in Terminal. In this environment we have access to Anaconda’s python package installer, conda install, so that we can install packages at will in this “bubble” without messing up dependencies (basically breaking python) in any other environment. Side note: if you want to exit this py27 environment, just enter source deactivate in Terminal.


(3) Update packages

Just to be safe, I updated all of my python packages while inside of my py27 environment. It’s ridiculously easy with Anaconda:


(4) Install OpenCV

With Anconda we can install python packages within a specific Conda environment using conda install instead of pip, the typical python package management system.

Next, I would normally suggest just typing conda install opencv at the command prompt, but this (unsurprisingly) lead me to a package conflict with NumPy! Yep, the version of OpenCV that Conda installed relied on a specific release of the NumPy package that was actually in conflict with the one that was just updated in step (3). OK, to be honest, maybe I brought that upon myself with updating the packages the way I did. But, there’s a work around that functions with this latest update of NumPy: install OpenCV directly from the Menpo project:


(5) Fire up a Jupyter notebook and test!

The Anaconda environment should now have everything we need to start analyzing images in a self-contained little Jupyter notebook. Test it out. First, launch a Jupyter notebook from the terminal:

Next, see if everything is installed correctly; hopefully you’ll be able to run this sans errors:

If successful, you’ll be able to readily access OpenCV functions with the package prefix cv2!

OpenCV 4.2 works with Python 2.7, 3.5, 3.6, 3.7, 3.8.The unofficial OpenCV PyPiwheelswork for Linux, Mac and Windows.

pip install OpenCV for Python

Importantly, the pip install methods below also work for the OpenCV GUI such as imshow etc.

ARM / Raspberry Pi

also works for certain ARM platforms like the Raspberry Pi.Note: If you install on an ARMv7 Raspberry Pi (or ARMv8 running in ARMv7 e.g. with Raspbian), you will need to pip uninstall and pip install upon inserting the SD card into an ARMv6 system, or

SIGILL Illegal Instruction

Python

error will result.

For example, setting up a Python OpenCV algorithm on a Raspberry Pi 4 then inserting the same SD card into a Raspberry Pi Zero / Zero W will require reinstalling OpenCV.OpenCV is trivial and fast to install on a Raspberry Pi via pip as described above.

OpenCV with extra contribs

For those desired the latest extended functionality that hasn’t yet been incorporated into the core package, OpenCV including theExtra contributed modulesmay be obtained by:

Notes

  • (reference) Windows-only OpenCV wheels.(cpMN where you have Python M.N). contrib includes OpenCV-extra packages.

Python executable selection

If you get the ... is not supported on this platform error be sure you’re not accidentally using Python 2.7 instead of Python 3, you may have to manually specify the path for the pip command e.g.

Opencv python machine vision

Test Python OpenCV install

We made several testscriptsto try out the OpenCV install.

Opencv For Python Mac Download

compile source

You cancompile and installOpenCV for Python.Or compile OpenCV withextra contributed packages.Compiling yourself allows customizing and optimizing OpenCV for your computer (e.g. using GPU, TBB, OpenCL, etc.).

Opencv Mac Python 2.7

conda

Opencv Python Machine Learning

The conda install opencv and conda install -c conda-forge opencv methods for OpenCV continue to be BROKEN for video/image reading and display.Use pip install above instead.