画面の固定高さ (画面の 2/3) にスケーリングされたスケルトンがあり、そのスケルトンに一致するように (背景の減算を使用して) 画像をスケーリングしたいと考えています。以下のこのメソッドを使用して、画面内の固定高さを取得するためのターゲット距離を見つけます (ユーザーがどれだけ離れているか近くにあるかに関係なく)。次に、垂直方向の移動を計算して、足の関節が下部にあるスケルトンを取得します。画像。
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;
}
このようなもの:
ここで、ビットマップ イメージをスケーリングする必要があります (現在は画面のサイズになっています)。スケルトンがイメージと一致するようにします。
D2D1_SIZE_F screenSize = renderTarget_->GetSize();
//D2D1_RECT_F rec = D2D1::RectF(0, 0, screenSize.width, screenSize.height);
問題は、ユーザーだけでなくシーン全体 (kinect のカラー ストリーム) を持つスケルトンに合わせて画像をスケーリングする必要があることです。
そのビットマップにどの変換を適用する必要がありますか?