Cygwin で OpenCV(再掲)

WindowsOpenCVを使うにはVC++Cygwinになると思うのですが、Cygwinでやる方法を再掲します。Cygwinはすでに入っているとしてOpenCVのダウンロードからです。SourceForgeにあるのでopencv-winのbeta5を落とします。

http://sourceforge.net/projects/opencvlibrary/

基本的にはこちらのサイトを参考にしているのでうまくいかない場合はそちらを見てください。OpenCVは "C:\Program Files/OpenCV" にインストールされているものとします。その他細かいパスの違いとかは適当に直してください。


#!/usr/bin/bash

ln -s /cygdrive/c /C
echo EXPORTS > cxcore.def
nm /C/\"Program Files\"/OpenCV/lib/cxcore.lib | grep ' T _' | sed 's/.* T _//' >> cxcore.def
dlltool --def cxcore.def --dllname cxcore097.dll --output-lib libcxcore.dll.a

echo EXPORTS > cv.def
nm /C/\"Program Files\"/OpenCV/lib/cv.lib | grep ' T _' | sed 's/.* T _//' >> cv.def
dlltool --def cv.def --dllname cv097.dll --output-lib libcv.dll.a

echo EXPORTS > cvaux.def
nm /C/\"Program Files\"/OpenCV/lib/cvaux.lib | grep ' T _' | sed 's/.* T _//' >> cvaux.def
dlltool --def cvaux.def --dllname cvaux097.dll --output-lib libcvaux.dll.a

echo EXPORTS > highgui.def
nm /C/\"Program Files\"/OpenCV/lib/highgui.lib | grep ' T _' | sed 's/.* T _//' >> highgui.def
dlltool --def highgui.def --dllname highgui097.dll --output-lib libhighgui.dll.a

echo EXPORTS > cvcam.def
nm /C/\"Program Files\"/OpenCV/lib/cvcam.lib | grep ' T _' | sed 's/.* T _//' >> cvcam.def
dlltool --def cvcam.def --dllname cvcam097.dll --output-lib libcvcam.dll.a

cp lib*.a /usr/local/lib

cp /C/\"Program Files\"/OpenCV/bin/cxcore097.dll /usr/local/bin
cp /C/\"Program Files\"/OpenCV/bin/cv097.dll /usr/local/bin
cp /C/\"Program Files\"/OpenCV/bin/cvaux097.dll /usr/local/bin
cp /C/\"Program Files\"/OpenCV/bin/highgui097.dll /usr/local/bin
cp /C/\"Program Files\"/OpenCV/bin/cvcam097.dll /usr/local/bin

mkdir /usr/local/include
mkdir /usr/local/include/opencv
cp /C/\"Program Files\"/OpenCV/cxcore/include/*.h /usr/local/include/opencv
cp /C/\"Program Files\"/OpenCV/cv/include/*.h /usr/local/include/opencv
cp /C/\"Program Files\"/OpenCV/cvaux/include/*.h /usr/local/include/opencv
cp /C/\"Program Files\"/OpenCV/otherlibs/highgui/*.h /usr/local/include/opencv
cp /C/\"Program Files\"/OpenCV/otherlibs/cvcam/include/*.h /usr/local/include/opencv

これをコピペして build.sh とでもして保存、Cygwin上で実行して下さい。

Makefileはなんか自分の環境だと動かなくて、参考サイトとライブラリのリンク指定が違ってるんですが、こんな感じでいけました。


CC = g++ -O
LIB = -L/usr/local/lib -L/usr/lib
INC = -I/usr/local/include/opencv -I/usr/include
OPT = -llibcxcore -llibhighgui
BIN = sample

all: $(BIN)
sample: sample.cpp Makefile
$(CC) sample.cpp $(INC) $(LIB) $(OPT) -o $@

clean:
rm *.exe