Location | Tag | Media  ||  A | P

아직 테스트를 충분히 해보지 않았지만

camshiftmemo 와 surf 예제가 돌아가는 수준에서   

OpenCV 1.1per  설치절차를 저도 마찬가지지만 초보자 님들을 위해서 정리해 보았습니다.

VC++ 6.0, Window XP SP3 기준으로 설명드리겠습니다.

 

1. 윈도우 시스템 복원점을 만든다. (삽질을 대비해서--;)

 

2. Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x86)지를 다운 받고 설치하고 재부팅한다.(재부팅은 옵션^^)

http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displaylang=ko

 

3.OpenCV1.1을 다운받는다.

http://sourceforge.net/projects/opencvlibrary/  

 

4. 설치파일 openCV_1.1per1a.exe를 실행한다.

 

5. 설치 옵션은 디폴트를 유지하다는 가정하에

   설치가 끝나면 C:\Program Files\OpenCV\bin 폴더 전체를 백업해 놓고 폴더안에 들어있는 모든 파일을 삭제한다.

  -> 삭제 안하면  C:\Program Files\OpenCV\_make의 OpenCV.dsw 빌드시 delete and rebuild 링킹 애러발생

 

5. C:\Program Files\OpenCV\_make 폴더로 가서  C:\Program Files\OpenCV\_make의 OpenCV.dsw를 오픈한다.

6. Build 탭 -> Batch Build를 실행한다.

   ->주석 애러발생

 

7. include\cvaux.h 파일을 오류를 주석을 수정한다.

    #define CV_BG_STAT_MODEL_FIELDS()                                                   \
    int             type; /*type of BG model*/                                      \
    CvReleaseBGStatModel release;                                                   \
    CvUpdateBGStatModel update;                                                     \
    IplImage*       background;   /*8UC3 reference background image*/               \
    IplImage*       foreground;   /*8UC1 foreground image*/                         \
    IplImage**      layers;       /*8UC3 reference background image, can be null */ \
    int             layer_count;  /* can be zero */                                 \
    CvMemStorage*   storage;      /*storage for 밼oreground_regions ?/              \
    CvSeq*          foreground_regions /*foreground object contours*/

 

  빨간색 줄 마지막 ? 를 * 로 수정한다.

   CvMemStorage*   storage;      /*storage for 밼oreground_regions */              \

8. Build하면 모든 파일이 정상적으로 컴파일되고 링킹되어 C:\Program Files\OpenCV\bin 폴더 안에

   새로운 dll 파일이 생성되었는지 확인한다.

 

9. 백업해놓은 bin 폴더의 내용과 생성된 파일을 비교한다.

   새로 cv110.dll 등등의 파일과  새로 파일이름에 d가 추가된 cv110d.dll 등등의 파일이 생성되어있고

   백업폴더에 원래 있던 것에서 생성되지 않은 ffopencv110.dll,  msvcp80.dll, msvcr80.dll, vcomp.dll파일을

   복사해서 bin 폴더에 넣는다.

 

10. C:\Program Files\OpenCV\samples\c의 camshiftdemo.c 적당한 폴더로 복사하여 VC++6.0으로 오픈하고

 프로그램에 필요한 dll파일을 폴더에 복사해 넣는다. 프로그램마다 필요한 dll 파일이 다를 수 있다.

   

 

  

  

  

VC탭에서 ->  Option  

   Directory include files에 다음의 폴더를 추가한다.

 

 

라이브러리에 다음을 추가한다.

 

 

Project ->settings ->Link 탭

 

  cv.lib cxcore.lib highgui.lib 를 추가한다. 프로그램마다 추가하는 라이브러리 파일이 다를 수 있다.

 

 

11. 예제를 컴파일하고 빌드한다.

 

12. 프로그램이 실행되는지 확인한다.

 

 

13. 웹캠이 안될 경우 카메라 드라이버를 재설치하고 윈도우 장치관리자의 하드웨어 목록에 있는지 확인하다.

   윈도우에서는 잡히는데 OpenCV에서 열리지 않는 카메라도 있다 (Microsoft LifeCam VX-7000 본인 것...).

   그럴경우엔 다른 웹켐을 알아봐라.

 

Ps. 본인 경우에 OpenCV 설치하면 기본으로 있는 bin 폴더에 있는 dll 파일을 사용하면 안되었다. 반드시 컴파일하고 새로 빌드한 dll 파일을 사용해야 되었다. 

 

이상입니다. VC++을 잘몰라서 체계적으로 설명은 못한 것 같습니다.

이미 잘 아시는 분이 많이 있을 줄 알고 있고 제가 틀린 부분이라든가 참고할 만한 사항이 있으면 많은 첨언 부탁드립니다.

삽질을 하다보니 이런 정보는 누군가 빨리 공개해주면 많은 사람이 도움을 받을 거란 생각이 들었습니다.

아무튼 본격적으로 영상처리 쪽을 해보려면 이런 것 때문에 삽질하는 시간을 줄일 수 있는 정보가 우선 공유되어야

서로서로 발전이 있지 않을까 생각합니다.

 

OpenCV는 Open Mind로...  

 


Posted by Bestend
: