У меня есть такая структура:
struct MatInfo
{
cv::Mat mainImgMat;
cv::Mat roiMat;
CvRect roiRect;
int lineId;
bool doProcess;
QString plateString;
CvRect finalRect;
float cnf;
};
Я хочу иметь список Qlist этой структуры, который добавляет член в слот, как это:
addToList(Mat m, Mat ocrMat, CvRect plateRect, int lineId, bool doProcess)
{
if (_lst_MatInfo.size() < 30 && !ocrMat.empty())
{
MatInfo info;
info.mainImgMat = m;
info.roiMat = ocrMat;
info.roiRect = plateRect;
info.lineId = lineId;
info.doProcess = doProcess;
_lst_MatInfo << info;
}
}
тогда члены Qlist будут обработаны и освобождены в другом потоке, например так:
ocr()
{
MatInfo matInfo = _lst_MatInfo.first();
_lst_MatInfo.removeFirst();
process(matInfo);
}
обратите внимание, что я ничего нового не делаю, и каждый раз, когда я использую MatInfo, я удаляю первого члена Qlist.
но утечка памяти и приложение перестает работать.
я должен сделать что-то большее, чем removeFirst ()?
Задача ещё не решена.
Других решений пока нет …