C# 如何在Silverlight中从网络摄像头翻转视频捕获

C# 如何在Silverlight中从网络摄像头翻转视频捕获,c#,silverlight,video,webcam,C#,Silverlight,Video,Webcam,我注意到,当我在Silverlight视频中从网络摄像头捕获视频时,是“反向”的,意思是当我向右移动时,屏幕上的我向左移动。有什么方法可以翻转视频捕获吗?我可以左右翻转,这就是你可以做到的 private WriteableBitmap flipVideo(WriteableBitmap notFliped) { WriteableBitmap motionBmp = new WriteableBitmap(notFliped.PixelWidth, notFliped.

我注意到,当我在Silverlight视频中从网络摄像头捕获视频时,是“反向”的,意思是当我向右移动时,屏幕上的我向左移动。有什么方法可以翻转视频捕获吗?

我可以左右翻转,这就是你可以做到的

private WriteableBitmap flipVideo(WriteableBitmap notFliped)
    {
        WriteableBitmap motionBmp = new WriteableBitmap(notFliped.PixelWidth, notFliped.PixelHeight);
        int leftRight = -1;
        int[] flipedArray = motionBmp.Pixels;
        int[] currentArray = notFliped.Pixels;
        for (int h = 0; h < 480; h++)
        {
            leftRight++;
            for (int w = 0; w < 640; w++)
            {
                flipedArray[h * 640 + w] = currentArray[639 + (h * 640) - w];
            }
        }
        return motionBmp;
    }
private WriteableBitmap flipVideo(WriteableBitmap NotFlipped)
{
WriteableBitmap运动BMP=新的WriteableBitmap(NotFlipped.PixelWidth,NotFlipped.PixelHeight);
int leftRight=-1;
int[]flipedArray=motionBmp.Pixels;
int[]currentArray=notFliped.Pixels;
对于(int h=0;h<480;h++)
{
leftRight++;
对于(int w=0;w<640;w++)
{
翻转阵列[h*640+w]=当前阵列[639+(h*640)-w];
}
}
返回运动;
}
请注意,640和480是相机分辨率,请根据您的值调整它们。我不知道网络摄像头是否默认支持任何其他分辨率。但如果是640*480,则可以按原样使用此代码。此外,您还需要了解,即使一个cam框架在像素((3x3)图片)中看起来像这样

0,1,2。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 3,4,5...................................................................................... 6,7,8

像素返回[]={0,1,2,3..8} 所以你需要把这些值一行一行地转换成这个值

2,1,0。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5,4,3...................................................................................... 8,7,6

以上代码就是这样做的。。
干杯..忽略这些点…

我通过在Blend中打开项目翻转了一个矩形,选择了我的矩形->属性->变换->按Y翻转。我以前怎么没有看到它…(悲伤的长号)

相机对还是你的对?相机对。基本上,它应该和照镜子一样,但现在正好相反,我想从我记忆中你需要画出相反的图像。我已经很久没有看Silverlight了,你知道怎么做吗?这看起来很有希望-谢谢你的努力,但我在下面找到了一个更简单的解决方案:)这就是如果你只使用Silverlight,你可以做的,我回答了你的Silverlight问题。。