水平翻转视频输入 C# DirectshowNet

发布于 2024-11-16 20:29:32 字数 206 浏览 3 评论 0原文

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

I'm using the dxSnap sample from the directshownet library http://directshownet.sourceforge.net/about.html to capture an image from my webcam. Does anybody know how to flip the video capture horizontally?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦里人 2024-11-23 20:29:32

两种方式:
1) 在网络摄像头后面添加示例抓取器过滤器,为其提供回调,当回调获取数据时,只需将它们翻转到位即可。
2)(更简单)获得图片后,使用GDI(BitBlt)或任何其他方法翻转图片。

Two ways:
1) Add the Sample Grabber filter after the webcam, provide it with a callback and when your callback gets the data just flip them inplace.
2) (easier) After you got the picture, use GDI (BitBlt) or any other methods to flip a picture.

深海里的那抹蓝 2024-11-23 20:29:32

在某些情况下,可以通过在 BITMAPINFOHEADER 中指定负高度来实现,参见自上而下与自下而上的 DIB

In some cases it is possible by specifying a negative height in the BITMAPINFOHEADER, see Top-Down vs. Bottom-Up DIBs.

潜移默化 2024-11-23 20:29:32

查看示例中的 DXSnap 示例,了解如何设置 ISampleGrabber 接口...它从示例抓取器回调中获取示例图像...只需做一点工作,您就可以支持一个事件来获取帧作为位图

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

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

Look at the DXSnap example in the samples to see how the ISampleGrabber interface is setup... it grabs a sample image from the sample grabber callback... with a little work you can sup an event to get frames as bitmaps...

The correct way to do this would be to create or find a filter to add to your graph that supports flipping the frame... MontiVision makes some great filters...not cheep though.

some camera's actually support this. if you have a logitec you can google for the C# COM interface wrapper that you can add to your graph,most cases the video orientation has to be defined before the graph is started.

茶色山野 2024-11-23 20:29:32

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

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

I achieved your desired effect but I used the AForge Framework (it uses the DirectShow interface to access video sources). All I did was to call an event handler on every new frame and flip those frames horizontally:

private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    eventArgs.Frame.RotateFlip(RotateFlipType.RotateNoneFlipX);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文