I wanted to set up the latest OpenCV version on my Mac. I found various instructions, but few that applied specifically to my setup — Mac OS X High Sierra running Anaconda. What follows are my steps to compile and install the latest OpenCV version onto my Mac.
Prerequisites
You’ll need a few things first…if you don’t have these, set them up now.
- Xcode and its command-line tools
- A working Python 3.x environment (hint: use Anaconda)
- Homebrew
Once you have those installed, you’re ready to start. You’ll need to install some pre-requisite packages. Each of the following is a separate command:
brew install cmake pkg-config brew install jpeg libpng libtiff openexr brew install eigen tbb
Next, you’ll need the OpenCV source code. Clone OpenCV and OpenCV_contrib:
cd ~ git clone https://github.com/opencv/opencv git clone https://github.com/opencv/opencv_contrib cd ~/opencv mkdir build cd build
Next you’ll configure `make` with the following command. All of this is one big command, split over multiple lines, and yes it does end with two periods. You can just copy it all and paste in your terminal.
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") \ -D OPENCV_EXTRA_MODULES_PATH=/Users/timpoulsen/repos/opencv/opencv_contrib/modules \ -D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ -D PYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ -D PYTHON3_EXECUTABLE=$(which python) \ -D BUILD_opencv_python2=OFF \ -D BUILD_opencv_python3=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D WITH_FFMPEG=ON \ -D BUILD_EXAMPLES=ON ..
That command will take a while…after which you can do the actual build:
make -j4
That will take even longer; depending on the speed of your system it could take an hour or longer. Once it’s all done, you’re ready to actually install the compiled project:
sudo make install
That will copy all the files to the right spot on your system. At this point, you’re pretty much done. I found a few guides that suggested that you need to rename (or copy or link) one of the .so files that was copied to your python lib folder.
Rather than digging for the location of that folder, what the first command below does is ask python to find that folder for you and pass it to the `cd` command:
cd $(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") cp cv2.cpython-36m-darwin.so cv2.so
Finally, you’re done and ready test your work:
$ python Python 3.6.3 |Anaconda, Inc.| (default, Oct 6 2017, 12:04:38) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.4.1-dev'
That’s it, OpenCV is installed!