水平翻转视频输入C#DirectshowNet

本文关键字:C#DirectshowNet 输入 视频 翻转 水平 | 更新日期: 2023-09-27 18:00:25

我正在使用directshownet库中的dxSnap示例http://directshownet.sourceforge.net/about.html从我的网络摄像头中捕获图像。有人知道如何水平翻转视频捕获吗?

水平翻转视频输入C#DirectshowNet

两种方式:1) 在网络摄像头后添加Sample Grabber过滤器,为其提供回调,当回调获得数据时,只需将其翻转到位。2) (更容易)获得图片后,使用GDI(BitBlt)或任何其他方法翻转图片。

在某些情况下,可以在BITMAPINFOHEADER中指定负高度,请参阅自上而下与自下而上DIB。

查看示例中的DXSnap示例,了解如何设置ISampleGrabber接口。。。它从samplegrabber回调中获取一个样例图像。。。只要做一点工作,你就可以支持一个事件,将帧作为位图。。。

正确的方法是创建或找到一个过滤器添加到支持翻转框架的图形中。。。MontiVision制作了一些很棒的滤镜。。。不过并不俗气。

一些相机实际上支持这一点。如果你有一个logitec,你可以在谷歌上搜索可以添加到图形中的C#接口包装器,在大多数情况下,必须在图形启动之前定义视频方向。

我达到了你想要的效果,但我使用了AForge框架(它使用DirectShow接口访问视频源)。我所做的只是在每个新帧上调用一个事件处理程序,并水平翻转这些帧:

private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    eventArgs.Frame.RotateFlip(RotateFlipType.RotateNoneFlipX);
}