• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

'Programming/Kinect V2'에 해당되는 글 2건

  • 2015.03.16 Kinect v2 를 이용하여 Depth 영상을 사용하자. (키넥트2)
  • 2015.03.16 Kinect v2 를 이용하여 RGB 영상을 사용하자. (키넥트2) 3

Kinect v2 를 이용하여 Depth 영상을 사용하자. (키넥트2)

Programming/Kinect V2 2015. 3. 16. 14:32






지난 글에서 컬러 영상을 출력하는 방법을 정리했다. ( Kinect v2 를 이용하여 RGB 영상을 사용하자. (키넥트2) )


이번에는 depth 영상을 출력하는방법 정리.


컬러 영상을 이용할 때와 프레임 소스와 리더 클래스의 이름만 조금 다를 뿐 실제 사용법은 동일하다.




  1. // Kinect Open
  2. IKinectSensor* kinect = NULL;
  3. GetDefaultKinectSensor( &kinect );
  4. kinect->Open();
  5.  
  6. // depth
  7. // source
  8. IDepthFrameSource* pDepthSource = NULL;
  9. pSensor->get_DepthFrameSource(&pDepthSource);
  10.  
  11. // reader
  12. IDepthFrameReader* pDepthReader = NULL;
  13. pDepthSource->OpenReader(&pDepthReader);
  14.  
  15. // description
  16. IFrameDescription* pDescriptionDepth = NULL;
  17. pDepthSource->get_FrameDescription(&pDescriptionDepth);
  18.  
  19. int widthDepth = 0;
  20. int heightDepth = 0;
  21. pDescriptionDepth->get_Width(&widthDepth); // 512
  22. pDescriptionDepth->get_Height(&heightDepth); // 424
  23.  
  24. unsigned int bufferSize = width * height * sizeof( unsigned short );
  25.  
  26. cv::Mat bufferMatDepth(heightDepth, widthDepth, CV_16UC1);
  27. cv::Mat depthMatDepth(heightDepth, widthDepth, CV_8UC1);
  28. cv::namedWindow("Depth");
  29.  
  30.  
  31. while(1)
  32. {
  33.         IDepthFrame* pDepthFrame = NULL;
  34.         pDepthReader->AcquireLatestFrame(&pDepthFrame);
  35.         pDepthFrame->AccessUnderlyingBuffer(&bufferSizeDepth, reinterpret_cast<UINT16**>(&bufferMatDepth.data));
  36.        
  37.         SafeRelease(pDepthFrame);
  38.         cv::imshow("Depth", depthMat);
  39.        
  40.         if (cv::waitKey(30) == VK_ESCAPE)               break;
  41. }
  42.  
  43.  
  44. // release memory
  45. SafeRelease(pDepthSource);
  46. SafeRelease(pDepthReader);
  47. SafeRelease(pDescription);
  48.  
  49. if (pSensor)
  50. {
  51.         pSensor->Close();
  52. }
  53. SafeRelease(pSensor);





결과영상

저작자표시 비영리 (새창열림)

'Programming > Kinect V2' 카테고리의 다른 글

Kinect v2 를 이용하여 RGB 영상을 사용하자. (키넥트2)  (3) 2015.03.16
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

Kinect v2 를 이용하여 RGB 영상을 사용하자. (키넥트2)

Programming/Kinect V2 2015. 3. 16. 14:25





키넥트 2 예제 프로그램이 많이 공개되어 있는 가운데 에러 처리함수를 제외하고 꼭 있어여 할 부분만 정리.


키넥트 2 에서는 영상을 출력하는 방식이


센서열고 -> 소스받고 -> 프레임리더를 이용 -> 프레임 디스크립터를 받아와서 -> 출력 하는 방식을 이용하는 것 같다.


이와 관련된 내용은 추후에 다시한번 정리하는 걸로. 



  1. // Kinect Open
  2. IKinectSensor* kinect = NULL;
  3. GetDefaultKinectSensor( &kinect );
  4. kinect->Open();
  5.  
  6. // color
  7. // source
  8. IColorFrameSource* pColorSource = NULL;
  9. pSensor->get_ColorFrameSource(&pColorSource);
  10.  
  11. // reader
  12. IColorFrameReader* pColorReader = NULL;
  13. pColorSource->OpenReader(&pColorReader);
  14.  
  15. // description
  16. IFrameDescription* pDescriptionColor = NULL;
  17. pColorSource->get_FrameDescription(&pDescriptionColor);
  18.  
  19. int widthColor = 0;
  20. int heightColor = 0;
  21. pDescriptionColor->get_Width(&widthColor);             
  22. pDescriptionColor->get_Height(&heightColor);    
  23.  
  24. unsigned int bufferSizeColor = widthColor * heightColor * 4 * sizeof(unsigned char);
  25.  
  26. cv::Mat bufferMatColor(heightColor, widthColor, CV_8UC4);
  27. cv::Mat colorMatColor(heightColor / 2, widthColor / 2, CV_8UC4);
  28. cv::namedWindow("Color");
  29.  
  30. while(1)
  31. {
  32.         IColorFrame* pColorFrame = NULL;
  33.         pColorReader->AcquireLatestFrame(&pColorFrame);
  34.         pColorFrame->CopyConvertedFrameDataToArray(bufferSizeColor, reinterpret_cast<BYTE*>(bufferMatColor.data),ColorImageFormat::ColorImageFormat_Bgra);
  35.         cv::resize(bufferMatColor, colorMatColor, cv::Size(), 0.5, 0.5);
  36.        
  37.         SafeRelease(pColorFrame);
  38.         cv::imshow("Color", colorMatColor);
  39.        
  40.         if (cv::waitKey(30) == VK_ESCAPE)               break;
  41. }
  42.  
  43. // release memory
  44. SafeRelease(pColorSource);
  45. SafeRelease(pColorReader);
  46. SafeRelease(pDescriptionColor;
  47.  
  48. if (pSensor)
  49. {
  50.         pSensor->Close();
  51. }
  52. SafeRelease(pSensor);






결과영상

저작자표시 비영리 (새창열림)

'Programming > Kinect V2' 카테고리의 다른 글

Kinect v2 를 이용하여 Depth 영상을 사용하자. (키넥트2)  (0) 2015.03.16
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,
  • «
  • 1
  • »

카테고리

  • 살다보니.. (448)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (118)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (58)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • DSLR
  • 오봉자싸롱
  • 매트랩
  • Convolutional Neural Networks
  • random variable
  • 포르투갈
  • CStdioFile
  • matlab function
  • 매트랩 함수
  • ColorMeRad
  • ReadString
  • 크롬
  • 큐슈
  • function
  • review
  • Deep Learning
  • 스마트체험단
  • SVM
  • portugal
  • LIBSVM
  • DeepLearning
  • Computer Tip
  • 칼로리 대폭발
  • matlab
  • 갤럭시노트3
  • 후쿠오카
  • 에누리닷컴
  • 딥러닝
  • utility
  • 일본

달력

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
05-20 00:14

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바