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 

#include 

#include 

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

  • |

    2계층과 4계층의 오류제어, 흐름제어

    오류제어 및 흐름제어 기능은 계층 2와 4에도 있다. 이들의 차잇점을 쓰시오. 2계층과 4계층의 차이점.2계층은 서로 연결된 두 노드간의 제어이며, 4계층은 단대단 제어이다.따라서 4계층의 오류제어와 흐름제어는 단말과 네트워크를 포함한 제어 기술이다.2계층의 오류 제어는 오류제어를 담당한다. 4계층의 오류제어는 송신측과 수신측 단대단 오류 제어이다.2계층의 흐름제어는 역시 인접노드간의 흐름 제어이고, 4계층의 흐름제어는 단대단 흐름제어이다. 관련된 글: 고속 네트워크 프로토콜의…

  • |

    TCP 폭주(혼잡)제어

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

  • HVR-2000 Series 이용하기

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

  • 클립보드 기능 구현

    이번에는 자주 사용하는 기능인 C&P(Copy & Paste)를 구현해 보도록 하겠습니다. C&P를 구현하기 위해서는 이미지를 DIB(장치 독립 비트맵;Device Independent Bitmap)으로 변환하여 클립보드 영역에 넘겨주거나, 클립보드 영역에서 데이터를 받아오면 됩니다. 클립보드 영역으로 데이터를 넘겨주기 위하여 CopyClipBoard맴버함수, CopyToHandle 맴버 함수를 추가하여, ID_EDIT_COPY이벤트 핸들러에 등록합니다. 먼저 CopyClipBoard 맴버 함수를 Doc Class에 작성하겠습니다.   반환 형식 : void 함수 이름…

  • AcroEdit에서 C/C++ Compile 하기…

    이제 슬슬 공부나 해볼까하고 마음먹던중;;; 그냥 갑자기 C를 하고 싶어졌습니다… 이제까지 하려고 하려고 해도… 귀찮아서 접어두었던 C 책 한권을 꺼내서;;; 첫장을 펼처보니 “Turbo C++”를 설치하라는 겁니다… 전 착한 학생이기 때문에(~ㅋ) 하라는데로 설치했죠;;; 설치하고 보니 이게 왼걸;;; 구석기시대에서나 볼수있는 인터페이스;;; ㄷㄷ;;; 그래서 부대안에 있을때 사용했던 AcroEdit과 연결하기로 마음먹었습니다… 열심히 컴파일러를 찾아 해매였는데…;;; 이게 왠걸;;; 도처히 못찾겠습니다.;;;…

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

3 Comments

답글 남기기

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