- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果我这样做:
while(1) {
//retrieve image from the camera
webCamImage=cvQueryFrame(camera) // where 'camera' is cvCreateCameraCapture(0)
//do some heavy processing on the image that may take around half a second
funcA()
}
现在,当我进行连续迭代时,webCamImage 似乎滞后了!
即使我移动相机,webCamImage 也需要很长时间才能更新到新的视野,并且它会不断显示和处理以前的视野相机帧。
我假设 cvQuery 有一些缓冲区可以检索帧。
你能告诉我如何在每次迭代中获取更新的相机 View 吗?
非常感谢
最佳答案
cvQueryFrame
只是调用其他 2 个函数的包装器:cvGrabFrame
,它非常快速地从相机获取数据,以及 cvRetrieveFrame
,它解压缩此数据并将其放入 IplImage
。如果您需要立即捕获帧,只需抓取帧,然后检索它以供稍后处理。
参见 http://opencv.jp/opencv-1.0.0_org/docs/ref/opencvref_highgui.htm FMI
话虽如此,我将 cvQueryFrame
与典型的网络摄像头一起使用,并且我每秒可以轻松获得数十帧。滞后的部分是否真的在您的 funcA()
调用中? 编辑:从您代码中的注释,我看到 funcA()
确实是最慢的部分。如果执行需要半秒,您只会每半秒从 cvQUeryFrame
获取一个新帧,就像您描述的那样。尝试使 funcA
更快,或者将其放在单独的线程中。
友情提示,cvQueryFrame
/cvRetrieveFrame
返回的IplImage
用户不得修改或删除;它是 OpenCV 内部存储系统的一部分,如果你用它做任何有趣的事情,你应该复制一份。我不知道你是否已经这样做了,但我一开始肯定做错了。
关于c++ - cvQueryFrame 是否预先有帧缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248058/
在 OpenCV 引用手册中:http://opencv.willowgarage.com/documentation/c/highgui_reading_and_writing_images_and
我有一个问题。 cvQueryFrame 究竟做了什么?据我了解,它会从缓冲区中“已捕获的帧”中选择一个帧,对吧? 在我的应用程序中,每一帧的处理时间为 1 秒,但我的相机的 fps 是 30fps。
如果我这样做: while(1) { //retrieve image from the camera webCamImage=cvQueryFrame(camera) // where
我正在尝试处理大型 AVI 文件(大约 61000 帧,505MB)OpenCV,使用 cvCaptureFromAVI() 和 cvQueryFrame()。 但是,cvQueryFrame() 在
我对从 cvQueryFrame 返回的 IplImage* 有问题...它的内存永远不会被库释放。文档说: The returned image should not be released or
我正在从 avi 视频中抓取一帧。 img1 = cvQueryFrame( capture ); cvReleaseImage( &img1 ); 当我尝试释放抓取的帧 img1 时,我得到了
CvCapture* capture = cvCreateFileCapture( filename ); int nFrames = (int) cvGetCaptureProperty( capt
当我通过“cvQueryFrame”使用 openCV 捕获投影图案的相机图像时,我经常以意外的人工制品结束:投影仪的扫描线。也就是说,由于我无法精确计时“cvQueryFrame”捕获图像的时间,因
有谁知道为什么我总是收到空帧?我尝试跳过前五个,但仍然为空。 int _tmain(int argc, char** argv) { CvCapture *capture = cvCaptureFr
这里是新用户,也是使用 OpenCV 编程的新手。 我使用的是 Visual Studio 2012,并且按照说明安装了所有 OpenCV 模块,运行代码捕获视频流和过滤器/等没有问题。 我正在尝试在
我有一个关于 OpenCV 中的 cvQueryFrame() 的基本问题。 我有以下代码: IplImage *frame1,*frame2; frame1 = cvQueryFrame(captu
当我在 Windows 上执行 cvQueryFrame 时,API 会阻塞,直到图像被传送。在 Mac OS X 上,我的 CPU 使用率为 100%,同时只查询图像并将其显示在窗口中。我在最新的
我正在使用上面提到的两个 OpenCV 函数从我的网络摄像头中检索帧。没有设置额外的属性,只是使用默认参数运行。 当循环阅读框架时,我可以看到图像发生了变化,亮度和对比度似乎是自动调整的。看起来肯定是
我正在尝试运行以下代码: #include #include #include #include using namespace std; using namespace cv; using
我是一名优秀的程序员,十分优秀!