2014-05-11 91 views
0

我有一個骨架縮放到屏幕(2/3屏幕)的固定高度,現在我想縮放圖像(與背景減法)以匹配該骨架。我使用下面的這個方法來找出目標距離,在屏幕上獲得一個固定的高度(無論用戶有多遠或接近),然後我計算一個垂直平移,以獲得骨骼的腳關節在底部圖片。如何縮放圖像以匹配比例縮放的骨架與Kinect

void KinectClass::ScaleJoints(){ 

//Target Height in screen 

double targetAdultHeightScreen = windowHeight*5/6; 

double originalAdultDistance = players[0].hipCenter.z; 

// Original Height in Screen 
originalHeightScreenAdult = SkeletonToScreen(players[0].rightFoot, windowWidth, windowHeight).y - SkeletonToScreen(players[0].head, windowWidth, windowHeight).y; 

// Target distance to get target height 
AdultscaleDistance = originalHeightScreenAdult * originalAdultDistance/ targetAdultHeightScreen; 

//New headJoint scaled to compute vertical translation 
Vector4 headJointAdult = {players[0].head.x ,players[0].head.y , AdultscaleDistance,players[0].head.w}; 

//Vertical translation 
transAdult = windowHeight/6 - SkeletonToScreen(headJointAdult, windowWidth, windowHeight).y; 

scaleRatioAdult = originalHeightScreenAdult/targetAdultHeightScreen; 

} 

事情是這樣的:

Scaled Skeleton

現在我要縮放位圖圖像(現在是屏幕的大小),所以我的骨架與之相匹配的圖像。

D2D1_SIZE_F screenSize = renderTarget_->GetSize(); 
//D2D1_RECT_F rec = D2D1::RectF(0, 0, screenSize.width, screenSize.height); 

的問題是,現在我要縮放圖像,以匹配其不僅擁有用戶,但整個場景(Kinect的顏色流)的骨架。

我必須將哪些轉換應用於該位圖?

回答

0

這種轉變的關鍵是使用下面的映射功能,每個骨骼關節:

public ColorImagePoint MapSkeletonPointToColorPoint(SkeletonPoint skeletonPoint, ColorImageFormat colorImageFormat);

一旦你翻譯所有關節到彩色飛機,可以執行任意縮放你想在顏色位圖,只需對翻譯的骨骼顏色點執行完全相同的縮放。