Cfile10.uf .1732E2564D131EB2097159

Visual Studio 2010에서 OpenCV 이용하기

제가 참여하고 있는 AR Study에서 IDE는 Visual Studio 2010(vs2010)을, SDK는 OpenCV 2.1를 이용하기로 결정하였습니다.

VS2010에서 OpenCV 2.1을 이용하는 방법에 대해서 알아보겠습니다.

먼저 OpenCV 2.1을 다운받습니다. VS2010을 이용할 예정이지만, VS2008용으로 미리 컴파일 된 바이너리를 사용하겠습니다.
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/OpenCV-2.1.0-win32-vs2008.exe/download

최신버전인 OpenCV 2.2를 사용하지 않는 이유는 OpenCV 라이브러리들의 이름이 다 바뀌었습니다. 저는 귀찮은게 젤 싫기 때문에 이름이 동일한 OpenCV 2.1을 사용하겠습니다.
OpenCV 2.2를 설치해 보면 Android라는 폴더가 보입니다. Android에서 OpenCV를 조금 더 쉽게 사용 할 수 있게 된 것 같은데, 일단 처음 OpenCV를 배우는 입장에서는 따라하면 바로바로 결과가 나오는게 좋기 때문에 일단 OpenCV 2.1로 진행합니다.

VS 2010과 OpenCV 2.1의 설치가 모두 완료됬다는 가정 하에 진행하겠습니다.

  1. VS 2010에서 [파일] -> 새로만들기 -> 프로젝트 를 선택합니다.
    Cfile10.uf .1732E2564D131EB2097159
  2. C++, Win32 콘솔 응용프로그램을 선택하고 프로젝트 이름 지정 후 확인을 눌러줍니다.
    Cfile8.uf .1434DC564D131F2104D3EE
  3. 그냥 바로 마침을 눌러 프로젝트 설정을 끝냅니다.
    Cfile29.uf .1430D3514D131F570DF326
  4. [프로젝트] -> [속성]을 선택합니다.
    Cfile8.uf .135D41394D131F8B4E3984
  5. VC++ 디렉토리를 선택합니다.
    Cfile27.uf .1423B7374D131FC3398977
  6. 다음과 같이 디렉토리를 지정합니다. Debug모드, Release모드 모두 적용
    포함 디렉터리 : C:\OpenCV2.1\include\opencv;
    라이브러리 디렉터리 : C:\OpenCV2.1\lib;
    소스 디렉터리 : C:\OpenCV2.1\src\cv; C:\OpenCV2.1\src\cvaux; C:\OpenCV2.1\src\cxcore; C:\OpenCV2.1\src\highgui; C:\OpenCV2.1\src\ml;
    Cfile3.uf .131F3B334D1320D71692BA
  7. [링커] -> [입력] -> [추가 종속성]에 관련된 lib 파일을 다음과 같이 추가하고 확인을 눌러 빠져나옵니다.
    Debug : cv210d.lib; cxcore210d.lib; highgui210d.lib;
    Release : cv210.lib; cxcore210.lib; highgui210.lib;
    Cfile10.uf .123B883C4D13214E0B95AC
  8. 다음의 그림파일을 프로젝트 디렉토리에 추가합니다.
    Cfile10.uf .131DA2334D1321871EF639
  9. 다음의 소스코드를 main함수가 있는 cpp파일에 넣습니다.
#include "stdafx.h"

#include <cv.h>

#include <cxcore.h>

#include <highgui.h>

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

IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg");

cvNamedWindow("Image:",1);

cvShowImage("Image:",img);

cvWaitKey();

cvDestroyWindow("Image:");

cvReleaseImage(&img);

return 0;

}

Cfile8.uf .133104384D132230370A9D

  1. 빌드 합니다.
    Cfile9.uf .20266C334D13226A075AF4
  2. 다음과 같은 화면이 나오면 성공!
    Cfile8.uf .1814B73F4D1325F8092EADcfile24.uf.1759FE4A4D15CA9F30813C.pdf

Similar Posts

  • HVR-2000 Series 이용하기

    이번 시간에는 조금 더 재미있는 것을 해 보겠습니다. 바로 요놈입니다.   바로 HyVision System의 HVR-2000 Series입니다. 일반적인 웹캠이야 그냥 연결만 해주면 바로 써먹을 수 있었는데, 요놈은 조금 다릅니다.   USB드라이버야 당연히 깔아줘야 하는거고… 별도의 SDK를 이용해서 Cam에 접근하게 됩니다.   하이비전시스템에서 HVR SDK Interface Guide를 친절하게 작성해 주셔서 별 무리 없이 실습을 진행 해 볼…

  • |

    고속 네트워크에서의 메모리 병목 현상

    메모리가 미래 통신에 있어서 병목 지점이 되는 이유를 설명하고 해결 방안을 제시하시오. 1) 메모리는 코드와 데이터를 함께 저장한다. 표현 계층이 개입한다면 메모리 연산이 증가하게 되어 병목 현상이 발생한다. -> 표현계층을 적게 사용한다.2) 각 계층 이동시 메모리 연산 증가. OSI-7-layer에서 각 계층 이동시 메모리 복사가 빈번하게 일어나게 된다. -> shared memory, page remapping, 계층 통합 처리3)…

  • OpenCV 파일 저장기능 구현

    “Visual Studio 2010에서 OpenCV MFC 프로젝트 만들기(http://deios.kr/400)”에 이어 이번에는 파일 저장기능을 구현해 보도록 하겠습니다.   파일 열기는 OnOpenDocument()함수를 재정의 했던거 기억하시죠? 마찬가지로 파일 저장은 OnSaveDocument()함수를 재정의 하면 됩니다.   이젠 그림만 봐도 아시겠죠? return CDocument::OnSaveDocument(lpszPathName); 부분을 다음과 같이 수정합니다. USES_CONVERSION; return m_CvvImage.Save(W2A(lpszPathName)); 저번에도 말씀드렸지만 OpenCV 라이브러리가 char *형을 받기 때문에 W2A매크로를 사용해 줍니다. 이번에는 새…

  • |

    TCP 폭주(혼잡)제어

    TCP의 폭주제어에서 예약방식을 못 쓰고 피드백 기반 방식을 사용하여야 하는 이유를 설명하시오. 예약 방식의 경우 데이터 전송 중 경로상의 라우터에서 폭주 혹은 에러가 발생했을 경우 송신자는 계속 데이터를 보내게 되어 혼잡이 가중된다. 이를 해결하기 위해 피드백 방식을 사용한다.송신자는 약간의 데이터만 전송하여 도착 여부를 확인 후 점점 전송량을 늘려간다. 이처럼 네트워크의 상태에 따라 송신측에서 전송량을 조절하여야 한다….

  • MFC – Cam 영상 출력해보기

    이번 시간에는 MFC프로젝트에서 Cam 영상을 받아오는 부분을 구현해 보겠습니다.   “동영상 처리” → “영상 보기”메뉴를 추가하고, 해당 메뉴를 클릭했을 때, 영상을 뿌려주는 Dialog를 띄웁니다. Dialog에서 “시작” 버튼을 클릭했을 경우 Caption이 “중지”로 바뀌고, Static 영역에 영상을 뿌려주게 만들어 보겠습니다.   먼저 사용할 다이얼로그부터 만들어야겠죠? [리소스 뷰]에서 [리소스 추가]를 선택합니다.   [Dialog]가 선택된 것을 확인하고 [새로 만들기]를…

3 Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다