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

  • |

    TCP 폭주(혼잡)제어

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

  • 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매크로를 사용해 줍니다. 이번에는 새…

  • MFC – Cam 영상 출력해보기

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

  • 데이터 종속성과 정규화

    함수종속 어떤 릴레이션 R에서 X와 Y를 의 애트리뷰트 집합의 부분집합이라 하자.  X의 값 각각에 대해 시간에 관계 없이 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수종속이라 하고 X →Y로 표기한다. 이 때, X를 결정자, Y를 종속자라고 한다. 제 1 정규형(1NF) 어떤 릴레이션 R에 속한 모든 도메인이 원자값만으로 되어 있다면 제 1 정규형이라고 한다. 제 2…

  • 모덜리스(Modeless) Dialog로 변환하기

    이전 시간에 만들었던 모달(Modal) Dialog를 모덜리스(Modeless) Dialog로 변환해 보겠습니다. Modal Dialog는 Dialog가 실행되는 동안 다른 작업을 하지 못하고, Modeless Dialog는 프로그램 실행 흐름을 방해하지 않는다는 것 정도는 알고 계시죠? 자 그럼 이전 시간 “MFC – Cam 영상 출력해보기(http://deios.kr/420)”에 만들었던 View Dialog를 멋지게 바꿔 보겠습니다.   OnCamView함수를 다음과 같이 수정합니다. void CMFC_OpenCVApp::OnCamView() {       // TODO: 여기에 명령…

3 Comments

답글 남기기

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