我正在使用来自 directshownet 库http://directshownet.sourceforge.net/about.html的 dxSnap 示例从我的网络摄像头捕获图像。有人知道如何水平翻转视频捕获吗?
3507 次
4 回答
1
两种方法:1)在网络摄像头之后添加 Sample Grabber 过滤器,为其提供回调,当您的回调获取数据时,只需将它们翻转到位。2)(更简单)得到图片后,使用GDI(BitBlt)或任何其他方法翻转图片。
于 2011-07-01T09:55:51.513 回答
1
在某些情况下,可以通过在 中指定负高度BITMAPINFOHEADER
,请参阅 Top-Down vs. Bottom-Up DIBs。
于 2012-06-19T00:17:55.030 回答
1
查看示例中的 DXSnap 示例,了解 ISampleGrabber 接口是如何设置的……它从示例抓取器回调中抓取示例图像……通过一些工作,您可以创建一个事件以获取帧作为位图……
执行此操作的正确方法是创建或找到一个过滤器以添加到支持翻转框架的图形中……MontiVision 制作了一些很棒的过滤器……但并不便宜。
一些相机实际上支持这一点。如果你有罗技,你可以在谷歌上搜索可以添加到图形中的 C# COM 接口包装器,大多数情况下,必须在图形启动之前定义视频方向。
于 2012-08-14T20:30:24.627 回答
1
我达到了你想要的效果,但我使用了 AForge 框架(它使用 DirectShow 接口访问视频源)。我所做的只是在每个新帧上调用一个事件处理程序并水平翻转这些帧:
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
eventArgs.Frame.RotateFlip(RotateFlipType.RotateNoneFlipX);
}
于 2014-12-12T16:05:55.730 回答