Scientific Linux - OpenCV をソースからインストール
Updated:
現在、当方のサーバ(Scientific Linux 6.1)でUSBカメラのキャプチャ画像をライブカメラとして運用するのに、「xawtv」というキャプチャソフトを使用しています。 使用しているUSBカメラはこれ↓
導入方法は以下の過去記事参照。(Fedora での構築方法ですが同じです)
しかし、サーバでは Ruby を使ってUSBカメラを操作したいと思い、OpenCV を導入してみました。
この OpenCV とは、インテル社が開発したオープンソースのライブラリ集(C/C++)で、画像から人間の顔を検出して自動でモザイクをかけたり、動く物体を自動で追跡したりと様々な処理が可能です。
実際に Ruby で OpenCV を使用するには、本家の OpenCV 導入とは別に Ruby/OpenCV が必要のようですが、今回はとりあえず本家の OpenCV を導入しました。
当方の Linux サーバは Scientific Linux なので、yum を使えば OpenCV パッケージはインストールできますが、リポジトリの関係でバージョンが多少古いです。 ※当記事執筆時点で OpenCV の最新は 2.3.1a なのに対して、yum でのインストールバージョンは 2.0。
そこで、ソースからのインストールを試みました。
OpenCV 導入手順
OpenCV の最新は 2.3.1a ですが、当方の環境では 2.3.1a では cmake でエラーとなるので、今回は 2.3.0 をインストールしました。
1.cmake のインストール
コンパイルに必要な cmake をインストールする。
# yum -y install cmake
2.各種ライブラリのインストール
画像データを扱うためのライブラリ(JPEG・PNG・TIFF・圧縮)をインストールする。
# yum -y install libjpeg libjpeg-devel
# yum -y install libpng libpng-devel
# yum -y install libtiff libtiff-devel
# yum -y install zlib zlib-devel
3.OpenCV のダウンロード・展開
OpenCV アーカイブをダウンロード後、アーカイブを展開し、リリース用バイナリの配置場所(ディレクトリ)を作成します。
# wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3/OpenCV-2.3.0.tar.bz2/download
# tar jxvf OpenCV-2.3.0.tar.bz2
# cd OpenCV-2.3.0
# mkdir release
# cd release
4.OpenCV のインストール
configure(Makeファイル作成)、make(コンパイル)、make install(インストール)を行います。
# cmake -D BUILD_EXAMPLES=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D WITH_1394=OFF -D ENABLE_OPENMP=ON ../
# make
# make install
Scientific Linux への導入手順は以上ですが、OpenCV-2.3.1a で同様に cmake した時に発生したエラーは以下のとおり。
# cmake -D BUILD_EXAMPLES=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D WITH_1394=OFF -D ENABLE_OPENMP=ON ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:44 (set_property):
set_property given invalid scope CACHE. Valid scopes are GLOBAL,
DIRECTORY, TARGET, SOURCE, TEST.
====< 途中省略 >====
-- Configuring incomplete, errors occurred!
ちなみに、CMakeLists.txt の44行目付近は以下のようになっていました。
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
if(DEFINED CMAKE_BUILD_TYPE)
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
endif()
どうやら、CACHE 変数がおかしいようですが、精査していないので詳細は不明。 (バージョンが 2.3.1a と a が付いているので rc版? と勝手に判断 )
とりあえず、2.3.0 が入ったので OK としました。 当方のサーバには Ruby は既に導入済みなので、可能なら次は Ruby/OpenCV の導入を試してみたいです。
以上。
Comments