我注意到,当我在Silverlight中从网络摄像头进行视频捕捉时,视频是“反转的”,这意味着当我向右移动时,我会在向左移动的屏幕上移动。有没有办法翻转视频捕捉?
答案 0 :(得分:0)
我可以左转,这就是你可以做到的。
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 ............................................. .........................................
这就是上面的代码所做的.. 干杯......只是忽略了点......
答案 1 :(得分:0)
我通过在Blend中打开项目来翻转一个矩形,选中了我的矩形 - &gt;属性 - &gt;转型 - &gt;由Y翻转。我以前没看过......(悲伤的长号)