Cfile3.uf .115176494D2EAD82158A58

Cam 영상 출력해보기

지금까지 VS2010과 OpenCV 2.1라이브러리를 이용한 MFC 프로그래밍 기초에 대해서 알아봤습니다.

우리가 하려고 하는 것이 동영상 처리이므로 이번 시간에는 Cam으로부터 영상을 받아와서 출력하는 방법에 대해서 알아보겠습니다.

먼저 새 프로젝트를 Win32 콘솔 응용 프로그램 형식으로 만들어 줍니다.

Cfile3.uf .115176494D2EAD82158A58

 

OpenCV 2.1 라이브러리를 사용하기 위한 각종 세팅은 당연히 해주셔야 겠죠? 자세한 내용은“Visual Studio 2010에서 OpenCV MFC 프로젝트 만들기(http://deios.kr/400)”를 참고하세요.

 

그 후 다음과 같이 코딩합니다.

// CamTest.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.

//

 

#include "stdafx.h"

#include 

#include 

 

void CamImageProcess(IplImage *);

 

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

{

        IplImage *image = 0;

        CvCapture *capture = cvCaptureFromCAM(0);

 

        cvNamedWindow( "Test cvCam", 0 );

 

        while(1) {

                cvGrabFrame( capture );

                image = cvRetrieveFrame( capture );

 

                CamImageProcess(image);

 

                cvShowImage( "Test cvCam", image );

 

                if( cvWaitKey(10) >= 0 )

                        break;

        }

 

 

        cvReleaseCapture( &capture );

        cvDestroyWindow( "Test cvCam" );

 

        return 0;

}

 

void CamImageProcess(IplImage *image){

        // image 복사

        IplImage *src = cvCloneImage(image);

 

        //Enhance detail filter - 물체를 둘러싼 것을 상세히 드러내는 효과를 냄.

        

        float kernel[] = { 0.0f/5.0f, -1.0f/5.0f, 0.0f/5.0f,

                                                -1.0f/5.0f, 9.0f/5.0f, -1.0f/5.0f,

                                                0.0f/5.0f, -1.0f/5.0f, 0.0f/5.0f};

 

        // CvMat 변환

        CvMat mat_kernel = cvMat(3,3,CV_32FC1, kernel);

 

        // 필터링 수행 결과를 담을 영상 초기화

        IplImage *dst = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, src->nChannels);

 

        // 필터링 수행

        cvFilter2D(src, dst, &mat_kernel, cvPoint(-1, -1));

 

        cvCopy(dst, image);

 

        cvReleaseData(&mat_kernel);

        cvReleaseImage(&src);

        cvReleaseImage(&dst);

}

수행 결과는 다음과 같습니다.

 

Cfile26.uf .150E7F4F4D2EAD83053A3C

 

Reference
정성환 외 1명/컴퓨터 비전 실무 프로그래밍/홍릉과학출판사/2007/388p~389p

cfile30.uf.140EDF474D2EAE6C3B94E5.pdfcfile24.uf.142589474D2EAE6E083F38.zip

 

Similar Posts

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

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

  • 공간 영역 필터링 – Dialog Box 기반 구현

    이번 시간에는 Dialog Box기반으로 OpenCV를 이용하는 방법에 대해서 알아보겠습니다.   공간 필터링(Spatial Filtering)이란 영상에 있는 공간 주파수 대역을 제거하거나 강조하는 필터 처리입니다. 사용되는 필터의 계수에 따라 특정 주파수를 제거하거나 강조하게 되며, 필터 마스크(Filter Mask)또는 회선 마스크의 가중치 선택이 공간 필터의 행동을 결정하게 됩니다. 영상처리에 사용되는 회선 마스크는 홀수 차원의 정방형 마스크가 사용되게 됩니다.   필터는…

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

  • Visual Studio 2010에서 OpenCV MFC 프로젝트 만들기

    이번에는 Visual Studio 2010에서 OpenCV 2.1 라이브러리를 활용하여 MFC프로젝트를 만들고, 이미지를 불러와서 화면에 출력해보겠습니다.   먼저 제 환경은 다음과 같고, DLL파일은 path환경변수에 설정되어 있습니다. DLL : “D:\lib\bin” Header : “D:\lib\include” Library : “D:\lib\lib” Source : “D:\lib\src”   VS2010에서 [파일] → [새로만들기] → [프로젝트]를 선택합니다.   너무나도 당연하게 ‘Visual C++ MFC 응용 프로그램’을 선택해 주어야겠죠?  …

  • Wavelet Transform

    cfile28.uf.1804194F4F95B41B178B7C.pdf 관련된 글: 고속 네트워크 프로토콜의 목적과 수행과정 OpenCV 파일 저장기능 구현 MFC – Cam 영상 출력해보기 모덜리스(Modeless) Dialog로 변환하기

2 Comments

답글 남기기

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