1、添加修改光栅总数的功能。2、修改直径显示错误的问题

master
qushuailong 4 years ago
parent 70dba12e32
commit 7e768b6705

@ -7,13 +7,14 @@
"Raster": { "Raster": {
"basehight": 0, "basehight": 0,
"basehight_bool": false, "basehight_bool": false,
"beilv": 1, "beilv": 6,
"beilv_bool": true, "beilv_bool": true,
"lowNum": 0, "lowNum": 0,
"lowNum_bool": false, "lowNum_bool": false,
"maxsize": 10, "maxsize": 10,
"maxsize_bool": false, "maxsize_bool": false,
"mid_value": 0.8, "mid_value": 0.8,
"mid_value_bool": false "mid_value_bool": false,
"totalNum": 71
} }
} }

@ -28,6 +28,7 @@ void CRaster::saveDefaultParam()
{ {
QJsonObject jsRaster = QJsonObject(); QJsonObject jsRaster = QJsonObject();
QJsonObject Rasterobj_dev; QJsonObject Rasterobj_dev;
Rasterobj_dev.insert("totalNum", QJsonValue(m_pRasSt->m_totalNum));//光栅总数
Rasterobj_dev.insert("beilv", QJsonValue(m_pRasSt->m_beilv)); Rasterobj_dev.insert("beilv", QJsonValue(m_pRasSt->m_beilv));
Rasterobj_dev.insert("basehight", QJsonValue(m_pRasSt->m_baseHight)); Rasterobj_dev.insert("basehight", QJsonValue(m_pRasSt->m_baseHight));
Rasterobj_dev.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值 Rasterobj_dev.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值
@ -74,6 +75,7 @@ bool CRaster::readRasterJson()
QJsonObject jsRaster = readDoc.object(); QJsonObject jsRaster = readDoc.object();
QJsonObject Rsaterobj = jsRaster.value("Raster").toObject(); QJsonObject Rsaterobj = jsRaster.value("Raster").toObject();
if (!Rsaterobj.isEmpty()) { 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_beilv = Rsaterobj.value("beilv").toDouble(5.07);
m_pRasSt->m_baseHight = Rsaterobj.value("basehight").toDouble(87); m_pRasSt->m_baseHight = Rsaterobj.value("basehight").toDouble(87);
m_pRasSt->mid_value = Rsaterobj.value("mid_value").toDouble(0.8);//中值 m_pRasSt->mid_value = Rsaterobj.value("mid_value").toDouble(0.8);//中值
@ -119,6 +121,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType)
{ {
case EMTYPE_RASTER:{ case EMTYPE_RASTER:{
QJsonObject Rasterobj; QJsonObject Rasterobj;
Rasterobj.insert("totalNum", QJsonValue(m_pRasSt->m_totalNum));//光栅总数
Rasterobj.insert("beilv", QJsonValue(m_pRasSt->m_beilv)); Rasterobj.insert("beilv", QJsonValue(m_pRasSt->m_beilv));
Rasterobj.insert("basehight", QJsonValue(m_pRasSt->m_baseHight)); Rasterobj.insert("basehight", QJsonValue(m_pRasSt->m_baseHight));
Rasterobj.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值 Rasterobj.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值
@ -180,7 +183,7 @@ double CRaster::getThicknessValue() const
void CRaster::addThicknessValue(double dValue) 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); m_pThickness->addValue(dThickness + m_pRasSt->m_baseHight);
} }

@ -8,6 +8,7 @@ struct RasterST//光栅数据结构体
double mid_value;//中值大小 double mid_value;//中值大小
int m_maxsize;//容器大小 int m_maxsize;//容器大小
int m_lowNum;//最小值 int m_lowNum;//最小值
int m_totalNum; //光栅总数
bool m_bool_beilv; bool m_bool_beilv;
bool m_bool_baseHight; bool m_bool_baseHight;
bool m_bool_maxsize; bool m_bool_maxsize;

@ -38,7 +38,7 @@
<string notr="true">font: 11pt &quot;Consolas&quot;;</string> <string notr="true">font: 11pt &quot;Consolas&quot;;</string>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>1</number>
</property> </property>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tab">
<attribute name="title"> <attribute name="title">
@ -56,7 +56,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>663</width> <width>663</width>
<height>896</height> <height>884</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
@ -316,7 +316,7 @@
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLineEdit" name="Raster_ShowlineEdit_5"> <widget class="QLineEdit" name="totalNum">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -458,7 +458,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>-140</y>
<width>663</width> <width>663</width>
<height>597</height> <height>597</height>
</rect> </rect>
@ -693,31 +693,6 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QPushButton" name="Raster_SaveRasterDire">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>保存设置</string>
</property>
</widget>
</item>
<item row="0" column="3" rowspan="4">
<widget class="QTextBrowser" name="textBrowser">
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;直径标定曲率:是用于校准算法计算出的轮毂直径与实际轮毂直径用的&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;曲率=轮毂高度*k+B 计算曲率的前提是轮毂的高度数据必须准确(误差小)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="label_19"> <widget class="QLabel" name="label_19">
<property name="text"> <property name="text">
@ -744,10 +719,15 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1" colspan="2"> <item row="0" column="3" rowspan="4">
<widget class="QLabel" name="label_20"> <widget class="QTextBrowser" name="textBrowser">
<property name="text"> <property name="html">
<string>K:表示斜率B基准点直径=高度*K+B</string> <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;直径标定曲率:是用于校准算法计算出的轮毂直径与实际轮毂直径用的&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;曲率=轮毂高度*k+B 计算曲率的前提是轮毂的高度数据必须准确(误差小)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -773,6 +753,26 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QPushButton" name="Raster_SaveRasterDire">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>保存设置</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QLabel" name="label_20">
<property name="text">
<string>K:表示斜率B基准点曲率=高度*K+B</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

@ -126,11 +126,11 @@ void muban::Appanalysis(Raster_ComFrame m_ComFrame){
{ {
emit(sgThress((m_RecvData.data4 * 255 + m_RecvData.data3)));//发送光栅数据 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) if (bInsertData)
{ {
emit(sgShowMsgLabel(m_RecvData.data4 * 255 + m_RecvData.data3, 1)); 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)); emit(sgShowMsgLabel(m_RecvData.data2 * 255 + m_RecvData.data1, 3));
} }
@ -232,6 +232,7 @@ void muban::initUI()
pGridLayout->addWidget(m_switsybp); pGridLayout->addWidget(m_switsybp);
pGridLayout->addSpacing(1); pGridLayout->addSpacing(1);
} }
Raster_TotalNum = ui.totalNum;
doubleSpinBox_beilv = ui.doubleSpinBox_beilv; doubleSpinBox_beilv = ui.doubleSpinBox_beilv;
doubleSpinBox_baseheight = ui.doubleSpinBox_baseheight; doubleSpinBox_baseheight = ui.doubleSpinBox_baseheight;
doubleSpinBox_min = ui.doubleSpinBox_min; doubleSpinBox_min = ui.doubleSpinBox_min;
@ -259,7 +260,6 @@ void muban::initUI()
Raster_CloseDevice = ui.Raster_CloseDevice; Raster_CloseDevice = ui.Raster_CloseDevice;
connect(Raster_CloseDevice, SIGNAL(clicked()), this, SLOT(onCtrolDevice())); connect(Raster_CloseDevice, SIGNAL(clicked()), this, SLOT(onCtrolDevice()));
connect(ui.Raster_SaveCombp, SIGNAL(clicked()), this, SLOT(onSaveData())); connect(ui.Raster_SaveCombp, SIGNAL(clicked()), this, SLOT(onSaveData()));
Raster_checkBox = ui.Raster_checkBox; Raster_checkBox = ui.Raster_checkBox;
@ -441,6 +441,8 @@ void muban::SetData2UI(RasterST *m_rastdata)
if (m_rastdata == NULL) if (m_rastdata == NULL)
return; return;
m_pRaster = m_rastdata; 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_beilv->setValue(m_rastdata->m_beilv);
doubleSpinBox_min->setValue(m_rastdata->m_lowNum); doubleSpinBox_min->setValue(m_rastdata->m_lowNum);
doubleSpinBox_baseheight->setValue(m_rastdata->m_baseHight); doubleSpinBox_baseheight->setValue(m_rastdata->m_baseHight);
@ -635,7 +637,7 @@ Q_SLOT void muban::onAddData2Graph(int nData)
{ {
if (m_graph1&&bInsertData&&m_pRaster) 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; double dValue = dThickness + m_pRaster->m_baseHight;
m_graph1->appendPoint(dValue); m_graph1->appendPoint(dValue);
} }

@ -68,6 +68,7 @@ public slots:
public: public:
Q_SLOT void onRecvThread(const QStringList &s); Q_SLOT void onRecvThread(const QStringList &s);
private: private:
class QLineEdit *Raster_TotalNum;
class QLineEdit *Raster_ShowlineEdit; class QLineEdit *Raster_ShowlineEdit;
class QLineEdit *Raster_ShowlineEdit_2; class QLineEdit *Raster_ShowlineEdit_2;
class QLineEdit *Raster_ShowlineEdit_3; class QLineEdit *Raster_ShowlineEdit_3;
@ -104,6 +105,7 @@ private:
protected: protected:
bool bInsertData; bool bInsertData;
class QSimpleTickerGraph *m_graph1; class QSimpleTickerGraph *m_graph1;
int m_totalNum{ 63 };
protected: protected:
virtual void closeEvent(QCloseEvent *event); virtual void closeEvent(QCloseEvent *event);
virtual void showEvent(QShowEvent *event); virtual void showEvent(QShowEvent *event);

@ -128,7 +128,7 @@ int CAlgorithmFluorescence::IImageAnalysis(class IImageObject* pImgObj, TP_ALGOR
lCircle.ptCenter = centerPoint; lCircle.ptCenter = centerPoint;
lCircle.fRadius = radius; 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)); cv::resize(matMatch, matMatch, cv::Size(matMatch.cols / 2, matMatch.rows / 2));
lCircle.fRadius = lCircle.fRadius / 2; lCircle.fRadius = lCircle.fRadius / 2;

@ -917,7 +917,7 @@ bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel)
if (dst.empty()) { if (dst.empty()) {
return false; return false;
} }
if (dst.rows >= 900 || dst.cols >= 900) if (dst.rows >= 1800 || dst.cols >= 1800)
return false; return false;
//显示 //显示
QString strFileName = strModel + "_" + hubBase::genDateTime("MMddhhmmzzz"); QString strFileName = strModel + "_" + hubBase::genDateTime("MMddhhmmzzz");

@ -27,8 +27,8 @@
#define VERSION_ALG "3.0.1.6" #define VERSION_ALG "3.0.1.6"
#define UPDATE_TIME "2022-06-20" #define UPDATE_TIME "2022-06-20"
#define WHEELHIGHTTHRESH 260.0 //轮毂高度阈值,当轮毂高度大于这个值时,启用相机升高的直径算法 #define WHEELHIGHTTHRESH 250.0 //轮毂高度阈值10英寸,当轮毂高度大于这个值时,启用相机升高的直径算法
#define CAMERAUPHEIGHT 254.0 //相机上升高度默认10英寸 #define CAMERAUPHEIGHT 112.0 //相机上升高度默认11.2cm
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
lpMainWin::lpMainWin(QWidget *parent) lpMainWin::lpMainWin(QWidget *parent)
@ -740,19 +740,24 @@ QVariant lpMainWin::IGetVariantById(int id)
emit(sgShowMsg(str, true)); emit(sgShowMsg(str, true));
} }
QVariantMap vMap; QVariantMap vMap;
int nThickness = 0; double nThickness = 0;
double showThickness = 0;
if (DetectState::instance()->m_IsUseRaster == 0) if (DetectState::instance()->m_IsUseRaster == 0)
{
nThickness = m_nWfThress; nThickness = m_nWfThress;
showThickness = nThickness;
}
else else
{ {
nThickness = m_pCtrl->getThickness(); nThickness = m_pCtrl->getThickness();
showThickness = nThickness;
if (nThickness > WHEELHIGHTTHRESH) if (nThickness > WHEELHIGHTTHRESH)
{ {
nThickness -= CAMERAUPHEIGHT; nThickness -= CAMERAUPHEIGHT;
} }
} }
vMap.insert("thickness", QVariant(nThickness)); vMap.insert("thickness", QVariant(showThickness));
double dDiameter;// = (-794.25 * nThickness / 1000000.0 + 0.775960); double dDiameter;// = (-794.25 * nThickness / 1000000.0 + 0.775960);
dDiameter = (DetectState::instance()->m_k * nThickness + DetectState::instance()->m_b); dDiameter = (DetectState::instance()->m_k * nThickness + DetectState::instance()->m_b);
vMap.insert("d2h", dDiameter); vMap.insert("d2h", dDiameter);
@ -781,7 +786,7 @@ QVariant lpMainWin::IGetVariantById(int id)
qDebug() << "end get one pic" << id; qDebug() << "end get one pic" << id;
if (DetectState::instance()->m_showThressValue == 1) { 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)); emit(sgShowMsg(str, true));
} }
return vMap; return vMap;

Loading…
Cancel
Save