【发布时间】:2012-04-29 16:59:27
【问题描述】:
我一直在研究图像识别程序一段时间,但突然我注意到,当我长时间测试我的程序时,函数 cvLoadImage 有时会停止返回图像。我看不到发生这种情况的明确模式或时间,但是一旦失败,它将在程序的其余部分继续失败,直到我再次重新启动。这段代码只运行一次以更新我的用户界面。
我的代码:
IplImage* UIframe = cvLoadImage("../images/background.jpg", CV_LOAD_IMAGE_COLOR);
if(UIframe) {
//do stuff
} else {
cout<<"Image not loaded"<<endl;
}
cvReleaseImage(&UIframe);
我已经发现 cvLoadImage 失败的原因有几个:
- 路径是静态的,并且在程序的早期工作,所以文件在那里
- 我释放了映像,没有其他内存泄漏导致此问题
- .jpg 在尝试加载时未更新
- 我已经安装了所有正确的库,因为 cvLoadImage 早先正在运行
一种解决方案是只加载一次图像并不断从内存中更新它,但我想知道为什么会发生这种情况以及如何解决这个问题。
【问题讨论】: