본문 바로가기

CLASS

(38)
[OpenCV] 윤곽(contour) 추출, 에지(edge) 추출 중급강좌 다음은 윤곽(contour) 또는 에지(edge)를 찾는 주요 함수 부분에 대한 설명입니다. 윤곽선을 찾는 방법에는 1차 미분, 2차 미분, 템플릿 매칭(Template matching), 로버츠(Roberts), 소벨(Sobel), 라플라시안(Laplacian) 등이 있는데 그중 라플라시안 방법 중 한가지를 사용하였습니다. 윤곽 부분을 추출하기 위하여 이미지의 3 x 3 픽셀에 마스크(mask)를 씌워 계산후 중앙 픽셀의 값을 결정하게 됩니다. 즉, 아래와 같은 3 x 3 픽셀을 보고 특정 값이 들어가 있는 마스크를 곱하여 p5 를 계산하게 되는데 p1 p2 p3 p4 p5 p6 p7 p8 p9 특정 값을 넣은 3 x 3 마스크는 다음과 같이 정의 합니다. -1 -1 -1 -1 8 -1 -1 -1 -1..
[OpenCV] OpenCV 를 이용한 영상 이진화(Binarization) 초급강좌 오늘은 손쉽게 구현할 수 있는 영상 이진화(Binarization)에 대해서 설명해 드리도록 하겠습니다. 영상 이진화란 RGB 값으로 다양하게 분포되어 있는 색상값을 0 과 1 만의 값으로 표현하는 것 입니다. 실제적으로는 RGB 컬러 영상에을 흑백(Gray channel)영상으로 바꾼뒤 특정 임계값(Threshold)을 기준으로 초과 값은 255 로, 이하 값은 0 변환하게 되지요. 아래 T9-camera 윈도우 영상과 T9-output 윈도우 영상을 보시면 쉽게 이해가 가실 겁니다. T 값 128 을 기준으로 초과값은 255 로 변환되어 흰색으로 보여지고 있고 이하 값은 0 으로 변환되어 검은색으로 보여지고 있습니다. - 실행 결과 소스 코드가 다소 길어 졌지만 크게 보면 카메라를 입력 받는 소스에서..
[OpenCV] OpenCV 기초강좌 - 2편 : 카메라 입력받기 이번 강좌에서는 OpenCV 를 이용하여 간단하게 카메라 영상을 입력받아 IplImage 형 구조체에 넣고 출력 윈도우의 크기를 조절해서 화면에 보여주는 작업을 할 것입니다. 1편을 통하여 기본적인 셋팅 방법은 습득 하셨을테니 바로 아래와 같은 소스코드를 작성한 후 컴파일 해 봅시다. - 소스 코드(압축 파일 첨부) #include #include void main() { IplImage* image = 0; CvCapture* capture = cvCaptureFromCAM(0); cvNamedWindow( "T9-camera", 0 ); cvResizeWindow( "T9-camera", 320, 240 ); while(1) { cvGrabFrame( capture ); image = cvRetrie..
[OpenCV] 입력 받은 영상 AVI 로 저장하기 추가 소스 - DirectX 버전 CvCam 으로 입력 받은 영상을 매 frame 마다 callback 함수를 호출하여 AVI 로 저장하는 소스 코드 입니다. 입력 받아 뿌려주는 부분이 DirectX 를 이용한 것이죠. http://opencv.co.kr - 소스 코드 #include #include #include void callback(IplImage* image); typedef struct CvVideoWriter CvVideoWriter; CvVideoWriter* VideoOut = NULL; void main() { int nselected = cvcamSelectCamera(0); cvcamSetProperty(0, CVCAM_PROP_ENABLE, &nselected); int width = 640, height = 4..
[OpenCV] OpenCV 기초강좌 - 기본 셋팅 소스 for VC++ 6.0 & VS.Net OpenCV 기본 셋팅을 해놓은 Workspace 입니다. Visual C++ 6.0 버전과 Visual Studio .Net 버전 둘다 가능합니다. Debug 모드, Release 모드, 각각 Link 항목에 cxcore.lib, cv.lib, highgui.lib 을 추가하고 cpp 소스 파일에는 "cv.h", "highgui.h" 가 include 되어있어 다운 받아 추가 코딩 부분만 작성해 나가기만 하면 별도의 기초 셋팅 없이 작업 할 수 있어 편리합니다. - 기본 셋팅에 대한 강좌는 아래 링크를 참고하세요. http://cafe.naver.com/opencv/1 - OpenCV 개발자 모임 http://opencv.co.kr
[OpenCV] OpenCV 기초강좌 - 1편 : 설치하기 OpenCV 초보를 위한 강좌 1편 OpenCV 는 인텔에서 만든 강력한 영상처리 라이브러리입니다. 강력한 기능과 성능에도 불구하고 3D 의 오픈소스 라이브러리인 OpenGL 처럼 알려지지도 않고, 활발하게 개발되지도 않고, 자주 쓰이지도 않아 안타까운 심정입니다. 더욱이 국내에는 아직 활성화된 커뮤니티가 없어 자료를 구하기도 어려운 실정입니다. 그리하여 본인이 자료를 수집하고 공부하는 과정에서 부딪친 문제점들의 해결방법들과 습득한 지식들을 강좌를 통해 풀어나가 보려고 합니다. 강좌는 다음과 같은 목차로 진행될 예정이며 예제 위주와 간결한 문체를 사용하여 정리 하도록 하겠습니다. 개발 환경은 별도로 거론하지 않는다면 다음과 같습니다. - Windows XP Platform - Visual C++ 6.0 ..