본문 바로가기

opencv

(15)
[Kinect] OpenCV를 이용한 Kinect 영상 입력받기 (소스코드) [OpenCV + Kinect] OpenCV를 이용한 Kinect 영상처리 OpenCV를 OpenNI와 연동하여 CMake로 컴파일하면 몇줄의 코딩만으로 손쉽게 Kinect Depth 영상을 받아 올 수 있습니다. RGB 영상까지 받으려면 2번째 예제로. Download 1 : Download 2 : #include using namespace cv; void main() { Mat depthImg; VideoCapture cap( CV_CAP_OPENNI ); namedWindow("Kinect", 1); while(1){ cap >> depthImg; imshow("Kinect", depthImg); if( waitKey(30) >=0 ) break; } } 참 쉽죠? Depth 영상이 잘 보이지 않..
[MAKE] i3Display : 뚝딱뚝딱 Face Tracking을 이용한 3D 디스플레이 만들기 Interactive 3D Display 요즘 워낙 기술이 싸져서(?) 오픈소스로 몇개로 몇분만에 뚝딱뚝딱 3D 디스플레이를 만들 수 있다. 고급 기술들이 시간이 지남에 따라 안정화 되고, 기업에선 전략적으로, 연구자는 후속 연구자들을 위해 큰 마음으로 소스, 라이브러리를 공개함으로서 접근성이 쉬워졌다고 해야겠다. 그로인해 적은 리소스(시간, 비용, 인력)만으로도 기술개발이 가능해졌다. 한국말로 해석하니 어색하지만 이러한 류의 기술들을 낮은 비용의 기술(Low-cost Technology)이라고 말하기도 한다. 아주 매력적인 기술이 아닐 수 없다. 웹캠 한대만 있으면 Face Tracking 기술로 3D 디스플레이 효과를 낼 수 있다. - 장점 : 카메라 한대만으로 어떤 디스플레이에서도 가능 (예, 웹캠..
[소스] 알고리즘별 수행시간 측정 stopWatch() 함수 알고리즘별 수행시간 측정 할 때 유용한 stopWatch() 함수입니다. 아래 소스를 맨위에 추가한 후 측정하고자 하는 알고리즘 시작할 때 한번, 종료할 때 한번 호출해주면 됩니다. // 시간 측정 함수 소스 void stopWatch() { static double time = 0.0; static bool bCheckTime = false; static int timerCount = 0; if( !bCheckTime ) { time = (double)getTickCount(); timerCount++; } if( bCheckTime ) { time = ((double)getTickCount() - time) / getTickFrequency(); cout
[MAKE] iRing : 뚝딱뚝딱 만드는 3D 손 동작 인식 인터페이스 (Hand Gesture Interface) 대학교 신입생 때 교수님께서 하신 이야기가 떠오르네요. 교수님께서 대학시절, 과외로 중학생들에게 수학을 가르칠 때의 이야기 입니다. 여학생 3명이었는데 이들 모두 자연계를 지망하는 우수한 성적의 학생들이었습니다. 매 수업 때마다 수학의 중요성을 강조하면서, 열정적인 수업을 진행했고 학생들도 잘 따라오고 있었습니다. 어느 날 학생네 집에 피아노가 있어서, 머리도 식힐 겸, 피아노를 한번 치게 되었습니다. 당시 교수님은 피아노를 배우고자 한 곡 만 줄곧 연습하고 계셨습니다. 3명의 여학생들 앞이었기에, 나름 멋있게 보이려는 마음에 열정적인 모습으로 최선을 다해 피아노를 치셨습니다. 그 후로 세월이 흘러갔고, 훗날 제자들을 만나게 되었는데 이들 셋 다 모두 음악을 전공으로 하고 있었다고 합니다. 학생들은 대학..
[OpenCV] OpenCV에서 전체화면(Fullscreen) 출력하기 소스코드 OpenCV에서 전체화면(fullscreen)으로 출력하기 위해 highgui.dll 을 수정한 코드입니다. 막강하고 편리한 OpenCV를 이용해서 컴퓨터 비젼(Computer Vision), 영상처리(Image Processing)등을 하여 인터렉티브 아트(Interactive Arts)를 하고자 할 때, 전체화면으로 돌려야 하는 경우가 있는데, 기본적으로 제공되지 않아 다양한 방법을 이용해야 했습니다. [참고] WinAPI 기반, MFC 기반의 풀스크린 띄우기, http://lifenote.tistory.com/221 하지만 보다 손쉽게 OpenCV Library를 수정해서 풀스크린을 띄우는 방법입니다. highgui.dll 을 수정한 후 다시 컴파일 해야 합니다. 간단하게 쓰고 싶은 분들을 위해 제..
[OpenCV] OpenCV Release v 1.0 다운받기 OpenCV Release v 1.0 다운받기 http://down.t9t9.com/OpenCV_1.0.zip - 영상처리 커뮤니티 http://opencv.co.kr
[OpenCV] OpenCV 를 이용한 템플릿 매칭(Template Matching) 하기 (소스포함) OpenCV 를 이용한 템플릿 매칭(Template Matching) 하기 대한민국 최고 영상처리 커뮤니티 OpenCV Korea - http://opencv.co.kr OpenCV 를 이용하여 간단한 템플릿 매칭(Template Matching)을 해보도록 하겠습니다. 먼저 2가지 준비물을 챙겨오시기 바랍니다. A. 소스 이미지 : 어지럽혀진 책상과 같은 장면을 디카로 찍습니다. B. 찾고자 하는 물체 이미지 : 사진에서 찾고자 하는 물체를 포토샵으로 따로 저장합니다. 템플릿 매칭의 세계로 입문할 준비가 되셨나요? 미처 준비물을 준비하지 못하신 분들을 위해 아래에 보시면 소스들을 준비해 두었습니다. 필요하신 분께선 다운받아 마음껏 사용하세요. 템플릿 매칭은 간단하게 딱 2단계로 설명을 하겠습니다. 1단..
[OpenCV] 키보드로 OpenCV 를 제어하는 인터페이스 강좌 (소스포함) PC 카메라로 영상을 입력받아 처리할 때 MFC 에서 버튼을 만들거나 메뉴를 만들고 함수 만들고 하다보면 신경써야 할 것들도 많고 소스코드도 왜이리 많아지는지.. 심플하게 영상 내에 글자를 띄워 문자 방식의 인터페이스를 구현한 것입니다. 키보드 인터페이스를 구현하는데 가장 중요한 함수는 흔히 보아오던 cvWaitKey(10) 랍니다. int c; c = cvWaitKey(10); // 키보드로부터 키 값을 받습니다. if( c == 27 || c == 'q') // esc == 27 break; switch( c ){ // 특정 키에 해당하는 작업을 합니다. ... }