ubuntu14.04にopencv2もインストールする

##はじめに
opencv2を使う必要が生じたので、インストールしてみる。最終的にpythonで使えるところまでもっていく。ここのサイトを参考に進める。
http://shumilinux.blogspot.jp/2015/08/ubuntu-1404-lts-opencv.html
##環境
OS Ubuntu14.04
python 2.7.11
など
##事前準備
まず既存環境を最新状態にする。

```
sudo apt-get update
sudo apt-get upgrade
```

次に必要なパッケージをインストールする。

```
sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
```

次にOpenCVのソースファイルを準備する。

```
cd ~
wget https://github.com/opencv/opencv/archive/2.4.11.zip
unzip 2.4.11.zip
cd opencv-2.4.11/
```

##OpenCVをインストールする
buildディレクトリを作って、そこでcmakeする。

```
mkdir build
cd build/
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON ..
```

次にOpenCVをbuildする。

```
make
・・・
nvcc fatal   : Unsupported gpu architecture 'compute_11'
CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message):
  Error generating
  /home/ohmasa/opencv-2.4.11/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o


make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o] エラー 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] エラー 2
make: *** [all] エラー 2
```

<Font color="red">などとエラーが出た。`unsupported gpu architecture`って書いてある。</font>

ぐぐってみたところ、以下のようなサイトを発見した。
http://stackoverflow.com/questions/28010399/build-opencv-with-cuda-support
このAnswerによると、cmakeの時に`-D CUDA_GENERATION=Auto`などとやってないことが問題と思われる。よって上記をcmakeのオプションに加えて再度実行。

```
make
・・・
-- checking for module 'gstreamer-base-1.0'
--   package 'gstreamer-base-1.0' not found
-- checking for module 'gstreamer-video-1.0'
--   package 'gstreamer-video-1.0' not found
-- checking for module 'gstreamer-app-1.0'
--   package 'gstreamer-app-1.0' not found
-- checking for module 'gstreamer-riff-1.0'
--   package 'gstreamer-riff-1.0' not found
-- checking for module 'gstreamer-pbutils-1.0'
--   package 'gstreamer-pbutils-1.0' not found
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Looking for libavformat/avformat.h
-- Looking for libavformat/avformat.h - found
-- Looking for ffmpeg/avformat.h
-- Looking for ffmpeg/avformat.h - not found
-- CUDA detected: 8.0
・・・
```

さっきよりは進んだし、CUDAも認識されているようだが、いろんなもんが足りない感じ。

##エラーの対応
そこで発想を変えて、現状で最新の<Font color="blue">opencv2.4.13</font>を入れることにする。よって以下のようにやり直し。


```
wget https://github.com/opencv/opencv/archive/2.4.13.zip
unzip 2.4.13.zip
cd opencv-2.4.13/
mkdir build
cd build/
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON -D CUDA_GENERATION=Auto ..
```

すると問題なくcmakeされた。

```
make
```

`make`も問題なく完了した。

```
sudo make install
```

インストールもうまくいったみたい。
##サンプルプログラムを実行する
お決まりのlenaさん画像にfacedetectするサンプルを実行する。

```
cd ~/opencv-2.4.11/samples/c
chmod +x build_all.sh
./build_all.sh
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
```

ちゃんとlenaさんの顔に丸印がついた画像が表示された。