概述
对于一个视频文件,如果用循环语句反复的调用VideoCapture::read(frame) 或者“>>”读图像时,会发生内存泄漏,程序崩溃。
int main()
{
cv::VideoCapture m_vp("D:\testVideo.avi");
if(!m_vp.isopened)
{
std::cout<<"Read video failed!";
return -1;
}
cv::Mat frame;
int m_frameNum = m_vp.get(CV_CAP_PROP_FRAME_COUNT);
bool stop = false;
int count = 0;
while(!stop))
{
if(!m_vp.read(frame)) //当视频帧数很多,循环读数据 会导致内存泄漏
{
std::cout<<"Read frame failed!";
return -1;
}
count++;
if(char(c)==27||count>=m_frameNum)
stop = true;
}
return 0;
}
最后
以上就是重要小白菜为你收集整理的【Opencv学习(一)】VideoCapture读数据内存泄漏的全部内容,希望文章能够帮你解决【Opencv学习(一)】VideoCapture读数据内存泄漏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复