У меня есть скелет, масштабированный до фиксированной высоты на экране (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).
Какие преобразования мне нужно применить к этому растровому изображению?