Help us understand the problem. What is going on with this article?

OS X El CapitanにOpenCV最新版をインストールする手順 without Homebrew

More than 3 years have passed since last update.

はじめに

MacでOpenCVの最新版を試すために、ソースコードをコンパイルしてインストールする手順を以下にまとめます。
El Capitanと書いてありますが、動作確認をEl Capitanで行っているからであって、他のバージョンでも動く...と思われます。

まずは、準備としてXcodeをインストールしておいて下さい。

CMakeのインストール

以下のサイトからdmgファイルをダウンロードしてインストールします。

https://cmake.org/download/

ちなみに僕がダウンロードしたのは「cmake-3.6.2-Darwin-x86_64.dmg」というファイルでした。

CMakeコマンドラインの設定

GUIでインストールしたCMakeをコマンドラインでも使用できるように、以下のコマンドを実行します。

$ sudo ln -s "/Applications/CMake.app/Contents/bin/ccmake" /usr/local/bin/ccmake
$ sudo ln -s "/Applications/CMake.app/Contents/bin/cmake" /usr/local/bin/cmake
$ sudo ln -s "/Applications/CMake.app/Contents/bin/cmake-gui" /usr/local/bin/cmake-gui
$ sudo ln -s "/Applications/CMake.app/Contents/bin/cmakexbuild" /usr/local/bin/cmakexbuild
$ sudo ln -s "/Applications/CMake.app/Contents/bin/cpack" /usr/local/bin/cpack
$ sudo ln -s "/Applications/CMake.app/Contents/bin/ctest" /usr/local/bin/ctest

OpenCVのダウンロード

最新版をGitHubからダウンロードします。
ちなみにopencv_contribは追加ライブラリですが、これがないとほとんど意味がないので必須だと思ってください(^_^;)

$ cd ~
$ git clone https://github.com/Itseez/opencv.git
$ git clone https://github.com/Itseez/opencv_contrib.git

OpenCVのインストール

以下のコマンドでコンパイルして、インストールします。

$ cd opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_EXECUTABLE=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/bin/python \
-D PYTHON3_INCLUDE_DIR=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/include/python3.5m \
-D PYTHON3_LIBRARY=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/libpython3.5m.dylib \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/numpy/core/include \
-D PYTHON3_PACKAGES_PATH=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
..
$ make -j4
$ sudo make install

ちなみに、Python3は以下のページにある手順でインストールしました。
なお、上記のコマンドはAnacondaのバージョン3-4.1.1用のものなので、バージョンが異なる場合はご利用のバージョンにあわせて編集してお使い下さい。また、[username]と表記している部分もインストールされるMacの環境にあわせて編集が必要です。

http://qiita.com/mix_dvd/items/d915752215db67919c06

追加ライブラリのインストール

Pythonからサンプルコードを動作させようとすると、ライブラリの読み込みに失敗する旨のエラーが表示されるので、別のプログラムからコンパイル済みのライブラリーを拝借して利用します。

$ cd ~/
$ git clone https://github.com/open-ephys-GUI-binaries/osx-yosemite.git
$ sudo cp osx-yosemite/libhdf5* /usr/local/lib

[エラー表示]

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so, 2): Library not loaded: libhdf5_cpp.11.dylib
  Referenced from: /usr/local/lib/libopencv_hdf.3.1.dylib
  Reason: image not found
>>> 

シェルスクリプト

以下のシェルスクリプトを実行するとインストールが完了する...はず。
ユーザー名や各アプリケーションのバージョンについては、適宜変更してご利用ください。

install_opencv.sh
# CMakeインストール
curl -OL https://cmake.org/files/v3.7/cmake-3.7.0-rc1-Darwin-x86_64.dmg
hdiutil mount ./cmake-3.7.0-rc1-Darwin-x86_64.dmg
sudo cp -r /Volumes/cmake-3.7.0-rc1-Darwin-x86_64/CMake.app /Applications
umount /Volumes/cmake-3.7.0-rc1-Darwin-x86_64
# CMake設定
sudo ln -s "/Applications/CMake.app/Contents/bin/ccmake" /usr/local/bin/ccmake
sudo ln -s "/Applications/CMake.app/Contents/bin/cmake" /usr/local/bin/cmake
sudo ln -s "/Applications/CMake.app/Contents/bin/cmake-gui" /usr/local/bin/cmake-gui
sudo ln -s "/Applications/CMake.app/Contents/bin/cmakexbuild" /usr/local/bin/cmakexbuild
sudo ln -s "/Applications/CMake.app/Contents/bin/cpack" /usr/local/bin/cpack
sudo ln -s "/Applications/CMake.app/Contents/bin/ctest" /usr/local/bin/ctest
# OpenCVダウンロード
cd ~
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
# OpenCVインストール
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_EXECUTABLE=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/bin/python \
-D PYTHON3_INCLUDE_DIR=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/include/python3.5m \
-D PYTHON3_LIBRARY=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/libpython3.5m.dylib \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/numpy/core/include \
-D PYTHON3_PACKAGES_PATH=/Users/[username]/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
..
make -j4
sudo make install
# 追加ライブラリインストール
git clone https://github.com/open-ephys-GUI-binaries/osx-yosemite.git
sudo cp osx-yosemite/libhdf5* /usr/local/lib
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away