OpenCV is the world’s most popular computer vision library and it’s used extensively by researchers and developers around the world. OpenCV has been around for a while now and they add something new and interesting with every new release. One of the main additions of OpenCV 3 is “opencv_contrib” which contains a lot of cutting edge algorithms for feature descriptors, text detection, object tracking, shape matching, and so on. They have greatly improved Python support in this release as well. Since OpenCV is available on almost all the popular platforms, this version looks very promising. Let’s see how to install OpenCV 3 with Python support on Mac OS X.
CMake: Make sure you have cmake. If you don’t, you can download it from here. It’s a dmg file, so you can just download it and run the installer.
Install Python using Homebrew: This is an important step! Homebrew is a package manager for OS X that makes our lives easier in many different ways. Instead of using system Python, we need to use brewed Python (this is basically Python installed using Homebrew). If you don’t have Homebrew, you can install it using the following command:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master
Now that Homebrew is installed, let’s update it and install Python:
$ brew update $ brew install python
Open up your ~/.profile file and add the following line:
We need to reload the file to update the environment variables. Run the following command to do it:
$ source ~/.profile
Let’s confirm that you are using brewed Python. Run the following command from your terminal:
$ which python /usr/local/bin/python
If you see “/usr/local/bin/python” printed on your terminal, you can proceed.
Download OpenCV 3.0.0: You can download it from here.
Download “opencv_contrib”: As discussed earlier, we can use the latest computer vision algorithms from “opencv_contrib”. It is basically a repository that contains state of the art algorithms. Bear in mind that some of them are not free for commercial use, but it is great tool to learn new algorithms. Download opencv_contrib from here.
We are now ready to build. Run the following commands from you terminal:
$ cd /path/to/opencv-3.0.0/ $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/path/to/opencv-3.0.0/build -D PYTHON2_LIBRARY=/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/bin -D PYTHON2_INCLUDE_DIR=/usr/local/Frameworks/Python.framework/Headers -D PYTHON2_PACKAGES_PATH=/usr/local/lib/python2.7/site-packages -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib-3.0.0/modules ../
Let’s take a moment to understand what these flags mean exactly:
- CMAKE_BUILD_TYPE=RELEASE : We are telling cmake that we are building a “release” version of OpenCV.
- CMAKE_INSTALL_PREFIX : This is the directory where OpenCV 3.0.0 will be installed
- PYTHON2_LIBRARY : This is the path to your brewed Python (Hombrew installation of Python)
- PYTHON2_INCLUDE_DIR : This is the path to Python header files for compilation.
- INSTALL_C_EXAMPLES : This flag indicates that the C/C++ examples need to be installed after compilation.
- INSTALL_PYTHON_EXAMPLES : This flag indicates that the Python examples need to be installed after compilation.
- BUILD_EXAMPLES=ON : This flag indicates that we want to compile the included OpenCV examples.
- OPENCV_EXTRA_MODULES_PATH : This flag indicates that OpenCV should compile the extra modules (opencv_contrib) that we downloaded earlier.
Let’s go ahead and install OpenCV 3.0.0. Make sure you are inside the directory “/path/to/opencv-3.0.0/build” and run the following commands:
$ make -j4 $ make install
The “-j4” flag indicates that it should use 4 cores. We are not done yet! Let’s set the library path:
$ export DYLD_LIBRARY_PATH=/path/to/opencv-3.0.0/build/lib:$DYLD_LIBRARY_PATH
If you want to make it permanent, just add the following line in your “~/.profile” file:
We need to copy the pkg-config file “opencv.pc” to “/usr/local/lib/pkgconfig” and name it “opencv3.pc” so that it doesn’t conflict with our existing OpenCV 2.4.x config file:
$ cp /path/to/opencv-3.0.0/build/lib/pkgconfig/opencv.pc /usr/local/lib/pkgconfig/opencv3.pc
We also need to update our PKG_CONFIG_PATH environment variable to make sure it knows where opencv3.pc is located. Open up your “~/.profile” file and add the following line:
Reload your “~/.profile” file.
$ source ~/.profile
Let’s see if OpenCV with C++ is working:
$ cd /path/to/opencv-3.0.0/samples/cpp $ g++ -ggdb `pkg-config --cflags --libs opencv3` opencv_version.cpp -o /tmp/opencv_version && /tmp/opencv_version
If you see “Welcome to OpenCV 3.0.0” printed on the terminal, you are good! Let’s check the OpenCV-Python version:
$ python -c "import cv2; print cv2.__version__"
You should see “3.0.0” printed on the terminal. If you see that, then you are done! You have successfully installed OpenCV 3 with Python support on Mac OS X. Let’s check if it’s working by using something that exists in OpenCV 3.0.0 but not in OpenCV 2.4.9. Go into Python shell by typing “python” in your terminal and run the following commands:
>>> import cv2 >>> detector = cv2.AKAZE_create()
If the above line doesn’t throw an error, then you are all set! You have now successfully verified your OpenCV 3 installation with Python support.