From 7e768b67057c969522edce40d514381550d12d43 Mon Sep 17 00:00:00 2001 From: qushuailong Date: Mon, 27 Jun 2022 10:26:42 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=85=89=E6=A0=85=E6=80=BB=E6=95=B0=E7=9A=84=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=822=E3=80=81=E4=BF=AE=E6=94=B9=E7=9B=B4=E5=BE=84?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runner17/raster.json | 5 +- src/RasterSDG20/Raster.cpp | 5 +- src/RasterSDG20/Raster.h | 1 + src/RasterSDG20/Rester.ui | 66 ++++++++++++------------- src/RasterSDG20/muban.cpp | 10 ++-- src/RasterSDG20/muban.h | 2 + src/algorithm/AlgorithmFluorescence.cpp | 2 +- tpvs17/tpMain/QModelMgrDlg.cpp | 2 +- tpvs17/tpMain/lpMainWin.cpp | 15 ++++-- 9 files changed, 61 insertions(+), 47 deletions(-) diff --git a/runner17/raster.json b/runner17/raster.json index f227846..9b05969 100644 --- a/runner17/raster.json +++ b/runner17/raster.json @@ -7,13 +7,14 @@ "Raster": { "basehight": 0, "basehight_bool": false, - "beilv": 1, + "beilv": 6, "beilv_bool": true, "lowNum": 0, "lowNum_bool": false, "maxsize": 10, "maxsize_bool": false, "mid_value": 0.8, - "mid_value_bool": false + "mid_value_bool": false, + "totalNum": 71 } } diff --git a/src/RasterSDG20/Raster.cpp b/src/RasterSDG20/Raster.cpp index a5e1b85..d6df0d5 100644 --- a/src/RasterSDG20/Raster.cpp +++ b/src/RasterSDG20/Raster.cpp @@ -28,6 +28,7 @@ void CRaster::saveDefaultParam() { QJsonObject jsRaster = QJsonObject(); QJsonObject Rasterobj_dev; + Rasterobj_dev.insert("totalNum", QJsonValue(m_pRasSt->m_totalNum));//光栅总数 Rasterobj_dev.insert("beilv", QJsonValue(m_pRasSt->m_beilv)); Rasterobj_dev.insert("basehight", QJsonValue(m_pRasSt->m_baseHight)); Rasterobj_dev.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值 @@ -74,6 +75,7 @@ bool CRaster::readRasterJson() QJsonObject jsRaster = readDoc.object(); QJsonObject Rsaterobj = jsRaster.value("Raster").toObject(); if (!Rsaterobj.isEmpty()) { + m_pRasSt->m_totalNum = Rsaterobj.value("totalNum").toInt(71);//光栅总数 m_pRasSt->m_beilv = Rsaterobj.value("beilv").toDouble(5.07); m_pRasSt->m_baseHight = Rsaterobj.value("basehight").toDouble(87); m_pRasSt->mid_value = Rsaterobj.value("mid_value").toDouble(0.8);//中值 @@ -119,6 +121,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType) { case EMTYPE_RASTER:{ QJsonObject Rasterobj; + Rasterobj.insert("totalNum", QJsonValue(m_pRasSt->m_totalNum));//光栅总数 Rasterobj.insert("beilv", QJsonValue(m_pRasSt->m_beilv)); Rasterobj.insert("basehight", QJsonValue(m_pRasSt->m_baseHight)); Rasterobj.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值 @@ -180,7 +183,7 @@ double CRaster::getThicknessValue() const void CRaster::addThicknessValue(double dValue) { - double dThickness = (63 - dValue) * m_pRasSt->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度 + double dThickness = (m_pRasSt->m_totalNum - dValue) * m_pRasSt->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度 m_pThickness->addValue(dThickness + m_pRasSt->m_baseHight); } diff --git a/src/RasterSDG20/Raster.h b/src/RasterSDG20/Raster.h index 236d27f..194c125 100644 --- a/src/RasterSDG20/Raster.h +++ b/src/RasterSDG20/Raster.h @@ -8,6 +8,7 @@ struct RasterST//光栅数据结构体 double mid_value;//中值大小 int m_maxsize;//容器大小 int m_lowNum;//最小值 + int m_totalNum; //光栅总数 bool m_bool_beilv; bool m_bool_baseHight; bool m_bool_maxsize; diff --git a/src/RasterSDG20/Rester.ui b/src/RasterSDG20/Rester.ui index e0f1af7..1abc3f4 100644 --- a/src/RasterSDG20/Rester.ui +++ b/src/RasterSDG20/Rester.ui @@ -38,7 +38,7 @@ font: 11pt "Consolas"; - 0 + 1 @@ -56,7 +56,7 @@ 0 0 663 - 896 + 884 @@ -316,7 +316,7 @@ - + 0 @@ -458,7 +458,7 @@ 0 - 0 + -140 663 597 @@ -693,31 +693,6 @@ p, li { white-space: pre-wrap; } - - - - - 0 - 0 - - - - 保存设置 - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">直径标定曲率:是用于校准算法计算出的轮毂直径与实际轮毂直径用的</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">曲率=轮毂高度*k+B 计算曲率的前提是轮毂的高度数据必须准确(误差小)</p></body></html> - - - @@ -744,10 +719,15 @@ p, li { white-space: pre-wrap; } - - - - K:表示斜率,B:基准点,直径=高度*K+B + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">直径标定曲率:是用于校准算法计算出的轮毂直径与实际轮毂直径用的</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">曲率=轮毂高度*k+B 计算曲率的前提是轮毂的高度数据必须准确(误差小)</p></body></html> @@ -773,6 +753,26 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + 保存设置 + + + + + + + K:表示斜率,B:基准点,曲率=高度*K+B + + + diff --git a/src/RasterSDG20/muban.cpp b/src/RasterSDG20/muban.cpp index 007cdf6..3c2052f 100644 --- a/src/RasterSDG20/muban.cpp +++ b/src/RasterSDG20/muban.cpp @@ -126,11 +126,11 @@ void muban::Appanalysis(Raster_ComFrame m_ComFrame){ { emit(sgThress((m_RecvData.data4 * 255 + m_RecvData.data3)));//发送光栅数据 - emit(sgShowValue(63-(m_RecvData.data4 * 255 + m_RecvData.data3)));//显示光栅数据 + emit(sgShowValue(m_totalNum -(m_RecvData.data4 * 255 + m_RecvData.data3)));//显示光栅数据 if (bInsertData) { emit(sgShowMsgLabel(m_RecvData.data4 * 255 + m_RecvData.data3, 1)); - emit(sgShowMsgLabel(63 - (m_RecvData.data4 * 255 + m_RecvData.data3), 2)); + emit(sgShowMsgLabel(m_totalNum - (m_RecvData.data4 * 255 + m_RecvData.data3), 2)); emit(sgShowMsgLabel(m_RecvData.data2 * 255 + m_RecvData.data1, 3)); } @@ -232,6 +232,7 @@ void muban::initUI() pGridLayout->addWidget(m_switsybp); pGridLayout->addSpacing(1); } + Raster_TotalNum = ui.totalNum; doubleSpinBox_beilv = ui.doubleSpinBox_beilv; doubleSpinBox_baseheight = ui.doubleSpinBox_baseheight; doubleSpinBox_min = ui.doubleSpinBox_min; @@ -258,7 +259,6 @@ void muban::initUI() //关闭设备 Raster_CloseDevice = ui.Raster_CloseDevice; connect(Raster_CloseDevice, SIGNAL(clicked()), this, SLOT(onCtrolDevice())); - connect(ui.Raster_SaveCombp, SIGNAL(clicked()), this, SLOT(onSaveData())); @@ -441,6 +441,8 @@ void muban::SetData2UI(RasterST *m_rastdata) if (m_rastdata == NULL) return; m_pRaster = m_rastdata; + m_totalNum = m_rastdata->m_totalNum; + Raster_TotalNum->setText(QString::number(m_rastdata->m_totalNum)); doubleSpinBox_beilv->setValue(m_rastdata->m_beilv); doubleSpinBox_min->setValue(m_rastdata->m_lowNum); doubleSpinBox_baseheight->setValue(m_rastdata->m_baseHight); @@ -635,7 +637,7 @@ Q_SLOT void muban::onAddData2Graph(int nData) { if (m_graph1&&bInsertData&&m_pRaster) { - double dThickness = (63 - nData) * m_pRaster->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度 + double dThickness = (m_pRaster->m_totalNum - nData) * m_pRaster->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度 double dValue = dThickness + m_pRaster->m_baseHight; m_graph1->appendPoint(dValue); } diff --git a/src/RasterSDG20/muban.h b/src/RasterSDG20/muban.h index 071de60..74b69fb 100644 --- a/src/RasterSDG20/muban.h +++ b/src/RasterSDG20/muban.h @@ -68,6 +68,7 @@ public slots: public: Q_SLOT void onRecvThread(const QStringList &s); private: + class QLineEdit *Raster_TotalNum; class QLineEdit *Raster_ShowlineEdit; class QLineEdit *Raster_ShowlineEdit_2; class QLineEdit *Raster_ShowlineEdit_3; @@ -104,6 +105,7 @@ private: protected: bool bInsertData; class QSimpleTickerGraph *m_graph1; + int m_totalNum{ 63 }; protected: virtual void closeEvent(QCloseEvent *event); virtual void showEvent(QShowEvent *event); diff --git a/src/algorithm/AlgorithmFluorescence.cpp b/src/algorithm/AlgorithmFluorescence.cpp index 59b7602..407af7f 100644 --- a/src/algorithm/AlgorithmFluorescence.cpp +++ b/src/algorithm/AlgorithmFluorescence.cpp @@ -128,7 +128,7 @@ int CAlgorithmFluorescence::IImageAnalysis(class IImageObject* pImgObj, TP_ALGOR lCircle.ptCenter = centerPoint; lCircle.fRadius = radius; } - if (matMatch.cols >= 900 || matMatch.rows >= 900)//控制检测图像大小不能超过这个范围 + if (matMatch.cols >= 1800 || matMatch.rows >= 1800)//控制检测图像大小不能超过这个范围 { cv::resize(matMatch, matMatch, cv::Size(matMatch.cols / 2, matMatch.rows / 2)); lCircle.fRadius = lCircle.fRadius / 2; diff --git a/tpvs17/tpMain/QModelMgrDlg.cpp b/tpvs17/tpMain/QModelMgrDlg.cpp index 04e88cb..0c73259 100644 --- a/tpvs17/tpMain/QModelMgrDlg.cpp +++ b/tpvs17/tpMain/QModelMgrDlg.cpp @@ -917,7 +917,7 @@ bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel) if (dst.empty()) { return false; } - if (dst.rows >= 900 || dst.cols >= 900) + if (dst.rows >= 1800 || dst.cols >= 1800) return false; //显示 QString strFileName = strModel + "_" + hubBase::genDateTime("MMddhhmmzzz"); diff --git a/tpvs17/tpMain/lpMainWin.cpp b/tpvs17/tpMain/lpMainWin.cpp index 3003238..118d5e2 100644 --- a/tpvs17/tpMain/lpMainWin.cpp +++ b/tpvs17/tpMain/lpMainWin.cpp @@ -27,8 +27,8 @@ #define VERSION_ALG "3.0.1.6" #define UPDATE_TIME "2022-06-20" -#define WHEELHIGHTTHRESH 260.0 //轮毂高度阈值,当轮毂高度大于这个值时,启用相机升高的直径算法 -#define CAMERAUPHEIGHT 254.0 //相机上升高度,默认10英寸 +#define WHEELHIGHTTHRESH 250.0 //轮毂高度阈值(10英寸),当轮毂高度大于这个值时,启用相机升高的直径算法 +#define CAMERAUPHEIGHT 112.0 //相机上升高度,默认11.2cm #pragma execution_character_set("utf-8") lpMainWin::lpMainWin(QWidget *parent) @@ -740,19 +740,24 @@ QVariant lpMainWin::IGetVariantById(int id) emit(sgShowMsg(str, true)); } QVariantMap vMap; - int nThickness = 0; + double nThickness = 0; + double showThickness = 0; if (DetectState::instance()->m_IsUseRaster == 0) + { nThickness = m_nWfThress; + showThickness = nThickness; + } else { nThickness = m_pCtrl->getThickness(); + showThickness = nThickness; if (nThickness > WHEELHIGHTTHRESH) { nThickness -= CAMERAUPHEIGHT; } } - vMap.insert("thickness", QVariant(nThickness)); + vMap.insert("thickness", QVariant(showThickness)); double dDiameter;// = (-794.25 * nThickness / 1000000.0 + 0.775960); dDiameter = (DetectState::instance()->m_k * nThickness + DetectState::instance()->m_b); vMap.insert("d2h", dDiameter); @@ -781,7 +786,7 @@ QVariant lpMainWin::IGetVariantById(int id) qDebug() << "end get one pic" << id; if (DetectState::instance()->m_showThressValue == 1) { - QString str = QString("thickness value = %1,dDiameter value = %2").arg(nThickness).arg(dDiameter); + QString str = QString("thickness value = %1,dDiameter value = %2").arg(showThickness).arg(dDiameter); emit(sgShowMsg(str, true)); } return vMap;