어제까지만 해도 VS2012를 사용중이었지만, VS2013 부터 사용하고자 하는 라이브러리가 지원이 된다고 하네요.

언제 VS2012 버전 위로 올라가나.. 생각하고는 있었는데, 이때다 싶어서 바로 VS2015를 설치 했습니다.

 

이왕이면 VS2013 보다는 최신버전인 2015가 낫겟다 싶어 결국 VS2015로 갈아 탔네요.

 

하지만 여기서 문제점을 발견했습니다.

 

C++ 프로젝트가 없는거였습니다.

 

그것도 모르고 이리저리 문제점을 해결하려고 살피다 겨우 한개의 블로그를 발견했는데, 여기서 해결책을 발견했습니다. (아래 링크 참조)

 

http://programmerchoo.tistory.com/42

 

여기 블로그에서 말하길, VS2015에서는 따로 C++ 프로젝트를 만들기 위해서는 추가적인 툴을 설치해야 한다고 합니다.

 

아래는 사진과 함께 제가 해결한 방법들을 설명 드릴께요.

 

 

1. 새 프로젝트 만들기 항목에서 Visual C++ 을 선택하면 아래와 같은 창이 나옵니다. (아래 사진을 캡쳐하지 못해서 위에 링크에서 퍼왔습니다.)

 

 

2. 두가지 중에서 Visual C++ 2015 툴 을 선택합니다. (다른거는 XP에서 사용할 뭔가를 더 추가적으로 설치하겠냐고 물어보는건데, 자세히 살펴보지는 않았습니다.) 아래는 진행되고 있는 상태입니다. 대략 10~15분 정도 걸렸네요.

 

 

 

3. 그리고 설치가 다된 모습입니다.

 

 

 

4. 그 다음은 Visual C++ 프로젝트를 만들기 위한 기본 환경을 구성해야 할 차례입니다. [도구] 에 보면 [설정 가져오기 및 내보내기] 항목이 있는데 여기서 이 기본 환경을 설정할 수 있습니다.

 

 

 

 

 

 

5. 이제 C++ 환경이 기본 으로 구성되었습니다. 이제 새 프로젝트 만들기 들어가보시면 아래와 같이 나오는것을 확인 하실 수 있습니다.

 

 

 

 

저도 나름 고생아닌 고생? 을 해서 혹시나 도움 되시는분이 있으리라 생각하면서 글을 작성 해보았습니다.

 

그러면 오늘도 화이팅 합시다!

 

 

 

Posted by Tommy™
,

Kinect 2.0을 구매한지 꽤~ 오래 되었지만, 드디어 맛 볼? 기회가 생겨서 이리저리 구동시켜 보았네요.

 

일단 기본 정보는 전에 포스팅 한것을 참조하시면 될듯 합니다.

 

2013/05/22 - [[ Topics ]/Kinect 2.0] - Xbox One & Kinect2 are announced!!

 

그래도 요약을 하자면,

 

Operating System: Windows 8.0 or 8.1 and Windows embedded standard 8

Field of view (RGB camera): 84.1º in horizontal , 53.8º in vertical

Field of view (IR camera): 70.6º in horizontal , 60º in vertical

Depth information: 0.5 ~ 8.0m (Reasonable distance: 0.8~4.0m), ToF(Time of Flight) camera

Color stream: 1920 X 1080 (16:9), YUY2, 30fps

Depth stream: 512 X 424, 30fps

IR stream: 512 X 424, 30fps

Data path: USB 3.0

 

대충 이렇습니다,

 

 

 

다른 블로거님의 포스팅을 빌려서 하드웨어 부분을 설명할께요 ^^;;

 

http://blog.naver.com/tachikomatic/220130374854

 

 

 

그리고 Kinect SDK 2.0 도 (한참전에) 출시가 되었습니다.

 

https://www.microsoft.com/en-us/kinectforwindows/develop/

 

여기로 가시면 바로 다운 받으실수 있어요.

 

 

 

제공된 샘플코드들을 실행해보고 느낀점은 훨씬 간단해졌다는 점이었습니다.

 

왜냐면 훨씬 잘 정돈 되어있었고, 간결해졌다고나 할까..??

 

또한 각각의 카메라 정보 (RGB, IR, Depth) 동시에! 획득 가능하다는 점!

 

개인적으로 제일 반가웠던 점입니다.

 

자체적으로 따로 구분 지어서 프로세스 되게 구축해놓은거 같더군요.

 

아무튼 개인적으로는 정말 희소식 입니다.

 

 

 

그리고, 혹시나 필요하신분들이 계실까봐 미천한 소스코드지만, 정리해서 올립니다. ^^;;;;;

 

프로그램은 콘솔 기반이구요, OpenCV 를 써서 영상을 출력 시켰습니다.

 

Kinect 2.0 장치를 초기화 및 구동하는데 필요한 부분만 SDK 샘플코드에서 발췌해서 만들었구요, RGB, IR, Depth 영상 따로 따로 CV윈도우 창 띄워서 출력 되게 만들었습니다.

 

좀 더 자세히 설명 드리자면.. Visual Studio 2012, OpenCV 2.4.2, Kinect SDK 2.0, C++, Console based 입니다.

 

아래 이미지들은 SDK에 있는 샘플소스코드들을 취합해서 만든 콘솔기반 프로그램에서 캡쳐한 영상들 입니다. 둘 다 쩍벌남이네요 ㅎㅎ (다리 좀 오므리고 찍을껄..)

 

 

KinectV2_Console_151027_RGB_IR_Depth_Complete.vol1.egg

 

KinectV2_Console_151027_RGB_IR_Depth_Complete.vol2.egg

 

 

Color image: 1920 X 1080 (16:9)

 

IR image: 512 X 424

 

Depth image: 512 X 424 (normalized in 0~255)

 

 

 

2013/05/22 - [[ Topics ]/Kinect 2.0] - Xbox One & Kinect2 are announced!!

 

2013/07/19 - [[ Topics ]/Kinect 1.0] - [KinectSDK 1.7]FaceTracking Test!

 

2013/02/28 - [[ Topics ]/Kinect 1.0] - Kinect의 IR-Camera 로의 접근

 

2012/04/24 - [[ Topics ]/Kinect 1.0] - RGB 이미지와 Depth 이미지의 Calibration

 

 

 

 

 

Posted by Tommy™
,

두개의 형변환방법이 엄청 자주 사용된다.

 

사용법은 아래와 같이 아주 간단!

 

 

CString -> int

int형 변수 = _ttoi( CString 변수 );
_ttoi()를 이용


int -> CSting
CString 변수.Format( _t("%d"), int 변수 );
CString의 Format() 메소드를 이용

 

출처 : http://tasia.tistory.com/129

 

 

Posted by Tommy™
,

오랫만에 포스팅입니다.

 

오늘 포스팅 주제는..

 

How to count the FPS (frame per second), 즉 FPS를 어떻게 구할 수 있을까 입니다.

 

제가 제안하는 방식은 clock_t 를 활용하는 방식입니다.

 

먼저 old_time을 구하는데, clock() 함수를 통해 구합니다.

 

그리고 현재 curr_time을 구하는데, 역시 같은 함수를 사용합니다.

 

이때 핵심이 (curr_time - old_time) / 1000 해주는겁니다.

 

1000은 1초를 밀리 세컨드, 그니깐 1000밀리 초로 계산해주는겁니다.

 

이렇게 해주게 되면 1000밀리 초 기준으로 몇 밀리초 인지 나옵니다.

 

나온 결과물을 다시 1 (여기서 말하는 1은 1초를 의미) 로 나누어주게 되면, 결과적으로 1초에 밀리초 단위로 이전 프레임과 현재 프래임사이에 몇번 갱신이 되었는지 구할 수 있습니다.

 

마지막으로 old_time = curr_time 갱신해줍니다.

 

 

 

 

 

이를 소스코드를 통해서 보면..

 

프로그램 시작할때

 

clock_t old_t = clock();    //Old time

 

.

.

.

 

clock_t curr_time = clock();    //Current time

 

clock_t temp_time = (curr_time - old_time) / 1000.0f;    //Calculate to millisecond

 

temp_time /= 1.0f;    //FPS

 

past_t = curr_t;    //Update time

 

 

 

 

 

 

 

Posted by Tommy™
,