Ubuntu 16.04: OpenCV 3.1をビルドしてインストールする

画像認識に有用なOpenCVの新しいバージョンをビルドしてインストールしてみます。

Ubuntu 14.04 / Ubuntu 16.04で確認しています。

 

1 OpenCVのビルドとインストール

UbuntuのOpenCV 2.4と同等になるよう、build-depを利用します。/usr/local/libにインストールされるのでexport LD_LIBRARY_PATH=/usr/local/libを実行してください。

$ sudo apt-get build-dep -y opencv
$ git clone https://github.com/Itseez/opencv
$ cd opencv
$ git checkout 3.1.0 -b 3.1.0
$ cmake -G 'Unix Makefiles' \
  -DCMAKE_VERBOSE_MAKEFILE=ON \
  -DCMAKE_BUILD_TYPE=Release  \
  -DBUILD_EXAMPLES=ON \
  -DINSTALL_C_EXAMPLES=ON \
  -DINSTALL_PYTHON_EXAMPLES=ON  \
  -DBUILD_NEW_PYTHON_SUPPORT=ON \
  -DWITH_FFMPEG=ON  \
  -DWITH_GSTREAMER=OFF  \
  -DWITH_GTK=ON \
  -DWITH_JASPER=ON  \
  -DWITH_JPEG=ON  \
  -DWITH_PNG=ON \
  -DWITH_TIFF=ON  \
  -DWITH_OPENEXR=ON \
  -DWITH_PVAPI=ON \
  -DWITH_UNICAP=OFF \
  -DWITH_EIGEN=ON \
  -DWITH_XINE=OFF \
  -DBUILD_TESTS=OFF \
  -DCMAKE_SKIP_RPATH=ON \
  -DWITH_CUDA=OFF \
  -DENABLE_PRECOMPILED_HEADERS=OFF \
  -DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=OFF \
  -DWITH_OPENGL=ON -DWITH_TBB=ON -DWITH_1394=ON -DWITH_V4L=ON
$ make && sudo make install

2 OpenCV-Pythonの実行

動画からサムネイルを作成するコードを実行してみます。OpenCV 2.4と比べて、cv2.cvとなっていた箇所がcv2になっております。

#!/usr/bin/env python

import sys

import cv2


def create_thumbnail(movie_name, image_name):
    capture = cv2.VideoCapture(movie_name)
    max_frame = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))
    half_frame = max_frame // 2
    capture.set(cv2.CAP_PROP_POS_FRAMES, half_frame)
    retval, image = capture.read()
    if not retval:
        return False
    cv2.imwrite(image_name, image)
    return True


if __name__ == '__main__':
    argv = sys.argv
    if len(argv) != 3:
        print('Create thumbnail of movie at half position.')
        print('usage: %s [Input movie] [Output thumbnail]' % argv[0])
        exit(1)
    create_thumbnail(argv[1], argv[2])

MP4ファイルからPNGファイルが作成されました。

$ python create-thumbnaiil.py input.mp4 output.png
$ file output.png
output.png: PNG image data, 480 x 360, 8-bit/color RGB, non-interlaced