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

# はじめに

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

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

# CMakeのインストール

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

https://cmake.org/download/

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

# CMakeコマンドラインの設定

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

```sh:
$ 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は追加ライブラリですが、これがないとほとんど意味がないので必須だと思ってください(^_^;)

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

# OpenCVのインストール

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

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

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

[エラー表示]

```py:
>>> 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
>>> 
```

# シェルスクリプト

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

```sh: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
```