OpenCV 2.4.10のインストール

3888 ワード

最近ubuntu 12.06(x 86)のインストールをテストして、openCV
インストールスクリプト
一番いい文章はhttps://help.ubuntu.com/community/OpenCVスクリプト(opencv.sh)を提供し、すべてのインストールを行います.
version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9]+)+' | cut -c2-)"
echo "Installing OpenCV" $version
mkdir OpenCV
cd OpenCV
echo "Removing any pre-installed ffmpeg and x264"
sudo apt-get -qq remove ffmpeg x264 libx264-dev
echo "Installing Dependenices"
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
echo "Downloading OpenCV" $version
wget -O OpenCV-$version.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".zip/download
echo "Installing OpenCV" $version
unzip OpenCV-$version.zip
cd opencv-$version
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -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 ..
make -j2
sudo checkinstall
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
echo "OpenCV" $version "ready to be used"

シナリオを少し読むと、それがやっていることがわかります.次の点について説明します.
1)make installではなくcheckinstallで
CheckInstall keeps track of all files installed by a "make install"or equivalent, creates a Slackware, RPM, or Debian package with those files, and adds it to the installed packages database, allowing for easy package removal or distribution.
CheckInstallは優れたソースインストールソフトウェアであり、Linuxソフトウェア管理をより便利にします.特に、ソースコードの繰り返しコンパイルが必要な場合、CheckInstallはシステムの一貫性を少しも破壊しない前提でプログラムを完全にアンインストールすることができます.また、これらのコンパイルされたインストールパッケージを使用して、他のマシンに直接インストールして再コンパイルする必要はありません.
2)LD_が設定されていないLIBRARY_PATHではなくldconfigで
ldconfigは動的リンクライブラリ管理コマンドである、動的リンクライブラリをシステムとして共有するために、動的リンクライブラリの管理コマンドであるldconfig ldconfigコマンドを実行する用途であり、主にデフォルトの検索ディレクトリ(/libおよび/usr/lib)および動的ライブラリプロファイル/etc/ldである.so.conf内に列挙するディレクトリの下で、共有可能なダイナミックリンクライブラリ(フォーマットは前述のlib*.so*)を検索し、さらにダイナミックローダ(ld.so)に必要な接続とキャッシュファイルを作成する.キャッシュファイルのデフォルトは/etc/ldです.so.Cache、このファイルは並べ替えられたダイナミックリンクライブラリの名前のリストを保存します.
コンパイルエラー
コンパイル中にエラーが発生しました(x 86ならではかもしれません)
http://git.buildroot.net/buildroot/tree/package/opencv/opencv-0001-core-fix-x86-PIC-code-compilation.patch?id=2b581cc04f3b106928f3d0c3b7fb6c44e50c8a61
Opencvの使用
pythonの例
from cv2.cv import *

img = LoadImage("/home/USER/Pictures/python.jpg")
NamedWindow("opencv")
ShowImage("opencv",img)
WaitKey(0)

C++例
#include<opencv2/highgui/highgui.hpp>
using namespace cv;

int main()
{

    Mat img = imread("/home/USER/Pictures/python.jpg",CV_LOAD_IMAGE_COLOR);
    imshow("opencvtest",img);
    waitKey(0);

    return 0;
}

コンパイルコマンド
$ g++ -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.cpp .cpp` opencvtest.cpp `pkg-config --libs opencv`
$ ./opencvtest

Makefileファイルを直接書くと
CFLAGS = `pkg-config --cflags opencv`
LIBS = `pkg-config --libs opencv`

% : %.cpp
        g++ $(CFLAGS) $(LIBS) -o $@ $<

( ref: http://stackoverflow.com/questions/9870297/makefile-to-compile-opencv-code-in-c-on-ubuntu-linux) 
pkg-configコマンドの使い方も説明します