有一次在使用工业相机进行定时拍照识别时遇到一种情况:当时是使用一个子线程来进行定时拍照识别,但是运行后发现开启子线程就报内存溢出的错误导致程序奔溃,经过排除发现是因为在子线程中使用了向量变量。在使用向量变量后,没有清除内存导致保存,应该使用resize进行内存清除。
报错的程序段:
vector<Mat> channels;
split(imgRect, channels);
Mat img = channels.at(0);
修改后能正常运行的程序段:
vector<Mat> channels;
split(imgRect, channels);
Mat img = channels.at(0);
channels.resize(0);
特此记录与分享