티스토리 뷰

Computer vision/OpenCV

openCV를 사용한 SIFT 구현

미류[miryu17] 2010. 1. 13. 03:25

1. openCV 1.1a 를 설치합니다. 이곳에서 받습니다. 최근 버전은 2.0이지만 1.1을 사용합니다. 2.0도 되는지는 모르겠어요.

2. 설치된 코드는 실행코드 입니다. 개발시에는 릴리즈나 디버그 버전의 라이브러리가 필요하기 때문에 컴파일을 해야합니다.
 
1) ..OpenCV\_make 로 이동합니다.

2) opencv.vs2005.sln 를 2005나 2008로 불러옵니다.

3) Build → Batch Build를 선택하여 debug와 release에 모두 체크합니다.
    x64도 하시고 싶으면 하셔도 됩니다만 권장하지는 않습니다.


4) 아래와 같은 에러가 발생합니다.


오타때문에 발생하는 에러로 cvaux.h 파일을 수정해야 합니다.


1167 번째 라인의 ' ?/ ' 부분을 ' */ ' 으로 수정하고 다시 컴파일합니다.

5) 그럼 에러 없이 컴파일이 완료됩니다.


3. gsl 1.8 를 설치하고 컴파일을 합니다. gsl은 이곳에서 받습니다. 가능하면 source / setup 를 선택합니다.
    받은 후 설치합니다.(또는 압축을 해제합니다.)

4. Rob Hess 의 홈페이지에서 가장 최근의 SIFT Feature Detector를 받습니다. (오늘 기준으로 2009. 1. 8. 이 최신판입니다.)
    압축을 해제하면 여러 폴더가 나오는데, ..\match\match.sln을 열어서 컴파일 합니다. 아래와 같은 에러가 발생합니다.


5. openCV 라이브러리와 헤더파일의 경로설정이 빠져있기 때문에 발생하는 에러입니다.
   아래와 같이 Tool→Option에서 디렉토리 설정을 해줍니다.
1) Include files
C:\설치디렉토리\OpenCV\cv\include
C:\설치디렉토리\OpenCV\cvaux\include
C:\설치디렉토리\OpenCV\cxcore\include
C:\설치디렉토리\OpenCV\otherlibs\_graphics\include
C:\설치디렉토리\OpenCV\otherlibs\highgui

2) Library files
C:\설치디렉토리\OpenCV\lib

3) Source files
C:\설치디렉토리\OpenCV\cv\src
C:\설치디렉토리\OpenCV\cvaux\src
C:\설치디렉토리\OpenCV\cxcore\src
C:\설치디렉토리\OpenCV\otherlibs\_graphics\src
C:\설치디렉토리\OpenCV\otherlibs\highgui

※ 참고
cv 는 기본 computer vision 연산
cxcore 는 기본 데이터 구조, 산술, 그리기 연산
cvaux 는 cv 확장(기계학습 등)
highgui 는 gui 관련 을 담당합니다.

6. 컴파일을 하면 < fatal error C1083: Cannot open include file: 'gsl/gsl_sf.h': No such file or directory > 이라는 에러메시지가 발생합니다. 이 메시지 역시 gsl 디렉토리 설정이 되어있지 않기 때문에 발생하는 에러입니다. 5번과 동일한 방법으로 아래와 같이 추가합니다.
1) Include files
C:\설치디렉토리\GnuWin32\include

2) Library files
C:\설치디렉토리\GnuWin32\lib

7. 거의 끝났습니다. 컴파일을 하게 되면 < LINK : fatal error LNK1104: cannot open file 'libgsl_d.lib' > 과 같은 링크에러가 발생합니다. libgsl_d.lib 파일을 찾을 수 있으면 좋겠지만 < C:\설치디렉토리\GnuWin32\lib > 에는 그런 라이브러리가 없습니다. 하지만 libgsl.a 과 libgslcblas.a 파일이 있기 때문에 이 파일을 추가 시켜줍니다.
1) 프로젝트의 Property Pages 를 엽니다.
2) Configuration Property → Linker → Input →Additional Dependencies 에서 libgsl.a과 libgslcblas.a를 추가시킵니다.


8. 결과를 확인합니다. 이 때 OpenCV의 bin 디렉토리가 path에 설정되어있다면 별 이상없이 결과를 확인할 수 있습니다. 만약 path 설정이 안되어있다면 OpenCV의 dll을 찾는 에러 메시지를 출력합니다.

9. 결과



10. 참고
http://bit.ly/7iYrDT
http://bit.ly/75x26M
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함