우분투 9.04 || OpenCV 설치

** 사전 설치 파일 **

libgnome2-dev
libgtk2.0-dev

위 두 패키지는 9.04에선 설치 안해도 되는거 같기도 함….; 이미 설치를 해보았기 때문에 확실하진 않음.

아래 링크에서 opencv 1.0을 다운받는다. 물론, linux 용으로 다운 받아야 한다.
http://sourceforge.net/projects/opencvlibrary

다운로드를 하면 아래와 같은 tar.gz 파일을 받을 수 있다.

openCV 파일 : opencv-1.0.0.tar.gz

압축을 해재하고 opencv 디렉토리로 이동한다.

$./configure –prefix=/usr/local/opencv –enable-apps –with-x –with-gnu-ld
이동 후 위와 같은 환경 설정을 한다.

환경 설정이 완료되었다면 make를 한다.

$make && make install

이 과정에서 마지막에 permission 오류가 날 수 있는데 만약 permission 오류가 난다면, sudo -s로 root 계정으로 변경 한다.

그후 다시

$make && make install 하게 되면 올바르게 수행 될 것이다.

다음으로 docs 디렉토리의 파일을 /usr/local/opencv/로 복사
$cp -R docs/ /usr/local/opencv/

$sudo vi /etc/ld.so.conf.d/opencv.conf
vi 편집기를 이용하여 다음 경로 추가
/usr/local/opencv/lib

다음 명령어로 lib 추가
$ldconfig -v

위 설정이 모두 완료되었다면 opencv가 올바르게 library로 등록됐다.

$g++ -o test test.cpp -I/usr/local/opencv/include/opencv -L/usr/local/opencv/lib -lcv -lhighgui

compile할때는 위의 명령어를 사용하여 compile하면 된다.

올바르게 됐는지 테스트를 해보고 싶다면 다음의 코드를 사용하면 될 것이다.

*********************************************************

#include <stdio.h>

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int main()
{
       double low_threshold = 0.0;
       double high_threshold = 70.0;

        IplImage *src_image;
       IplImage *gray_image;
       IplImage *canny_edge;
       IplImage *dst_image;

        char *lena = “test.jpg”;      // 이 이미지는 테스트 프로그램 소스와 같은 위치에 있어야함
       char *new_lena = “test_new.jpg”;  // 새로 생성되는 이미지

        src_image = cvLoadImage( lena, CV_LOAD_IMAGE_COLOR );
       if( src_image->nChannels != 3 )
       {
               printf(“[ERROR] 컬러 영상이 아닙니다!\n”);
               return -1;
       }

        gray_image = cvCreateImage( cvGetSize(src_image), IPL_DEPTH_8U, 1 );
       cvCvtColor( src_image, gray_image, CV_BGR2GRAY );

        canny_edge = cvCreateImage( cvGetSize(src_image), IPL_DEPTH_8U, 1);
       dst_image = cvCreateImage( cvGetSize(src_image), IPL_DEPTH_8U, 1);

        cvCanny(gray_image, canny_edge, low_threshold, high_threshold, 3);
       cvConvertScaleAbs(canny_edge, dst_image, 1, 0);

        cvSaveImage(new_lena, canny_edge);

        cvReleaseImage(&src_image);
       cvReleaseImage(&gray_image);
       cvReleaseImage(&canny_edge);
       cvReleaseImage(&dst_image);

        printf(“[SUCCESS] 잘 수행되었습니다!\n”);

        return 0;
}

원본 이미지생성된 이미지

Leave a Reply