C# Kinect骨架调整大小/图像重新调整大小?

C# Kinect骨架调整大小/图像重新调整大小?,c#,image,compare,kinect,C#,Image,Compare,Kinect,我之前发表过关于c#kinect图像比较的文章,我通过在黑色背景上拍摄骨架流的截图克服了许多问题,以克服比较照片固有的问题,现在我的问题是我需要将用户的图像与预保存的动作进行比较,然而,当用户的身高和我不一样时,我遇到了麻烦,有没有办法克服这个问题?我唯一的想法是调整图像的大小或比较某些彩色像素的位置,这取决于您想要如何比较图像。如果你想逐像素比较它们,你不需要调整大小,你只需要在for循环中使用一个比率。例如,如果image1的大小为WIDTH1*HEIGHT1,image2的大小为WIDTH

我之前发表过关于c#kinect图像比较的文章,我通过在黑色背景上拍摄骨架流的截图克服了许多问题,以克服比较照片固有的问题,现在我的问题是我需要将用户的图像与预保存的动作进行比较,然而,当用户的身高和我不一样时,我遇到了麻烦,有没有办法克服这个问题?我唯一的想法是调整图像的大小或比较某些彩色像素的位置,这取决于您想要如何比较图像。如果你想逐像素比较它们,你不需要调整大小,你只需要在for循环中使用一个比率。例如,如果image1的大小为WIDTH1*HEIGHT1,image2的大小为WIDTH2*HEIGHT2,则可以使用如下的For循环:

for(int i = 0; i < WIDTH1; i++)
{
    for(int j = 0; j < HEIGHT1; j++)
    {
        pixel1 = image1[i][j];
        pixel2 = image2[i * WIDTH2/WIDTH1][j * HEIGHT2/HEIGHT1];
        // compare
    }
}

基本上它的意思是:pixel2是75%的一个像素和25%的相邻像素。这样做实际上是在做一个简单的调整大小算法(将4个不同的像素组合成1个)。

比较的目的是什么?你的描述几乎让人觉得你在试图检测姿势和/或手势。
pixel1 = image1[i][j];
pixel2 = 0.75 * image2[i * WIDTH2/WIDTH1][j * HEIGHT2/HEIGHT1] + 
    0.25 * AVERAGE(image2[i * WIDTH2/WIDTH1 + 1][j * HEIGHT2/HEIGHT1] +
    image2[i * WIDTH2/WIDTH1][j * HEIGHT2/HEIGHT1 + 1] + 
    image2[i * WIDTH2/WIDTH1 + 1][j * HEIGHT2/HEIGHT1 + 1]);