1. 루트를 얻는다.
$ sudo -s
2. 필요한 파일들을 받는다.
# apt-get install libssl-dev openssl
# apt-get install pkg-config
# apt-get install libgtk2.0-0
# apt-get install libgtk2.0-dev
# apt-get install libavformat-dev libswscale-dev
# apt-get install libjpeg-dev
# apt-get install cmake
# apt-get update
# apt-get install gcc-4.3
# apt-get install build-essential
3. OpenCV를 다운로드 받는다.
# wget http://sourceforge.net/projects/opencvlibrary/files/OpenCV-2.2.0.tar.bz2
# tar xvf OpenCV-2.2.0.tar.bz2 // 압축을 푼다.
# ln -s OpenCV-2.2.0 OpenCV // 링크를 만든다.
# cd OpenCV
# mkdir release
# cd release
4. 중간 파일 빌드 (다시 컴파일 할 경우 여기부터)
# cmake -D CMAKE_BUILD_TYPE=release -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ../
or
# cmake . -DUSE_SSE=ON -DUSE_SSE2=ON
5. 최종 바이너리 빌드
# make
# make install
# ldconfig
6. 시스템 라이브러리 경로 설정
# export LD_LIBRARY_PATH=~/projects/opencv/release/lib:$LD_LIBRARY_PATH
# ldconfig
<확인 루틴>
# echo $LD_LIBRARY_PATH
7. 이제 이클립스를 설치하자
# apt-get install eclipse
# apt-get install eclipse-cdt
# apt-get install pdebuild
8. 이클립스를 열어서 CDT를 설치하자
이클립스->HELP->Install New Software->ADD
name: Galileo
location: http://download.eclipse.org/tools/cdt/releases/galileo/
이렇게 해서 나온 cdt main은 모두 설치하고, cdt optional feature는 +를 클릭 후 Remote Launch 밑에는 모두 체크를 해제한다.
계속 NEXT와 FINISH 를 누른다.
9. 이클립스에서 C++ 프로젝트를 만든다. (Hello World 프로젝트)
1. 프로젝트의 팝업 메뉴 -> properties -> C/C++ Build에 Setting을 클릭한다.
2. 오른쪽에 GCC C Compiler와 GCC C Compiler++ 아래에 있는 Directories를 선택한다.
3. Include Directories를 아래와 같이 설정합니다.
/home/human/OpenCV/include/opencv
4. GCC C++ Linker 아래에 있는 Libraries를 클릭한다.
opencv_core, opencv_highgui, opencv_imgproc, opencv_ml, opencv_video, opencv_features2d, opencv_calib3d, opencv_objdetect, opencv_contrib, opencv_legacy, opencv_flann 를 추가 (이 때 하나씩 넣어야 한다. 앞에 두 개는 필수!)
5. Library search path에 다음과 같이 넣는다.
/usr/local/lib
6. Release 모드에서도 하고 싶다면 반복
10. 다음의 예제 소스를 넣고 실험해보자.
1. 이미지 출력
#include <stdio.h>
#include <math.h>
#include "cv.h"
#include "highgui.h"
int main() {
printf("Hello \r\n");
cvNamedWindow("Test",CV_WINDOW_AUTOSIZE);
IplImage* image=0;
image=cvLoadImage("image.jpg", CV_LOAD_IMAGE_COLOR);
if(image==0)
printf("image doesn't exist");
else
{
cvShowImage("Test", image);
cvWaitKey(0);
cvReleaseImage(&image);
}
return 0;
}
2. 웹캠 사용
#include <cv.h>
#include <highgui.h>
void main()
{
IplImage* image = 0;
// CAM 참조
CvCapture* capture = cvCaptureFromCAM(0);
// 윈도우 속성, 0 고정
cvNamedWindow( "CAM", 0 );
// 윈도우 크기 400*300
cvResizeWindow( "CAM", 400, 300 );
// cvGrabFrame()함수는 capture 변수로 CAM을 참조, T/F반환
while(cvGrabFrame( capture )) {
// CAM에서 가져온 프레임을 image에 저장
image = cvRetrieveFrame( capture );
// image 출력
cvShowImage( "CAM", image );
// ESC 입력시 break
if( cvWaitKey(10) >= 0 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "CAM" );
}