OpenCV - cvQueryFrame()

时间:2011-03-14 09:35:58

标签: c++ opencv

在OpenCV参考手册中:http://opencv.willowgarage.com/documentation/c/highgui_reading_and_writing_images_and_video.html

它陈述了以下内容:cvQueryFrame( )

  

返回的图片不应该是   由用户发布或修改。

这句话是什么意思?

感谢。

1 个答案:

答案 0 :(得分:5)

根据源类型(相机/文件,编解码器)cvQueryFrame可能正在为连续捕获的图像使用相同的存储区域。如果您尝试取消分配或修改cvQueryFramecvRetrieveFrame返回的图像,则从OpenCV捕获代码可能会停止正常运行。

这意味着您不应尝试释放从这些函数返回的图像内存,例如通过调用cvReleaseImage。图书馆会在需要时为您完成此任务。

此外,这意味着您不应使用cvScalecvSet类型的函数或直接更改低级像素数据来修改图像。如果要在使用之前修改所获取的图像,请使用cvCloneImage为自己创建单独的副本。