加入图像内存是否,在切换图像时释放已加载的图像内存,保证检测过程中不会出现内存暴涨问题

master
bob.pan 4 years ago
parent 5281047649
commit adbb226aba

@ -311,7 +311,7 @@ bool CMainFrame::InitGraphView()
return true; return true;
return true; return true;
} }
/*初始化*/
bool CMainFrame::InitCurrentTask() bool CMainFrame::InitCurrentTask()
{ {
ui->tableWidget->setRowCount(0); ui->tableWidget->setRowCount(0);
@ -379,9 +379,9 @@ bool CMainFrame::InitCurrentTask()
if (m_pCurrentTask->GetTaskInfo()->templateImg.data == NULL) if (m_pCurrentTask->GetTaskInfo()->templateImg.data == NULL)
{ {
QString strExePath = QCoreApplication::applicationDirPath(); //QString strExePath = QCoreApplication::applicationDirPath();
QString strImagePath = strExePath + LP_DETECTOR_BUSSINESS_IMAGE_DIR; //QString strImagePath = strExePath + LP_DETECTOR_BUSSINESS_IMAGE_DIR;
QString strImageName = strImagePath + QString::number(m_pCurrentSolution->GetID()) + "_" + QString::number(m_pCurrentTask->GetID()) + ".bmp"; QString strImageName = m_pCurrentTask->GetPath()+ "/template.png"; //strImagePath + QString::number(m_pCurrentSolution->GetID()) + "_" + QString::number(m_pCurrentTask->GetID()) + ".bmp";
std::string strPath = strImageName.toLocal8Bit().toStdString(); std::string strPath = strImageName.toLocal8Bit().toStdString();
m_pCurrentTask->GetTaskInfo()->templateImg = cv::imread(strPath, CV_LOAD_IMAGE_GRAYSCALE); m_pCurrentTask->GetTaskInfo()->templateImg = cv::imread(strPath, CV_LOAD_IMAGE_GRAYSCALE);
} }
@ -520,6 +520,10 @@ bool CMainFrame::InitCurrentNode()
QString strName = currentItem->data(0,Qt::DisplayRole).toString(); QString strName = currentItem->data(0,Qt::DisplayRole).toString();
int nTaskID = currentItem->data(0, Qt::UserRole).toInt(); int nTaskID = currentItem->data(0, Qt::UserRole).toInt();
if (m_pCurrentTask)
{
m_pCurrentTask->GetTaskInfo()->templateImg.release();
}
m_pCurrentTask = m_pCurrentSolution->GetTaskByName(strName); m_pCurrentTask = m_pCurrentSolution->GetTaskByName(strName);
if (!m_pCurrentTask) if (!m_pCurrentTask)
return false; return false;
@ -925,6 +929,7 @@ bool CMainFrame::OnRunAlgo()
return false; return false;
} }
} }
m_pCurrentTask->GetTaskInfo()->detectImg.release();
} }
return true; return true;
} }

@ -129,6 +129,7 @@ void CDetectorEngine::detectFunc(cv::Mat srcImg, QString modeName, AlgResultCall
rltMap.insert("taskName", pTask->GetTaskName()); rltMap.insert("taskName", pTask->GetTaskName());
rltMap.insert("taskID", pTask->GetID()); rltMap.insert("taskID", pTask->GetID());
rltMap.insert("originImage", EngineBase::convMat2QImage(srcImg)); rltMap.insert("originImage", EngineBase::convMat2QImage(srcImg));
pTask->GetTaskInfo()->detectImg.release();
} }
} }

@ -1359,7 +1359,7 @@ Q_SLOT void lpMainWin::onShowMsg(QString str)
connect(pw, SIGNAL(finished()), pw, SLOT(deleteLater())); connect(pw, SIGNAL(finished()), pw, SLOT(deleteLater()));
connect(pw, SIGNAL(finished()), this, SLOT(onInitPW())); connect(pw, SIGNAL(finished()), this, SLOT(onInitPW()));
} }
/*触发相机*/
Q_SLOT void lpMainWin::onTriggerCam() Q_SLOT void lpMainWin::onTriggerCam()
{ {
if (lpGlobalConfig::instance()->IsDetect == false) if (lpGlobalConfig::instance()->IsDetect == false)

@ -27,6 +27,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Enchanter", "Enchanter\Ench
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tpCamHik", "tpCamHik\tpCamHik.vcxproj", "{64C9A32D-82E8-4C36-9AA6-52D58B23F687}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tpCamHik", "tpCamHik\tpCamHik.vcxproj", "{64C9A32D-82E8-4C36-9AA6-52D58B23F687}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tpCamVirtual", "tpCamVirtual\tpCamVirtual.vcxproj", "{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
@ -113,12 +115,20 @@ Global
{64C9A32D-82E8-4C36-9AA6-52D58B23F687}.Release|x64.Build.0 = Release|x64 {64C9A32D-82E8-4C36-9AA6-52D58B23F687}.Release|x64.Build.0 = Release|x64
{64C9A32D-82E8-4C36-9AA6-52D58B23F687}.Release|x86.ActiveCfg = Release|Win32 {64C9A32D-82E8-4C36-9AA6-52D58B23F687}.Release|x86.ActiveCfg = Release|Win32
{64C9A32D-82E8-4C36-9AA6-52D58B23F687}.Release|x86.Build.0 = Release|Win32 {64C9A32D-82E8-4C36-9AA6-52D58B23F687}.Release|x86.Build.0 = Release|Win32
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x64.ActiveCfg = Debug|x64
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x64.Build.0 = Debug|x64
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x86.ActiveCfg = Debug|Win32
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Debug|x86.Build.0 = Debug|Win32
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x64.ActiveCfg = Release|x64
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x64.Build.0 = Release|x64
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x86.ActiveCfg = Release|Win32
{707DDF6F-B78B-42F7-9EAD-E786C0FCD5FF}.Release|x86.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
Qt5Version = qt5.9.4-msvc2017-x64
SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A} SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A}
Qt5Version = qt5.9.4-msvc2017-x64
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

Loading…
Cancel
Save