まだ書いてる途中だよ。
ちょっと遊んでみるよ。
Virtual Boxのインストール
まず、Ubuntu11.04 は Virtual Box の仮想PCにインストールする。
Virtual Boxは下記サイトから入手
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
Ubuntu11.04をVirtual Boxにインストール
Ubuntuのイメージは下記サイトの日本語 Remix CDイメージをダウンロードする。
Virtual Box用の仮想マシンもあるけれどバージョンが古いので今回はやめておく。
http://www.ubuntulinux.jp/products/GetUbuntu
Virtual Boxへのインストール方法は他サイトを見てもらうことにして、インストール後の設定をいくつか。
Ubuntuを起動後、[デバイス] – [Guest Additionsのインストール] をクリックしておく。
一旦、Ubuntuをシャットダウンしておいて、Virtual Boxの設定で[ディスプレイ]の項目の[3Dアクセラレーションを有効化]をチェックおく。
Unityを使わなければいらないかも。
これ以降、Ubuntuにログインするときにログイン画面の下部で[Ubuntu]を選ぶとUnityで起動し、[Ubuntu クラシック]を選ぶとGNOMEで起動する。
OpenCV2.2をインストール
いよいよ下記サイトを参考にOpenCV2.2をインストールする。
必要な作業はページ中央部分からの「OpenCV 2.2をインストールする」の部分。
http://d.hatena.ne.jp/ser1zw/20110430/1304104548
今回は少し手順が異なっている。
1.依存ライブラリ、ツールをインストールする。
不要なものもあるけどとりあえずインストールしておく。
1行で掛けないので改行してある。
$ sudo apt-get install mingw32 cmake pkg-config build-essential \
libtbb2 libtbb-dev \
libgtk2.0-0 libgtk2.0-dev \
libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev libpngwriter0-dev libpngwriter0c2 \
libjpeg62 libjpeg62-dev libjpeg-progs \
zlib1g zlib1g-dev libjasper-dev libjasper-runtime libjasper1 \
pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools \
ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev \
libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev \
libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev \
libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev \
python-numpy libpython2.7 python python-dev \
openexr libswscale0 libswscale-dev libeigen2-dev libopenexr-dev
2.CMAKE用のファイルを作成する。
各自のhomeにCmake用のファイル Toolchain-mingw32.cmake をテキストエディタで作成する。
<内容>
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc)
SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc /home/ユーザーアカウント/opencv_win )
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
※ユーザーアカウントの部分はそれぞれ変更する。
3.OpenCVのソースを取得 & Make する。
下記サイトからWin用のソースコード OpenCV-2.2.0-win.zip をダウンロードする。
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/
展開したファイルに下記のパッチをあてる。
https://code.ros.org/trac/opencv/ticket/937
/OpenCV-2.2.0/tests/cv/src/tabruteforcematcher.cpp
/OpenCV-2.2.0/tests/cv/src/afeatures2d.cpp
エラーが出るのでBruteForceMatcher 使用箇所を潰す。
たぶんテンプレート関数周りだと思うけど、追うのが面倒なのでとりあえず潰す。
$ cd OpenCV-2.2.0 $ mkdir release $ cd release $ cmake -D CMAKE_TOOLCHAIN_FILE=/home/ユーザーアカウント/Toolchain-mingw32.cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/ユーザーアカウント/opencv_win -D WITH_GTK=ON .. $ make && make install
Makefile をつくる。
内容はこんな感じかな。
CXX = i586-mingw32msvc-g++ CXXFLAGS = -I/home/ユーザーアカウント/opencv/include -I/usr/local/include LDFLAGS = -L/home/ユーザーアカウント/opencv/bin -llibopencv_calib3d220 -llibopencv_contrib220 -llibopencv_core220 -llibopencv_features2d220 -llibopencv_ffmpeg220 -llibopencv_flann220 -llibopencv_gpu220 -llibopencv_highgui220 -llibopencv_imgproc220 -llibopencv_legacy220 -llibopencv_ml220 -llibopencv_objdetect220 -llibopencv_ts220 -llibopencv_video220 TARGET = $@ SOURCE = $@.cpp TARGET: $(CXX) -o $(TARGET).exe $(SOURCE) $(CXXFLAGS) $(LDFLAGS) .PHONY: clean clean: rm -f *.o *~
これで hoge.cpp をmakeするときは、
$make hoge
ってすると、実行ファイル hoge ができる。
でも、hogeは WindowsのEXEファイルだから hoge.exe にリネームしてWindows で実行すれば動く。
けど、-o オプションを変更して .exe でつくられるようにすればいいんだろうけど、今のところうまくいっていない。