diff --git a/src/algorithm/AlgorithmFluorescence.cpp b/src/algorithm/AlgorithmFluorescence.cpp index 4a333bc..f392d43 100644 --- a/src/algorithm/AlgorithmFluorescence.cpp +++ b/src/algorithm/AlgorithmFluorescence.cpp @@ -240,7 +240,7 @@ int CAlgorithmFluorescence::IImageAnalysis(class IImageObject* pImgObj, TP_ALGOR bool useDiameter = vMap.value("useDiameter", 0).toBool(); double dD2H = vMap.value("d2h", -1).toDouble(); int nthreshold = vMap.value("Threshold", 15).toInt(); - bool bUseBackground = vMap.value("useBackground").toBool(); + bool bUseBackground = vMap.value("useBackground",false).toBool();//true 使用背景图抠图 false 不使用背景 if (nthreshold <= 0) nthreshold = 15; diff --git a/src/algorithm/ImageProcess.cpp b/src/algorithm/ImageProcess.cpp index 1995fa9..8f74151 100644 --- a/src/algorithm/ImageProcess.cpp +++ b/src/algorithm/ImageProcess.cpp @@ -40,7 +40,7 @@ Mat findEdge2(const Mat &Src) filter2D(Src, ret, CV_8UC1, kernel); return ret; } -#define REAIZE 2 +#define REAIZE 1 cv::Mat ImageProcess::findCircleObject(const Mat &src, const Mat& backgroundImg, int nThres /*= 20*/, luffy_base::luffyCircle *pCircle /*= NULL*/) { #ifdef MOTO_DETECT//摩轮型号识别抠图算法 diff --git a/src/tpMain/DetectState.cpp b/src/tpMain/DetectState.cpp index 45070aa..c3b7218 100644 --- a/src/tpMain/DetectState.cpp +++ b/src/tpMain/DetectState.cpp @@ -53,6 +53,7 @@ void DetectState::init(QString strPath) m_Debug = detectImage.value("Debug").toInt(1001); saveGood = detectImage.value("Save_Good").toInt(0); saveBad = detectImage.value("Save_Bad").toInt(0); + m_UseBackground = detectImage.value("UseBackground").toInt(0); saveCutGood = detectImage.value("SaveCut_Good").toInt(0); saveCutBad = detectImage.value("SaveCut_Bad").toInt(0); m_SaveImgDirPath = detectImage.value("SaveImgPath").toString(); @@ -213,8 +214,10 @@ void DetectState::saveDeteImage() DetectImage.insert("Save_Bad", saveBad); DetectImage.insert("Save_Good", saveGood); DetectImage.insert("SaveImgPath",m_SaveImgDirPath); + DetectImage.insert("UseBackground", m_UseBackground); jsMyself.insert("DetectImage", DetectImage); + QJsonObject autosystemobj; autosystemobj.insert("AutoSendTick2COM", m_AutoSendTick2COM); autosystemobj.insert("AutoSendTick2Net", m_AutoSendTick2Net); diff --git a/src/tpMain/DetectState.h b/src/tpMain/DetectState.h index 4502002..0334254 100644 --- a/src/tpMain/DetectState.h +++ b/src/tpMain/DetectState.h @@ -76,7 +76,7 @@ public: int m_showThressValue; int m_showThressList; int m_UseCutImg; - + int m_UseBackground{0}; bool bLockDetect{ false }; }; diff --git a/tpvs17/tpMain/QSystemSettingDlg.cpp b/tpvs17/tpMain/QSystemSettingDlg.cpp index 9975498..41956f7 100644 --- a/tpvs17/tpMain/QSystemSettingDlg.cpp +++ b/tpvs17/tpMain/QSystemSettingDlg.cpp @@ -236,6 +236,7 @@ void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName) picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图")))); + picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("背景图")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测结果")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("图像保存路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("设置保存路径")))); @@ -266,6 +267,12 @@ void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName) connect(m_saveImgSrc_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_saveImgSrc_bad->setChecked(DetectState::instance()->saveBad == (int)true); + QCheckBox *m_useBackground = new QCheckBox; + m_useBackground->setText(tr("使用背景图")); + m_useBackground->setObjectName("m_useBackground"); + connect(m_useBackground, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); + m_useBackground->setChecked(DetectState::instance()->saveBad == (int)true); + QCheckBox *m_ResAll2A = new QCheckBox; m_ResAll2A->setText(tr("轮毂全去A通道")); m_ResAll2A->setObjectName("m_ResAll2A"); @@ -295,16 +302,18 @@ void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName) pTreewidget->setItemWidget(picitems.at(2), 1, m_saveImgRes_bad); pTreewidget->setItemWidget(picitems.at(3), 1, m_saveImgSrc_good); pTreewidget->setItemWidget(picitems.at(4), 1, m_saveImgSrc_bad); - pTreewidget->setItemWidget(picitems.at(5), 1, m_ResAll2A); - pTreewidget->setItemWidget(picitems.at(6), 1, m_pLbShowPath); - pTreewidget->setItemWidget(picitems.at(7), 1, pbSetSavePath); - pTreewidget->setItemWidget(picitems.at(8), 1, pbOpenImgPath); - pTreewidget->setItemWidget(picitems.at(9), 1, pSavePara); + pTreewidget->setItemWidget(picitems.at(5), 1, m_useBackground); + pTreewidget->setItemWidget(picitems.at(6), 1, m_ResAll2A); + pTreewidget->setItemWidget(picitems.at(7), 1, m_pLbShowPath); + pTreewidget->setItemWidget(picitems.at(8), 1, pbSetSavePath); + pTreewidget->setItemWidget(picitems.at(9), 1, pbOpenImgPath); + pTreewidget->setItemWidget(picitems.at(10), 1, pSavePara); m_listObj.append(pChangeBGbp); m_listObj.append(m_saveImgRes_bad); m_listObj.append(m_saveImgRes_good); m_listObj.append(m_saveImgSrc_bad); + m_listObj.append(m_useBackground); m_listObj.append(m_saveImgSrc_good); m_listObj.append(m_ResAll2A); m_listObj.append(m_pLbShowPath); @@ -322,6 +331,7 @@ void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName) picitems.at(7)->setSizeHint(1, QSize(100, 40)); picitems.at(8)->setSizeHint(1, QSize(100, 40)); picitems.at(9)->setSizeHint(1, QSize(100, 40)); + picitems.at(10)->setSizeHint(1, QSize(100, 40)); } void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName) @@ -709,6 +719,9 @@ Q_SLOT void QSystemSettingDlg::onCheckstateChanged(int state) else if (strObj == "m_saveImgSrc_bad") { DetectState::instance()->saveBad = int(state == 2); } + else if (strObj == "m_useBackground") { + DetectState::instance()->m_UseBackground = int(state == 2); + } else if (strObj == "m_ResAll2A") { DetectState::instance()->m_bObjAll2A = (state == 2 ? true : false); } diff --git a/tpvs17/tpMain/lpMainWin.cpp b/tpvs17/tpMain/lpMainWin.cpp index 2d125c5..d148e63 100644 --- a/tpvs17/tpMain/lpMainWin.cpp +++ b/tpvs17/tpMain/lpMainWin.cpp @@ -601,6 +601,7 @@ QVariant lpMainWin::IGetVariantById(int id) vMap.insert("useDiameter", DetectState::instance()->bUseDiameter); vMap.insert("Threshold", DetectState::instance()->m_AlgThres); vMap.insert("IsCutImg", DetectState::instance()->m_UseCutImg); + vMap.insert("useBackground", DetectState::instance()->m_UseBackground>0?true:false);//使用背景图 void* address = (void*)m_pCtrl->getAllModelMapPtr(); long long varadr = (long long)address;