SURF/OpenCV 2011.09.22 15:22
1. http://opencv.willowgarage.com/wiki/Welcome  여기로 가서   
  윈도우용 OpenCV 2.3.1 버젼을 받는다.

2. 앞축을 풀어서 원하는 폴더에 저장한다. 나는C드라이브에 바로 풀었다. 
   앞축을 풀면 폴더명이 opencv인데, 나는 OpenCV2.3.1로 변경하였다.
   즉, C:\OpenCV2.3.1 이 저장된 디렉토리이다. 

3. C:\OpenCV2.3.1\build\x86\vc10\bin 에 있는 파일들을    
    C:\Windows\System32폴더에 카피해 준다.  
   그리고 64비트 컴퓨터라면,  C:\Windows\SysWOW64 여기에도 똑같이
   카피해 준다. 이거 안하면, 컴파일은 되어도 실행시키면
   opencv_highgui231d.lib라이브러리 없다고,
   프로그램 다시 설치하라고 경고뜬다. 이거 몰라서 이틀동안 삽질했다.

여기까지 하면 일단 컴퓨터 환경은 설정 된거임. 다음으로 Visual Studio 설정을 해야 함.

4. 일단 프로젝트를 하나 만든다. 콘솔 기반으로...

5. 아래 그림과 같이 프로젝트 프로퍼트에서 VC++ Directories 에서 설정을 한
    다.


   우선 Include Directories에서 
         C:\OpenCV2.3.1\build\include 
       C:\OpenCV2.3.1\include\opencv
       C:\OpenCV2.3.1\include\opencv2

 이렇게 추가해 준다. 디렉토리 경로는 본인이 설치한 경로를 그대로 따라간다. 

6. 다음으로 위의 그림에서 Library Directories를 추가해 준다. 
     C:\OpenCV2.3.1\build\x86\vc10\lib
   
상황에 따라서는 아래의 디렉토리를 링크할 수도 있다.  

     C:\OpenCV2.3.1\build\x86\vc10\staticlib
   주의할 점은, 위의 두개의 라이브러리 디렉토리를 동시에 링크하지 말것~!  
    동시에 링크하면 폭풍 에러 메세지를 보게 될 것이다. ㅜ.ㅜ
    이것땜에 또 한참 고생했다. 

 

 위 그림처럼 두개 동시에 링크걸면 폭풍에러 걸림 
 
C:\OpenCV2.3.1\build\x86\vc10\lib 하나만 링크 걸 것~!!!

7. 다음으로 프로퍼티 창에서 Linker -> Input 으로 들어간 후에
    Additional Dependencies 를 설정한다. 

  위와 같은 창이 뜨면, 다음 라이브러리를 추가한다.
opencv_calib3d231d.lib
opencv_contrib231d.lib
opencv_core231d.lib
opencv_features2d231d.lib
opencv_flann231d.lib
opencv_gpu231d.lib
opencv_haartraining_engined.lib
opencv_highgui231d.lib
opencv_imgproc231d.lib
opencv_legacy231d.lib
opencv_ml231d.lib
opencv_objdetect231d.lib
opencv_ts231d.lib
opencv_video231d.lib  
 
다음으로 설정을 저장하면 이것으로 끝이다.  
아래 코드는 바로 테스트하기 위한 테스트 코드이다. 컴퓨터에 캠이 연결되어 있어야 한다.  
 
#include "stdafx.h"
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[])
{

int c;
IplImage* img;
CvCapture* capture = cvCaptureFromCAM(1);

cvNamedWindow("mainWin",CV_WINDOW_AUTOSIZE);

while(1)
{
img = cvQueryFrame(capture);
cvShowImage("mainWin",img);
c = cvWaitKey(10);
if(c == 27)
break;
}

cvReleaseCapture(&capture);
cvDestroyAllWindows();

return 0;
}
 
위에 코드가 안되면
cvCaptureFromCAM() 함수 파라메터를 -1, 0, 1, 2 로 바꾸어 가면서 실행을 시켜볼 것~! 

위 사진은 실행 결과이며, 화면에 나타난 사람은 절대 노숙자가 아니다. -.-;;
실행을 종료할려면 ESC키를 누르면 된다. 
                                                           

                    
 
posted by Brittle Diamond brittledia