add usbbackground param

newClassify
qushuai777 5 years ago
parent 1d2d81c703
commit daf8f3e8c5

@ -240,7 +240,7 @@ int CAlgorithmFluorescence::IImageAnalysis(class IImageObject* pImgObj, TP_ALGOR
bool useDiameter = vMap.value("useDiameter", 0).toBool(); bool useDiameter = vMap.value("useDiameter", 0).toBool();
double dD2H = vMap.value("d2h", -1).toDouble(); double dD2H = vMap.value("d2h", -1).toDouble();
int nthreshold = vMap.value("Threshold", 15).toInt(); 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) if (nthreshold <= 0)
nthreshold = 15; nthreshold = 15;

@ -40,7 +40,7 @@ Mat findEdge2(const Mat &Src)
filter2D(Src, ret, CV_8UC1, kernel); filter2D(Src, ret, CV_8UC1, kernel);
return ret; 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*/) cv::Mat ImageProcess::findCircleObject(const Mat &src, const Mat& backgroundImg, int nThres /*= 20*/, luffy_base::luffyCircle *pCircle /*= NULL*/)
{ {
#ifdef MOTO_DETECT//摩轮型号识别抠图算法 #ifdef MOTO_DETECT//摩轮型号识别抠图算法

@ -53,6 +53,7 @@ void DetectState::init(QString strPath)
m_Debug = detectImage.value("Debug").toInt(1001); m_Debug = detectImage.value("Debug").toInt(1001);
saveGood = detectImage.value("Save_Good").toInt(0); saveGood = detectImage.value("Save_Good").toInt(0);
saveBad = detectImage.value("Save_Bad").toInt(0); saveBad = detectImage.value("Save_Bad").toInt(0);
m_UseBackground = detectImage.value("UseBackground").toInt(0);
saveCutGood = detectImage.value("SaveCut_Good").toInt(0); saveCutGood = detectImage.value("SaveCut_Good").toInt(0);
saveCutBad = detectImage.value("SaveCut_Bad").toInt(0); saveCutBad = detectImage.value("SaveCut_Bad").toInt(0);
m_SaveImgDirPath = detectImage.value("SaveImgPath").toString(); m_SaveImgDirPath = detectImage.value("SaveImgPath").toString();
@ -213,8 +214,10 @@ void DetectState::saveDeteImage()
DetectImage.insert("Save_Bad", saveBad); DetectImage.insert("Save_Bad", saveBad);
DetectImage.insert("Save_Good", saveGood); DetectImage.insert("Save_Good", saveGood);
DetectImage.insert("SaveImgPath",m_SaveImgDirPath); DetectImage.insert("SaveImgPath",m_SaveImgDirPath);
DetectImage.insert("UseBackground", m_UseBackground);
jsMyself.insert("DetectImage", DetectImage); jsMyself.insert("DetectImage", DetectImage);
QJsonObject autosystemobj; QJsonObject autosystemobj;
autosystemobj.insert("AutoSendTick2COM", m_AutoSendTick2COM); autosystemobj.insert("AutoSendTick2COM", m_AutoSendTick2COM);
autosystemobj.insert("AutoSendTick2Net", m_AutoSendTick2Net); autosystemobj.insert("AutoSendTick2Net", m_AutoSendTick2Net);

@ -76,7 +76,7 @@ public:
int m_showThressValue; int m_showThressValue;
int m_showThressList; int m_showThressList;
int m_UseCutImg; int m_UseCutImg;
int m_UseBackground{0};
bool bLockDetect{ false }; bool bLockDetect{ false };
}; };

@ -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("背景图"))));
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))); connect(m_saveImgSrc_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgSrc_bad->setChecked(DetectState::instance()->saveBad == (int)true); 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; QCheckBox *m_ResAll2A = new QCheckBox;
m_ResAll2A->setText(tr("轮毂全去A通道")); m_ResAll2A->setText(tr("轮毂全去A通道"));
m_ResAll2A->setObjectName("m_ResAll2A"); 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(2), 1, m_saveImgRes_bad);
pTreewidget->setItemWidget(picitems.at(3), 1, m_saveImgSrc_good); pTreewidget->setItemWidget(picitems.at(3), 1, m_saveImgSrc_good);
pTreewidget->setItemWidget(picitems.at(4), 1, m_saveImgSrc_bad); pTreewidget->setItemWidget(picitems.at(4), 1, m_saveImgSrc_bad);
pTreewidget->setItemWidget(picitems.at(5), 1, m_ResAll2A); pTreewidget->setItemWidget(picitems.at(5), 1, m_useBackground);
pTreewidget->setItemWidget(picitems.at(6), 1, m_pLbShowPath); pTreewidget->setItemWidget(picitems.at(6), 1, m_ResAll2A);
pTreewidget->setItemWidget(picitems.at(7), 1, pbSetSavePath); pTreewidget->setItemWidget(picitems.at(7), 1, m_pLbShowPath);
pTreewidget->setItemWidget(picitems.at(8), 1, pbOpenImgPath); pTreewidget->setItemWidget(picitems.at(8), 1, pbSetSavePath);
pTreewidget->setItemWidget(picitems.at(9), 1, pSavePara); pTreewidget->setItemWidget(picitems.at(9), 1, pbOpenImgPath);
pTreewidget->setItemWidget(picitems.at(10), 1, pSavePara);
m_listObj.append(pChangeBGbp); m_listObj.append(pChangeBGbp);
m_listObj.append(m_saveImgRes_bad); m_listObj.append(m_saveImgRes_bad);
m_listObj.append(m_saveImgRes_good); m_listObj.append(m_saveImgRes_good);
m_listObj.append(m_saveImgSrc_bad); m_listObj.append(m_saveImgSrc_bad);
m_listObj.append(m_useBackground);
m_listObj.append(m_saveImgSrc_good); m_listObj.append(m_saveImgSrc_good);
m_listObj.append(m_ResAll2A); m_listObj.append(m_ResAll2A);
m_listObj.append(m_pLbShowPath); 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(7)->setSizeHint(1, QSize(100, 40));
picitems.at(8)->setSizeHint(1, QSize(100, 40)); picitems.at(8)->setSizeHint(1, QSize(100, 40));
picitems.at(9)->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) void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
@ -709,6 +719,9 @@ Q_SLOT void QSystemSettingDlg::onCheckstateChanged(int state)
else if (strObj == "m_saveImgSrc_bad") { else if (strObj == "m_saveImgSrc_bad") {
DetectState::instance()->saveBad = int(state == 2); DetectState::instance()->saveBad = int(state == 2);
} }
else if (strObj == "m_useBackground") {
DetectState::instance()->m_UseBackground = int(state == 2);
}
else if (strObj == "m_ResAll2A") { else if (strObj == "m_ResAll2A") {
DetectState::instance()->m_bObjAll2A = (state == 2 ? true : false); DetectState::instance()->m_bObjAll2A = (state == 2 ? true : false);
} }

@ -601,6 +601,7 @@ QVariant lpMainWin::IGetVariantById(int id)
vMap.insert("useDiameter", DetectState::instance()->bUseDiameter); vMap.insert("useDiameter", DetectState::instance()->bUseDiameter);
vMap.insert("Threshold", DetectState::instance()->m_AlgThres); vMap.insert("Threshold", DetectState::instance()->m_AlgThres);
vMap.insert("IsCutImg", DetectState::instance()->m_UseCutImg); vMap.insert("IsCutImg", DetectState::instance()->m_UseCutImg);
vMap.insert("useBackground", DetectState::instance()->m_UseBackground>0?true:false);//使用背景图
void* address = (void*)m_pCtrl->getAllModelMapPtr(); void* address = (void*)m_pCtrl->getAllModelMapPtr();
long long varadr = (long long)address; long long varadr = (long long)address;

Loading…
Cancel
Save