2013-02-12 128 views
-2

我需要处理来自USB摄像头的视频,但我不知道如何保持在内存中的流。我发现了一个代码,它显示在一个窗口中,但我找不到它显示之前存储的位置。 任何人都可以帮我解决这个问题吗?OpenCV - 从USB摄像头处理流wince6

+0

让我们来看看一些代码,以便我们可以帮助您。为了在opencv中显示图像(你说你在做什么),你必须将图像存储在某种数据结构中,比如Mat或IplImage *或其他东西。你想处理它然后显示。向我们展示一些代码。 – rossb83 2013-02-12 17:20:11

回答

0

如果你check my other answer,你会看到功能cvQueryFrame()从相机中检索一帧,并将其存储在​​,这是一个IplImage*类型的变量。 OpenCV使用类型IplImage来表示内存中的图像。当然,这个例子展示了如何使用OpenCV的C接口,所以如果您打算使用C++接口,您必须查看cv::Mat

无论如何,从相机检索帧并将它们留在内存中供以后使用需要您有一个缓冲机制来存储帧。我建议你看看循环缓冲器(又名ringbuffers),看看它们是如何工作的:

+0

谢谢你的回答。我阅读这篇文章,代码运行,并处理视频。我试图在wince项目中使用它,但它(cvCaptureFromCAM)没有做任何事情。你对wince有什么建议吗? – user2004403 2013-02-13 09:15:56

+0

您是否尝试过其他值,如-1,0或1? – karlphillip 2013-02-13 12:29:48

+0

我试过了,但不起作用。 – user2004403 2013-02-14 07:52:55