2015年11月10日 星期二

RealSense F200 C++ Sample Code of Capture Depth and Color Image

最近拿到一個新玩具RealSense F200,因為之前有玩過Kinect和LeapMotion,所以很開心的馬上開始閱讀SDK,因為我想拿來做影像處理相關的,所以先試C++的sample code,爾且好像C++的API最多可以使用,話不多說,先嘗試寫一段擷取Color與Depth影像的code來試試成果。

其實API非常好理解,一開始需要create一個instance,在對PXCSenseManager做初始化的設定。整個API分成I/O Module和Algorithm Module兩個部分。

#需要設定的library and header如下:

  • RSSDK\lib\win32
    • libpxc.lib
    • libpxcmd.lib
  • RSSDK\sample\common\lib\win32\v110
    • libpxcutils.lib
    • libpxcutilsmd.lib
  • RSSDK\include
  • RSSDK\sample\common\include


#include <pxcsensemanager.h>
#include <pxcsession.h>
#include "util_render.h"
#include <iostream>

#define WIDTH 640
#define HEIGHT 480

void main()
{
    UtilRender *renderColor = new UtilRender(L"COLOR_STREAM");
    UtilRender *renderDepth = new UtilRender(L"DEPTH_STREAM");

    PXCSenseManager *psm = NULL;
    psm = PXCSenseManager::CreateInstance();
    if ( psm == NULL ){
        std::cout<<"Unabel to create the PXCSenseManager"<<std::endl;
        return;
    }

    PXCSession::ImplVersion version = psm->QuerySession()->QueryVersion();
    std::cout<<"SDK Version:"<<version.major<<version.minor<<std::endl;

    psm->EnableStream( PXCCapture::STREAM_TYPE_COLOR, WIDTH, HEIGHT);
    psm->EnableStream( PXCCapture::STREAM_TYPE_DEPTH, WIDTH, HEIGHT);
    if( psm->Init() != PXC_STATUS_NO_ERROR ){
        std::cout<<"Unable to Init the PXCSenseManager"<<std::endl;
        return;
    }

    PXCImage *colorIm, *depthIm;
    while(true){

        if( psm->AcquireFrame(true) < PXC_STATUS_NO_ERROR ){
            break;
        }

        PXCCapture::Sample *sample = psm->QuerySample();
        if( sample ){
            if( sample->color ){
                colorIm = sample->color;
                if( !renderColor->RenderFrame(colorIm) )
                    break;
            }
            if( sample->depth ){
                depthIm = sample->depth;
                if (!renderDepth->RenderFrame(depthIm))
                    break;
            }
        }
        psm->ReleaseFrame();
    }
    psm->Release();
}


相關文章:

0 意見:

張貼留言