I have trawled through all of Google's and Stack Overflow's search results in order to install stupid OpenCV on my Mac and all the methods have been completely useless.
I started trying to do this with OS X 10.8 and its XCode version and it didn't work. Now I'm on 10.9 and XCode 5.0.1.
I have tried mainly 2 methods:1) Downloading the .dmg file from OCV website and doing the CMAKE routine. When I get to the make -j8 step, at around 36% it gives me errors such as:
How to Install OpenCV on Mac OS with PYTHON. In this post, we will provide step by step instructions for installing OpenCV 3.3.0 (C++ and Python) on MacOS and OSX. If you are still not able to install OpenCV on your system, but want to get started with it, we suggest using our docker images with pre-installed OpenCV, Dlib, miniconda. In OpenCV, a video can be read either by using the feed from a camera connected to a computer or by reading a video file. The first step towards reading a video file is to create a VideoCapture object.
-make[1]: * [modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/all] Error 2
-Documents/Libraries/opencv-2.4.6.1/modules/ts/include/opencv2/ts/ts_perf.hpp:480:12: note: expanded from macro 'CV_PERF_TEST_MAIN_INTERNALS' while (++argc >= (--argc,-1)) {VA_ARGS; break;} /this ugly cons... ^ ~~1 error generated.make[2]: ** [modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/perf/perf_main.cpp.o] Error 1
2) Using Homebrew at the end of which, even if I added the python path, when I do 'import cv' it gives me a 'no module named cv' error
I tried Macports as well a while ago so I don't remember the steps, but it didn't work.
It goes without saying that I've tried different versions of OCV and all have given me issues at the make step.
Any other solutions?
Rupert Cobbe-WarburtonRupert Cobbe-Warburton2 Answers
There is a great tutorial located here. It highlights that the version you are trying to use 'is not compatible'. I am thinking that you should try installing the version stated in those instructions and see how you go.
The following instructions are taken directly from that link:
INSTALLING CMAKE
First you need to download the .dmg file under Binary Distribution of CMake here. At the time of I installed this, the file name is cmake-2.8.11.2-Darwin64-universal.dmg.
Upon completion of the installation you will be prompted whether to put CMake in /usr/bin, select Yes and finish installation
To ensure that CMake has been successfully installed, type cmake -version in Terminal
INSTALLING OPENCV
First, download the tar file of OpenCV 2.4.3 stable version here and DO NOT use the latest version. I struggled with the installation because I used OpenCV 2.4.6.1 and it's not yet compatible.
Extract the tar file in a folder and go to that folder through the terminal, e.g. cd Downloads/OpenCV-2.4.3
Now, each of the following line is to be executed in Terminal and must be executed successfully (no error)
mkdir build
cd build
cmake -G 'Unix Makefiles' ..
make -j8
sudo make install
You are all set to use OpenCV!
Steps for those who prefer to build opencv from source
I prefer to use cmake-gui
instead of entirely doing this from command line, since that gives you more idea about the options available for opencv configuration and bring you in better position if you want to customize opencv build tomorrow ( like enabling java wrapper or OpenCL etc ).
- Download source either from opencv.org(1) or opencv githubrepo(2)
- Start cmake-gui.
- Set
source path
to downloaded opencv directory andbuild path
toyour choice and click Configure button. - Specify generator as unix makefiles and pressContinue
- Choose compilers and click Done button.
- An options page with errors might be listed.
- Hovering mouse over any option gives a tooltip about the option. Edit option(s) as you feel fit. E.g.
CMAKE_INSTALL_PREFIX
- change opencv install pathBUILD_SHARED_LIBS
- build static or shared library. etc
Then click Configure again. If there are still errors, edit the option(s) causing the error and click Configure button. Repeat the edit / Configure cycle until there are no more errors. Once there are no more errors, proceed to step (8).
A minimal sample config of the WITH
tab below. Feel free to play with options. This might cause build problems initially. But your understanding of build, will be better.
- Click Generate to generate make files.
- Type
make
( in terminal at build folder ) - Type
make install
Not the answer you're looking for? Browse other questions tagged opencvcmake or ask your own question.
This tutorial provides step-by-step instructions to install OpenCV 4 (with Python bindings) on your macOS machine.
OpenCV 4 was released on November 20th, 2018.
I originally wrote this blog post when the alpha version was released, and it has now been updated on November 30th, 2018 to support the official release.
OpenCV 4 comes with new features, particularly in the DNN module for deep learning.
To learn how to install OpenCV 4 on macOS, just keep reading.
Looking for the source code to this post?
Jump right to the downloads section.
Install OpenCV 4 on macOS
In this blog post we’re going to install OpenCV 4 on macOS. OpenCV 4 is packed with new features, many of which are deep-learning focused.
Note: If you landed on the wrong install tutorial (perhaps you want to install OpenCV on Ubuntu or your Raspberry Pi), then you should visit my OpenCV installation guides page. I post links to all my OpenCV install tutorials there.
First, we’ll install Xcode and set up Homebrew.
From there, we’ll establish Python virtual environments.
Then we’ll compile OpenCV 4 from source. Compiling from source allows us to have full control over the compile and build as well as to install the full OpenCV 4 build. I’ll cover alternative methods (pip and Homebrew) in future installation guides (neither of these methods can be covered until OpenCV 4 is officially released).
Finally, we’ll test out our OpenCV 4 install and get our feet wet with a real OpenCV project.
Let’s begin!
Step #1: Install Xcode
First we need to install Xcode.
To install Xcode, fire up the Apple App Store, find the Xcode app, and install. You’ll need to wait patiently as this figure indicates:
Figure 1: Xcode is a dependency for Homebrew and therefore OpenCV 4 on macOS. To install Xcode, launch the App Store, find Xcode, and run the installation.
After Xcode has installed we need to accept a license agreement. Launch a terminal and enter the following command:
To accept the license, simply scroll down and accept it.
Once you’ve accepted the license agreement, let’s install Apple Command Line Tools. This is required, so that you’ll have make , gcc , clang , etc. You can install the tools via:
Figure 2: Installing Apple Command Line Tools on macOS.
Click the “Install” button and wait about 5 minutes for the installation to complete.
Step #2: Install Homebrew
For this step we’re going to install the Mac community package manager, Homebrew.
Homebrew runs on Ruby which is a popular programming language. When you’re ready, copy the entire command below to install Homebrew:
2 | $brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb |
Be sure to copy the entire command + URL.
Let’s verify:
2 | $brew install jpeg libpng libtiff openexr |
A tool you’ll learn to love is wget . All wget does is download files from the command line. We can use Homebrew to install wget:
Step #4: Install Python dependencies for OpenCV 4
We’re going to install the Python dependencies for OpenCV 4 in this step.
Taking advantage of the wget tool that we just installed, let’s download and install pip (a Python package manager):
2 4 6 8 10 12 | Running virtualenv with interpreter/usr/local/bin/python3 Using base prefix'/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6' Newpython executable in/Users/admin/.virtualenvs/cv/bin/python3.6 Also creating executable in/Users/admin/.virtualenvs/cv/bin/python done. virtualenvwrapper.user_scriptscreating/Users/admin/.virtualenvs/cv/bin/predeactivate virtualenvwrapper.user_scriptscreating/Users/admin/.virtualenvs/cv/bin/postdeactivate virtualenvwrapper.user_scriptscreating/Users/admin/.virtualenvs/cv/bin/preactivate virtualenvwrapper.user_scriptscreating/Users/admin/.virtualenvs/cv/bin/postactivate virtualenvwrapper.user_scriptscreating/Users/admin/.virtualenvs/cv/bin/get_env_details |
Notice that cv is the name of our environment and that I am creating a Python 3 (controlled by the -ppython3 switch) environment.
Important: Take note in the output that Python 3.6 is being utilized for the environment as well (highlighted).
You may name your environment differently if you’d like. I actually like to name my environments like so:
- py3cv4
- py3cv3
- py2cv2
- etc.
Here my py3cv4 virtual environment can be used for Python 3 + OpenCV 4. My py3cv3 virtual environment is used for Python 3 and OpenCV 3. And my py2cv2 environment can be used to test legacy Python 2.7 + OpenCV 2.4 code. These virtual environment names are easy to remember and allow me to switch between OpenCV + Python versions (nearly) seamlessly.
Next, let’s install NumPy while we’re inside the environment.
Chances are, the environment is already active (indicated by (cv) preceding your bash prompt). Just in case, let’s workon (activate) the environment:
Figure 4: We are “in” the cv
virtual environment as is denoted by (cv)
before the bash prompt. This is necessary prior to installing packages and compiling OpenCV 4.
Each time you wish to use the environment or install packages into it you should use the workon command.
Now that our environment is activated, we can install NumPy:
Step #5: Compile OpenCV 4 for macOS
Compiling from source gives you the most control over your build as opposed to package managers such as pip, Homebrew, and Anaconda.
Package managers are convenient for sure and I’ll cover them in a future installation tutorial, I just want to give you fair warning — while they appear easy on the surface, you won’t be able to get the latest revision of OpenCV and in some cases it won’t work well with virtual environments. You also might be missing features.
I still compile from source all the time and you should definitely learn how if you’re serious about working with OpenCV.
Download OpenCV 4
Let’s download OpenCV.
First, navigate to our home folder and download both opencv and opencv_contrib. The contrib repo contains extra modules and functions which we frequently use here on the PyImageSearch blog.You should be installing the OpenCV library with the additional contrib modules as well.
When you’re ready, just follow along to download both the opencv and opencv_contrib code:
2 | cv2.cpython-36m-darwin.so |
Let’s rename them to simply cv2.so :
2 4 6 8 10 12 14 | $unzip document-scanner.zip $tree ├──images │ └──receipt.jpg │ ├──__init__.py └──scan.py 2directories,5files |
As you can see, there are two sample images, a pyimagesearch module (which needs to be downloaded via the “Downloads” section — it is not pip-installable), and the scan script.
We’ll need one additional library added to our cv environment: Scikit-image. To install it, simply use pip. While you’re at it, if you didn’t install imutils earlier, go ahead and install it as well:
From there you can execute the following command to give OpenCV 4 a workout: