如何在Silverlight中从网络摄像头中翻转视频

我注意到,当我从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;
    }

请注意,640和480是相机分辨率,并将其调整为您的值。 我不知道摄像头默认支持任何其他分辨率。 但如果640 * 480,那么你可以使用这个代码。 此外,您需要了解即使一个凸轮框架以像素为单位((3x3)图片)

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

bitmap.Pixels返回[] = {0,1,2,3..8},所以你需要将值逐行翻转

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

这就是上面的代码所做的......干杯......而忽略了这些点......


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

链接地址: http://www.djcxy.com/p/14233.html

上一篇: How flip video capture from webcam in Silverlight

下一篇: Making an Array of webcams using capture