Skip to content

Commit

Permalink
added support for infrared stream
Browse files Browse the repository at this point in the history
  • Loading branch information
rrivem committed Dec 15, 2012
1 parent eb8a75e commit 55d54bf
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 4 deletions.
13 changes: 11 additions & 2 deletions src/kinect/nui/ImageFrame.cpp
Expand Up @@ -78,8 +78,17 @@ namespace kinect {
*/
UINT VideoFrame::operator () ( UINT x, UINT y )
{
UINT* video = (UINT*)lockedRect_.pBits;
return video[(Width() * y) + x];
if (imageFrame_.eImageType == NUI_IMAGE_TYPE_COLOR_INFRARED)
{
UINT16* video = (UINT16*)lockedRect_.pBits;
unsigned char c = video[(Width() * y) + x] >> 8;
return (UINT)(c << 16 | c << 8 | c);
}
else
{
UINT* video = (UINT*)lockedRect_.pBits;
return video[(Width() * y) + x];
}
}


Expand Down
16 changes: 14 additions & 2 deletions src/ofxKinectNui.cpp
Expand Up @@ -91,6 +91,7 @@ bool ofxKinectNui::init(const InitSetting& setting){
setting.grabSkeleton,
setting.grabCalibratedVideo,
setting.grabLabelCv,
setting.videoImageType,
setting.videoResolution,
setting.depthResolution);
}
Expand All @@ -117,6 +118,7 @@ bool ofxKinectNui::init(bool grabVideo /*= true*/,
bool grabSkeleton /*= false*/,
bool grabCalibratedVideo /*= false*/,
bool grabLabelCv /*= false*/,
NUI_IMAGE_TYPE videoImageType /*= NUI_IMAGE_TYPE_COLOR*/,
NUI_IMAGE_RESOLUTION videoResolution /*= NUI_IMAGE_RESOLUTION_640x480*/,
NUI_IMAGE_RESOLUTION depthResolution /*=NUI_IMAGE_RESOLUTION_320x240*/){

Expand All @@ -140,6 +142,7 @@ bool ofxKinectNui::init(bool grabVideo /*= true*/,
bGrabsSkeleton = grabSkeleton;
bGrabsCalibratedVideo = grabCalibratedVideo;
bGrabsLabelCv = grabLabelCv;
mVideoImageType = videoImageType;
mVideoResolution = videoResolution;
mDepthResolution = depthResolution;

Expand Down Expand Up @@ -296,11 +299,11 @@ bool ofxKinectNui::open(bool nearmode /*= false */){
bIsNearmode = nearmode;
if(isInited()){
if(!kinect.IsInited()){
init(bGrabsVideo, bGrabsDepth, bGrabsLabel, bGrabsAudio, bGrabsLabel, bGrabsSkeleton, bGrabsLabelCv, mVideoResolution, mDepthResolution);
init(bGrabsVideo, bGrabsDepth, bGrabsLabel, bGrabsAudio, bGrabsLabel, bGrabsSkeleton, bGrabsLabelCv, mVideoImageType, mVideoResolution, mDepthResolution);
}
}
if(bGrabsVideo){
kinect.VideoStream().Open(NUI_IMAGE_TYPE_COLOR, mVideoResolution);
kinect.VideoStream().Open(mVideoImageType, mVideoResolution);
}
if(bGrabsDepth){
if(bGrabsLabel || bGrabsLabelCv){
Expand Down Expand Up @@ -1078,6 +1081,15 @@ bool ofxKinectNui::grabsLabelCv(){
return bGrabsLabelCv;
}

//---------------------------------------------------------------------------
/**
@brief Gets video resolution
@return video image resolution
*/
NUI_IMAGE_TYPE ofxKinectNui::getVideoImageType(){
return mVideoImageType;
}

//---------------------------------------------------------------------------
/**
@brief Gets video resolution
Expand Down
5 changes: 5 additions & 0 deletions src/ofxKinectNui.h
Expand Up @@ -46,6 +46,7 @@ class ofxKinectNui: public ofxBase3DVideo{
bool grabSkeleton:1;
bool grabCalibratedVideo:1;
bool grabLabelCv:1;
NUI_IMAGE_TYPE videoImageType;
NUI_IMAGE_RESOLUTION videoResolution;
NUI_IMAGE_RESOLUTION depthResolution;
InitSetting(){
Expand All @@ -56,6 +57,7 @@ class ofxKinectNui: public ofxBase3DVideo{
grabSkeleton = false;
grabCalibratedVideo = false;
grabLabelCv = false;
videoImageType = NUI_IMAGE_TYPE_COLOR;
videoResolution = NUI_IMAGE_RESOLUTION_640x480;
depthResolution = NUI_IMAGE_RESOLUTION_320x240;
}
Expand Down Expand Up @@ -97,6 +99,7 @@ class ofxKinectNui: public ofxBase3DVideo{
bool grabSkeleton,
bool grabCalibratedVideo,
bool grabLabelCv,
NUI_IMAGE_TYPE videoImageType = NUI_IMAGE_TYPE_COLOR,
NUI_IMAGE_RESOLUTION videoResolution = NUI_IMAGE_RESOLUTION_640x480,
NUI_IMAGE_RESOLUTION depthResolution = NUI_IMAGE_RESOLUTION_320x240);

Expand Down Expand Up @@ -181,6 +184,7 @@ class ofxKinectNui: public ofxBase3DVideo{
NUI_IMAGE_RESOLUTION getVideoResolution();
NUI_IMAGE_RESOLUTION getDepthResolution();

NUI_IMAGE_TYPE getVideoImageType();
int getVideoResolutionWidth();
int getVideoResolutionHeight();
int getDepthResolutionWidth();
Expand Down Expand Up @@ -246,6 +250,7 @@ class ofxKinectNui: public ofxBase3DVideo{
bool bIsFrameNew; ///< frame updated?
bool bIsFoundSkeleton;

NUI_IMAGE_TYPE mVideoImageType; ///< video image type
NUI_IMAGE_RESOLUTION mVideoResolution; ///< video resolution flag
NUI_IMAGE_RESOLUTION mDepthResolution; ///< depth resolution flag

Expand Down

0 comments on commit 55d54bf

Please sign in to comment.