MAC에서 OpenCV를 컴파일 하기
맥에서 OpenCV를 컴파일
http://opencv.willowgarage.com/wiki/Mac_OS_X_OpenCV_Port
이 페이지를 참조로 따라가면서 컴파일한다.
1. 시작은 OpenCV의 위키 페이지에서 시작한다.
http://opencv.willowgarage.com/wiki/
여기에서 올려져 있는 글을 찬찬이 읽어보면 많은 도움이 된다.
2. Learning OpenCV: Computer Vision with the OpenCV Library
- by Gary Bradski and Adrian Kaehler, O'Reilly Press, October, 2008.
- 책으로 잘 나온 것은 오라일리의 책입니다. 사실상 매뉴얼이라고 생각되고요, OpenCV사이트에서도
- 매뉴얼 대신으로 추천해주는 책입니다.
3. 다운로드는 SVN으로 한다.
http://sourceforge.net/svn/?group_id=22870
페이지에 가면 다운 받을 수 있는 커맨드가 있다. 이것을 이용하여 다운 받는다.
svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary opencvlibrary
이 커맨드는 전체를 모두 다운 받는 것이다. 전체라 함은 브랜치라던가 프리베타 버전과 같은 불필요한 부분까지 모두 다운 받은 것을 말합니다.
처음에는 폴더 구조 가은 것을 잘 모르므로, 그냥 한번 정도는 다운 받아 폴더 구조를 보는 것도 도움이 된다.
위의 커맨드를 넣으면 OpenCV를 다운 받을 수 있다.
아래 사이트에서도 다운 받을 수 있다.
http://sourceforge.net/project/showfiles.php?group_id=22870
이 글을 쓰는 현재 시점에서 최신 버전은 1.1pre 버전이다.
여기서는 후자인 tar파일을 직접 다운받아서 진행한다.
4. compile
일단 다른 폴더에서 빌드를 한다.
mkdir build
cd build
../opencv-1.1.0/configure CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib"
make
한참을 컴파일 하고 끝난다.
sudo make install
끝나면 위와 같이 인스톨을 한다.
5. 테스트 해보기
인스톨이 끝나면 다음과 같이 확인을 해 볼 수 있다.
샘플용 소스 코드를 다운 받는다.
일일이 코딩하기 귀찮으므로 그냥 간단히 다운 받는다.
인터넷에서 OpenCV sample을 서치하면 아래 사이트를 발견할 수 있다.
http://www.netaro.info/techinfo/OpenCV/src/index.html
여기에 가면 적당한 예제가 있다. 다운 받은 폴더에 가면 ZIP파일로 되어 있고 이것을 압축을 푼다.
컴파일을 하면 다음과 같은 오류가 발생한다.
GUNDAMMACPRO:edgedetect kevinIm$ make
gcc -c -g -Wall sampleEdge.c
gcc -o simpleedge sampleEdge.o -lhighgui -lopencv
ld: library not found for -lopencv
Makefile 을 보면 몇가지 잘못된 옵션이 있다. 버전차이라고 생각된다.. 일단 Makefile을 아래와 같이 수정한다.
gcc -o simpleedge sampleEdge.o -L/usr/local/lib -lhighgui -lcv -lcvaux -lcxcore
== WAS ==
LDFLAGS = -lhighgui -lopencv -L/usr/local/lib
== IS ==
LDFLAGS = -lhighgui -lcv -lcvaux -lcxcore -L/usr/local/lib
그리고 컴파일하면 다음과 같이 나온다.
GUNDAMMACPRO:edgedetect kevinIm$ make
gcc -c -g -Wall InteractiveEdgeDetect.c
InteractiveEdgeDetect.c:18: warning: ‘ltval’ defined but not used
InteractiveEdgeDetect.c:19: warning: ‘htval’ defined but not used
gcc -o intedge InteractiveEdgeDetect.o -lhighgui -lcv -lcvaux -lcxcore -L/usr/local/lib
실행은 간단하게 해본다.
아래 그림은 실행한 결과이다.
윤곽선을 추출하는 예제이다.
'Computer Vision' 카테고리의 다른 글
Rob Hess의 SIFT [3] (2) | 2009.02.23 |
---|---|
Rob Hess의 SIFT [2] (0) | 2009.02.18 |
Rob Hess의 SIFT [1] (1) | 2009.02.16 |
XcodeでOpenCV開発 (0) | 2009.01.03 |
파노라마 구성하기 (0) | 2009.01.03 |