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;