测试代码如下:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat img = imread("F:\\opencvtest\\huge.png");
namedWindow("picture");
imshow("picture", img);
waitKey(6000);
return 0;
}
运行出现如下错误:
原因分析:
这说明,内存回收出了问题,openCV申请的内存,没有自动归还。并且只有使用waitKey函数时,才会出现如此异常,考虑到waitKey是控制openCV窗口的函数,那么可以确定是openCV窗口的自动销毁出了问题。
解决方法:
在waitKey(6000);之后
return 0;之前加:destroyAllWindows(); //手动销毁全部窗口。