【发布时间】:2014-10-03 15:35:08
【问题描述】:
我在 C# Web 窗体中使用 DirectShow 获取视频源。现在我想使用 OpenCV 处理帧。 (EmguCV 包装器)
1) 我如何从 DirectShow 提要中收集帧。
2) 有没有办法结合 DS 和 OpenCV。
谢谢。
【问题讨论】:
-
你知道如何编写自己的直接显示过滤器吗?
-
一点点.. 我为我的任务找到了一个 DirectX 代码(即提取帧).. 这两种方法有什么区别.. DirectShow vs DirectX
-
Afaik DirectX 使用 DirectShow 进行 2D 渲染,所以应该没有区别,但我对 DirectShow 也很陌生,所以我可能错了。
-
您应该能够从 DirectShow 提要中提取帧。这可能会对您有所帮助:codeproject.com/Articles/1353/…。您应该能够使用 OpenCV 从捕获的帧中处理像素数据(取决于您的帧使用的图像格式,您可能需要稍微调整一下)。这是一个 OpenGL+OpenCV 应用程序的框架,它可能会给你一些指示下一步该做什么:cs.ucsb.edu/~holl/CS290I/opengl_cv.cpp我自己使用过它,它正在工作。
-
@Micka,是的,据我所知 DirectShow 仅用于 2D 渲染。但是 3D 可以很容易地转换为 2D。毕竟,这是在我们的 2D 显示器上显示 3D 对象时实际发生的情况。 :)
标签: c# opencv directshow emgucv