更新轮眉高度算法

This commit is contained in:
yiyi 2026-04-09 22:08:44 +08:00
parent 9fbd6b9d1a
commit d920963a65
15 changed files with 46 additions and 10 deletions

View File

@ -643,7 +643,7 @@ void WheelMeasurePresenter::processScanData(std::vector<std::pair<EVzResultDataT
LOG_INFO(" adjustedPlaneHeight (with compensation): %.3f\n", adjustedPlaneHeight); LOG_INFO(" adjustedPlaneHeight (with compensation): %.3f\n", adjustedPlaneHeight);
for(size_t i = 0; i < scanLines.size(); i++){ for(size_t i = 0; i < scanLines.size(); i++){
wd_horizonCamera_lineDataR(scanLines[i], calibParam->planeCalib, adjustedPlaneHeight); wd_horizonCamera_lineDataR(scanLines[i], calibParam->planeCalib, -1);
} }
} }
} else { } else {

View File

@ -3,7 +3,7 @@
#define WHEELMEASURE_APP_NAME "轮眉高度测量" #define WHEELMEASURE_APP_NAME "轮眉高度测量"
#define WHEELMEASURE_VERSION_STRING "1.0.2" #define WHEELMEASURE_VERSION_STRING "1.1.1"
#define WHEELMEASURE_BUILD_STRING "1" #define WHEELMEASURE_BUILD_STRING "1"
#define WHEELMEASURE_FULL_VERSION_STRING "V" WHEELMEASURE_VERSION_STRING "_" WHEELMEASURE_BUILD_STRING #define WHEELMEASURE_FULL_VERSION_STRING "V" WHEELMEASURE_VERSION_STRING "_" WHEELMEASURE_BUILD_STRING

View File

@ -1,3 +1,11 @@
# 1.1.1
## build_1 2026-04-09
1. 更新算法1.3.3
# 1.1.0
## build_1 2026-04-09
1. wd_horizonCamera_lineDataR 参数固定-1 ,移除补偿
# 1.0.2 # 1.0.2
## build_1 2026-04-01 ## build_1 2026-04-01
1. 更新算法 1.3.2 1. 更新算法 1.3.2

View File

@ -182,6 +182,12 @@ background-color: rgb(47, 48, 52);</string>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_error_compensation"> <widget class="QLabel" name="label_error_compensation">
<property name="enabled">
<bool>true</bool>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>100</width> <width>100</width>
@ -203,6 +209,12 @@ background-color: rgb(47, 48, 52);</string>
</item> </item>
<item> <item>
<widget class="QLineEdit" name="edit_error_compensation"> <widget class="QLineEdit" name="edit_error_compensation">
<property name="enabled">
<bool>true</bool>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>100</width> <width>100</width>
@ -234,6 +246,12 @@ background-color: rgb(47, 48, 52);</string>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_unit"> <widget class="QLabel" name="label_unit">
<property name="enabled">
<bool>true</bool>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="font"> <property name="font">
<font> <font>
<pointsize>14</pointsize> <pointsize>14</pointsize>
@ -249,6 +267,12 @@ background-color: rgb(47, 48, 52);</string>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btn_save_compensation"> <widget class="QPushButton" name="btn_save_compensation">
<property name="enabled">
<bool>true</bool>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>60</width> <width>60</width>

View File

@ -109,8 +109,8 @@ struct WheelOutlierFilterParam
*/ */
struct WheelTreeGrowParam struct WheelTreeGrowParam
{ {
double yDeviation_max = 10.0; // 生长时允许的最大Y偏差 double yDeviation_max = 20.0; // 生长时允许的最大Y偏差
double zDeviation_max = 10.0; // 生长时允许的最大Z偏差 double zDeviation_max = 20.0; // 生长时允许的最大Z偏差
int maxLineSkipNum = 10; // 生长时允许的最大跳线数 int maxLineSkipNum = 10; // 生长时允许的最大跳线数
double maxSkipDistance = 10.0; // 当maxLineSkipNum为-1时使用 double maxSkipDistance = 10.0; // 当maxLineSkipNum为-1时使用
double minLTypeTreeLen = 100.0; // 最少的L型节点数目 double minLTypeTreeLen = 100.0; // 最少的L型节点数目

View File

@ -2639,7 +2639,7 @@ void _outputScanDataFile_removeZeros(char* fileName, SVzNL3DLaserLine * scanData
#define TEST_COMPUTE_WHEEL_ARCH 1 #define TEST_COMPUTE_WHEEL_ARCH 1
#define TEST_COMPUTE_CALIB_PARA 0 #define TEST_COMPUTE_CALIB_PARA 0
#define TEST_GROUP 2 #define TEST_GROUP 6
int main() int main()
{ {
#if TEST_CONVERT_TO_GRID #if TEST_CONVERT_TO_GRID
@ -2718,10 +2718,14 @@ int main()
const char* dataPath[TEST_GROUP] = { const char* dataPath[TEST_GROUP] = {
"F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/现场数据/", //0 "F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/现场数据/", //0
"F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/部署现场数据/", //1 "F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/部署现场数据/", //1
"F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/部署现场数据2/11/", //2
"F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/部署现场数据2/13/", //3
"F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/部署现场数据2/15/", //4
"F:/ShangGu/项目/冠钦_轮眉高度测量/测试数据/部署现场数据2/17/", //5
}; };
SVzNLRange fileIdx[TEST_GROUP] = { SVzNLRange fileIdx[TEST_GROUP] = {
{1,2}, {1,4} {1,2}, {1,4}, {1,7}, {1,7}, {1,7},{1,7}
}; };
SSG_planeCalibPara poseCalibPara; SSG_planeCalibPara poseCalibPara;
@ -2745,14 +2749,14 @@ int main()
char _scan_file[256]; char _scan_file[256];
int endGroup = TEST_GROUP - 1; int endGroup = TEST_GROUP - 1;
for (int grp = 1; grp <= endGroup; grp++) for (int grp = 2; grp <= endGroup; grp++)
{ {
char calibFile[250]; char calibFile[250];
sprintf_s(calibFile, "%sground_calib_para.txt", dataPath[grp]); sprintf_s(calibFile, "%sground_calib_para.txt", dataPath[grp]);
poseCalibPara = _readCalibPara(calibFile); poseCalibPara = _readCalibPara(calibFile);
for (int fidx = fileIdx[grp].nMin; fidx <= fileIdx[grp].nMax; fidx++) for (int fidx = fileIdx[grp].nMin; fidx <= fileIdx[grp].nMax; fidx++)
{ {
//fidx = 4; //fidx = 6;
sprintf_s(_scan_file, "%sLaserData_%d.txt", dataPath[grp], fidx); sprintf_s(_scan_file, "%sLaserData_%d.txt", dataPath[grp], fidx);
std::vector<std::vector< SVzNL3DPosition>> scanData; std::vector<std::vector< SVzNL3DPosition>> scanData;
vzReadLaserScanPointFromFile_XYZ_vector(_scan_file, scanData); vzReadLaserScanPointFromFile_XYZ_vector(_scan_file, scanData);
@ -2784,9 +2788,9 @@ int main()
SSG_treeGrowParam growParam; SSG_treeGrowParam growParam;
growParam.maxLineSkipNum = 10; growParam.maxLineSkipNum = 10;
growParam.yDeviation_max = 10.0; growParam.yDeviation_max = 20.0;
growParam.maxSkipDistance = 10.0; growParam.maxSkipDistance = 10.0;
growParam.zDeviation_max = 10.0;// growParam.zDeviation_max = 20.0;//
growParam.minLTypeTreeLen = 100; //mm growParam.minLTypeTreeLen = 100; //mm
growParam.minVTypeTreeLen = 100; //mm growParam.minVTypeTreeLen = 100; //mm