fix:beltRearing 修复算法检测索引问题

This commit is contained in:
YangSn 2026-10-26 15:54:45 +08:00
parent 457b98ac89
commit 200292c01a
20 changed files with 41 additions and 33 deletions

View File

@ -1,14 +1,14 @@
#ifndef VERSION_H
#define VERSION_H
#define BELT_TEARING_APP_VERSION_STRING "2.1.2"
#define BELT_TEARING_APP_VERSION_BUILD "2"
#define BELT_TEARING_APP_VERSION_STRING "2.1.3"
#define BELT_TEARING_APP_VERSION_BUILD "1"
#define BELT_TEARING_APP_PRODUCT_NAME "BeltTearingApp"
#define BELT_TEARING_APP_COMPANY_NAME "VisionRobot"
#define BELT_TEARING_APP_COPYRIGHT "Copyright (C) 2024-2026 VisionRobot. All rights reserved."
#define BELT_TEARING_APP_DESCRIPTION "Belt Tearing Detection Application"
// 构建信息
// 构建信3
#define BELT_TEARING_APP_BUILD_DATE __DATE__
#define BELT_TEARING_APP_BUILD_TIME __TIME__

View File

@ -1600,6 +1600,7 @@ int BeltTearingPresenter::RestartDetectStream()
m_pointCloudSendLineCounter.store(0);
m_bInitAlgo = false;
m_detectIndex = 0;
m_hLineWorkers.clear();
m_beltTearings_new.clear();
m_beltTearings_growing.clear();
@ -1852,17 +1853,19 @@ int BeltTearingPresenter::_DetectTask()
m_algorithmParam
);
m_bInitAlgo = true;
LOG_DEBUG("Algorithm initialized errorCode: %d\n", errorCode);
}
// 对缓存中的每一帧数据进行检测
for (auto& algorithmData : algorithmDataCache) {
// 直接调用皮带撕裂检测算法
sg_detectBeltTearing(&algorithmData, static_cast<int>(algorithmData.nTimeStamp),
sg_detectBeltTearing(&algorithmData, static_cast<int>(m_detectIndex),
algorithmData.nPositionCnt, &errorCode,
m_hLineWorkers,
m_beltTearings_new, m_beltTearings_growing, m_beltTearings_ended, m_beltTearings_unknown,
m_algorithmParam
);
m_detectIndex++;
// 合并各个撕裂结果容器
#if 1

View File

@ -108,6 +108,7 @@ private:
std::vector<SSG_beltTearingInfo> m_beltTearings_growing;
std::vector<SSG_beltTearingInfo> m_beltTearings_ended;
std::vector<SSG_beltTearingInfo> m_beltTearings_unknown;
unsigned long long m_detectIndex{0};
// 激光线队列管理
std::deque<SVzLaserLineData> m_laserLineQueue; // 激光线数据队列

View File

@ -134,7 +134,7 @@ LIBS += -L$$PWD/../../../AppAlgo/beltTearing/Windows/x64/Release -lbeltTearingDe
else:win32:CONFIG(debug, debug|release): {
LIBS += -L$$PWD/../../../SDK/OpenCV320/Windows/vc14/Release -lopencv_world320
# Algorithm SDK library.
LIBS += -L$$PWD/../../../AppAlgo/beltTearing/Windows/x64/Release -lbeltTearingDetection
LIBS += -L$$PWD/../../../AppAlgo/beltTearing/Windows/x64/Debug -lbeltTearingDetection
}
else:unix:!macx: {
LIBS += -L$$PWD/../../../SDK/OpenCV320/Arm/aarch64 -lopencv_core -lopencv_imgproc -lopencv_highgui
@ -144,7 +144,7 @@ LIBS += -L$$PWD/../../../AppAlgo/beltTearing/Arm/aarch64 -lbeltTearingDetection
}
# 添加Windows系统库依赖?
# 添加Windows系统库依赖
win32 {
LIBS += -lshell32
LIBS += -lws2_32

View File

@ -1,8 +1,8 @@
#ifndef VERSION_H
#define VERSION_H
#define BELTTEARING_VERSION_STRING "2.1.2"
#define BELTTEARING_VERSION_BUILD "2"
#define BELTTEARING_VERSION_STRING "2.1.3"
#define BELTTEARING_VERSION_BUILD "1"
#define BELTTEARING_PRODUCT_NAME "BeltTearingServer"
#define BELTTEARING_COMPANY_NAME "VisionRobot"
#define BELTTEARING_COPYRIGHT "Copyright (C) 2024-2026 VisionRobot. All rights reserved."

View File

@ -1,3 +1,7 @@
# 2.1.3
## build_1 2026-10-26
1. 修复算法检测索引问题
# 2.1.2
## build_1 2026-10-22
1. 更新算法:增加了焊缝最小,最大宽度; 最大深度参数

View File

@ -90,7 +90,7 @@ int main(int argc, char *argv[])
std::this_thread::sleep_for(std::chrono::seconds(5));
// while (true)
{
presenter.sendTestData("D:\\Project\\wood\\GrabBag\\TestData\\beltTearing\\LaserData\\2026-10-23-10-45-34_LaserData_Ik012067.txt");
presenter.sendTestData("D:\\Project\\wood\\GrabBag\\TestData\\beltTearing\\2\\LaserLine2_grid.txt");
// presenter.sendSimulationData(); // 启用发送模拟撕裂数据
std::this_thread::sleep_for(std::chrono::seconds(1)); // 等待1秒
}

View File

@ -83,7 +83,7 @@ SG_APISHARED_EXPORT const char* sg_beltTearingVersion(void);
SG_APISHARED_EXPORT void sg_detectBeltTearing(
SVzNL3DLaserLine* laser3DPoints, //一条扫描线
int lineIdx,
unsigned long long lineIdx,
int nPointCount, //每条扫描线的点数量。当采用Grid数据格式时,每条扫描线的点的数量是相同的。必须使用Grid格式
int* errCode,
std::vector<SSG_hLineProInfo>& hLineWorkers,