diff --git a/bagPositioning/bagPositioning.vcxproj b/bagPositioning/bagPositioning.vcxproj
index a19196a..a874386 100644
--- a/bagPositioning/bagPositioning.vcxproj
+++ b/bagPositioning/bagPositioning.vcxproj
@@ -78,12 +78,12 @@
true
- ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
+ ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
$(SolutionDir)build\$(Platform)\$(Configuration)\
false
- ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
+ ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
$(SolutionDir)build\$(Platform)\$(Configuration)\
@@ -128,14 +128,15 @@
true
NotUsing
pch.h
- ..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)
+ ..\..\thirdParty\opencv320\build\include;%(AdditionalIncludeDirectories)
+ /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
Windows
true
false
- ..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)
- opencv_world480d.lib;baseAlgorithm.lib;%(AdditionalDependencies)
+ ..\..\thirdParty\opencv320\build\x64\vc14\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)
+ opencv_world320d.lib;baseAlgorithm.lib;%(AdditionalDependencies)
@@ -148,7 +149,8 @@
true
NotUsing
pch.h
- ..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)
+ ..\..\thirdParty\opencv320\build\include;%(AdditionalIncludeDirectories)
+ /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
Windows
@@ -156,8 +158,8 @@
true
true
false
- ..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)
- opencv_world480.lib;baseAlgorithm.lib;%(AdditionalDependencies)
+ ..\..\thirdParty\opencv320\build\x64\vc14\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)
+ opencv_world320.lib;baseAlgorithm.lib;%(AdditionalDependencies)
diff --git a/bagPositioning_test/bagPositioning_test.cpp b/bagPositioning_test/bagPositioning_test.cpp
index 85a2bae..855b8f7 100644
--- a/bagPositioning_test/bagPositioning_test.cpp
+++ b/bagPositioning_test/bagPositioning_test.cpp
@@ -715,6 +715,21 @@ SSG_planeCalibPara _readCalibPara(char* fileName)
return planePara;
}
+void _outputObjResult(char* fileName, std::vector& objOps)
+{
+ std::ofstream sw(fileName);
+ char dataStr[250];
+
+ int objSize = (int)objOps.size();
+ for (int i = 0; i < objSize; i++)
+ {
+ sw << "obj_" << i << std::endl;
+ sprintf_s(dataStr, 250, " %g, %g, %g, %g", objOps[i].centerPos.x, objOps[i].centerPos.y, objOps[i].centerPos.z, objOps[i].centerPos.z_yaw);
+ sw << dataStr << std::endl;
+ }
+ sw.close();
+}
+
void _outputScanDataFile_self(char* fileName, SVzNL3DLaserLine* scanData, int lineNum,
float lineV, int maxTimeStamp, int clockPerSecond)
{
@@ -2511,7 +2526,7 @@ void _outputScanDataFile_removeZeros(char* fileName, SVzNL3DLaserLine* scanData,
#define TEST_COMPUTE_GRASP_POINT 1
#define TEST_COMPUTE_CALIB_PARA 0
-#define TEST_GROUP 27
+#define TEST_GROUP 28
#define TEST_TOP_VIEW_GROUP (TEST_GROUP - 8)
#define TEST_TOP_ORIEN_GROUP (TEST_GROUP - 6)
int main()
@@ -2655,22 +2670,23 @@ int main()
"F:\\ShangGu\\纸箱拆垛数据\\380×480mm纸箱RGB点云及2D图像\\", //16
"F:\\ShangGu\\纸箱拆垛数据\\380×580mm纸箱RGB点云及2d图像\\", //17
"F:\\ShangGu\\纸箱拆垛数据\\480×580mm纸箱rgb点云及2d图像\\", //18
+ "F:\\ShangGu\\编织袋数据\\科一现场\\", //19
- "F:\\ShangGu\\编织袋数据\\编织袋RGBD识别方向\\", //19
- "F:\\ShangGu\\编织袋数据\\编织袋RGBD识别方向_2\\", //20
- "F:\\ShangGu\\编织袋数据\\侧抓数据\\", //21
- "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250419\\", //22
- "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-1\\", //23
- "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-2\\", //24
- "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-3\\", //25
- "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-4\\", //26
+ "F:\\ShangGu\\编织袋数据\\编织袋RGBD识别方向\\", //20
+ "F:\\ShangGu\\编织袋数据\\编织袋RGBD识别方向_2\\", //21
+ "F:\\ShangGu\\编织袋数据\\侧抓数据\\", //22
+ "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250419\\", //23
+ "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-1\\", //24
+ "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-2\\", //25
+ "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-3\\", //26
+ "F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-4\\", //27
};
SVzNLRange fileIdx[TEST_GROUP] = {
{0,176},{1,200},{1,166},{122,141},{1,65},
{1,29},{108,135},{0,200}, {1,200}, {1,12},
{2,4}, {1,5}, {1,1}, {1,3}, {11,11},
- {5,22},{1, 15},{1,15}, {1, 15},
+ {5,22},{1, 15},{1,15}, {1, 15},{1,2},
{1,21},{1,28},
{3,3}, {1,51}, {4,83}, {1,74}, {1,61}, {1,84}
};
@@ -2694,7 +2710,7 @@ int main()
SG_bagPositionParam algoParam;
int endGroup = TEST_GROUP - 1;
- for (int grp = 17; grp <= 18; grp++)
+ for (int grp = 19; grp <= 19; grp++)
{
if (grp < 10)
{
@@ -2792,7 +2808,19 @@ int main()
algoParam.growParam.minLTypeTreeLen = 50.0; //mm
algoParam.growParam.minVTypeTreeLen = 50.0; //mm
}
- else if ( (grp >= 19) && (grp <= 20))
+ else if (grp == 19) //纸箱拆垛数据\vizum数据
+ {
+ algoParam.bagParam.bagL = 420; //袋子长65cm
+ algoParam.bagParam.bagW = 320; //袋子宽40cm
+ algoParam.bagParam.bagH = 70; //袋子高16cm
+ algoParam.growParam.maxLineSkipNum = 5;
+ algoParam.growParam.yDeviation_max = 20.0;
+ algoParam.growParam.maxSkipDistance = 20.0;
+ algoParam.growParam.zDeviation_max = 80;// algoParam.bagParam.bagH / 2; //袋子高度1/2
+ algoParam.growParam.minLTypeTreeLen = 50.0; //mm
+ algoParam.growParam.minVTypeTreeLen = 50.0; //mm
+ }
+ else if ( (grp >= 20) && (grp <= 21))
{
algoParam.bagParam.bagL = 750; //袋子长65cm
algoParam.bagParam.bagW = 450; //袋子宽40cm
@@ -2915,13 +2943,26 @@ int main()
algoParam.cornerParam.jumpCornerTh_1 = 60;
algoParam.cornerParam.jumpCornerTh_2 = 15;
}
- else if ( grp == 19)
+ else if (grp == 19)
+ {
+ char calibFile[250];
+ sprintf_s(calibFile, "F:\\ShangGu\\编织袋数据\\科一现场\\ground_calib_para.txt");
+ poseCalibPara = _readCalibPara(calibFile);
+
+ algoParam.cornerParam.cornerTh = 45; //45度角
+ algoParam.cornerParam.scale = 50; // algoParam.bagParam.bagH / 8; // 15; // algoParam.bagParam.bagH / 8;
+ algoParam.cornerParam.minEndingGap = 20;// algoParam.bagParam.bagW / 4;
+ algoParam.cornerParam.minEndingGap_z = 40; // algoParam.bagParam.bagH / 4;
+ algoParam.cornerParam.jumpCornerTh_1 = 60;
+ algoParam.cornerParam.jumpCornerTh_2 = 15;
+ }
+ else if ( grp == 20)
{
char calibFile[250];
sprintf_s(calibFile, "F:\\ShangGu\\编织袋数据\\编织袋RGBD识别方向\\ground_calib_para.txt");
poseCalibPara = _readCalibPara(calibFile);
}
- else if (grp == 20)
+ else if (grp == 21)
{
char calibFile[250];
sprintf_s(calibFile, "F:\\ShangGu\\编织袋数据\\编织袋RGBD识别方向_2\\ground_calib_para.txt");
@@ -2997,7 +3038,8 @@ int main()
sprintf_s(_dbg_file, "%sresult\\LaserLine%d_result.txt", dataPath[grp], fidx);
_outputScanDataFile_RGBD_obj(_dbg_file, laser3DPoints, lineNum, lineV, maxTimeStamp, clockPerSecond, objOps);
-
+ sprintf_s(_dbg_file, "%sresult\\obj%d_result.txt", dataPath[grp], fidx);
+ _outputObjResult(_dbg_file, objOps);
sprintf_s(_dbg_file, "%sresult\\LaserLine%d_result_img.png", dataPath[grp], fidx);
cv::String imgName(_dbg_file);
double rpy[3] = { -30, 15, 0 }; //{ 0,-45, 0 }; //
diff --git a/bagPositioning_test/bagPositioning_test.vcxproj b/bagPositioning_test/bagPositioning_test.vcxproj
index ee0b3f3..a012fc7 100644
--- a/bagPositioning_test/bagPositioning_test.vcxproj
+++ b/bagPositioning_test/bagPositioning_test.vcxproj
@@ -120,13 +120,14 @@
true
_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
- ..\..\thirdParty\opencv\build\include;
+ ..\..\thirdParty\opencv320\build\include;
+ /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
Console
true
- ..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)
- opencv_world480d.lib;bagPositioning.lib;%(AdditionalDependencies)
+ ..\..\thirdParty\opencv320\build\x64\vc14\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)
+ opencv_world320d.lib;bagPositioning.lib;%(AdditionalDependencies)
@@ -137,15 +138,16 @@
true
NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
- ..\..\thirdParty\opencv\build\include;
+ ..\..\thirdParty\opencv320\build\include;
+ /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
Console
true
true
true
- ..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)
- opencv_world480.lib;bagPositioning.lib;%(AdditionalDependencies)
+ ..\..\thirdParty\opencv320\build\x64\vc14\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)
+ opencv_world320.lib;bagPositioning.lib;%(AdditionalDependencies)
diff --git a/baseAlgorithm/baseAlgorithm.vcxproj b/baseAlgorithm/baseAlgorithm.vcxproj
index e68acff..84eca3c 100644
--- a/baseAlgorithm/baseAlgorithm.vcxproj
+++ b/baseAlgorithm/baseAlgorithm.vcxproj
@@ -78,12 +78,12 @@
true
- ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
+ ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
$(SolutionDir)build\$(Platform)\$(Configuration)\
false
- ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
+ ..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv320\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)
$(SolutionDir)build\$(Platform)\$(Configuration)\
@@ -128,14 +128,15 @@
true
NotUsing
pch.h
- ..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)
+ ..\..\thirdParty\opencv320\build\include;%(AdditionalIncludeDirectories)
+ /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
Windows
true
false
- ..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)
- opencv_world480d.lib;%(AdditionalDependencies)
+ ..\..\thirdParty\opencv320\build\x64\vc14\lib;%(AdditionalLibraryDirectories)
+ opencv_world320d.lib;%(AdditionalDependencies)
@@ -148,7 +149,8 @@
true
NotUsing
pch.h
- ..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)
+ ..\..\thirdParty\opencv320\build\include;%(AdditionalIncludeDirectories)
+ /D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
Windows
@@ -156,8 +158,8 @@
true
true
false
- ..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)
- opencv_world480.lib;%(AdditionalDependencies)
+ ..\..\thirdParty\opencv320\build\x64\vc14\lib;%(AdditionalLibraryDirectories)
+ opencv_world320.lib;%(AdditionalDependencies)
diff --git a/sourceCode/SG_bagPositioning.cpp b/sourceCode/SG_bagPositioning.cpp
index e9c3703..2adcba2 100644
--- a/sourceCode/SG_bagPositioning.cpp
+++ b/sourceCode/SG_bagPositioning.cpp
@@ -591,17 +591,34 @@ SSG_peakRgnInfo _getRgnObjInfo(
double dist_v0v3 = sqrt(pow(vertices[0].x - vertices[3].x, 2) + pow(vertices[0].y - vertices[3].y, 2));
double width_diff = abs(dist_v0v3 - width);
double pose_yaw;
- if (width_diff < 10.0)
+ if (CV_VERSION == "3.2.0")
{
- pose_yaw = -rect.angle;
+ if (width_diff < 10.0)//width
+ {
+ pose_yaw = -rect.angle;
+ }
+ else //ȷ
+ {
+ pose_yaw = -rect.angle - 90;
+ if (pose_yaw < -90)
+ pose_yaw = 180 + pose_yaw;
+ }
}
- else
+ else //if (CV_VERSION == "4.8.0")
{
- pose_yaw = -rect.angle + 90;
- if (pose_yaw > 90)
- pose_yaw = 180 - pose_yaw;
+ if (width_diff < 10.0) //width
+ {
+ pose_yaw = -rect.angle;
+ }
+ else//ȷ
+ {
+ pose_yaw = -rect.angle + 90;
+ if (pose_yaw > 90)
+ pose_yaw = pose_yaw - 180;
+ }
}
+
//vertices[0]-vertices[3]ľ룬
//
diff --git a/sourceCode/SG_baseFunc.cpp b/sourceCode/SG_baseFunc.cpp
index 9a7aa81..bb1da62 100644
--- a/sourceCode/SG_baseFunc.cpp
+++ b/sourceCode/SG_baseFunc.cpp
@@ -3,6 +3,7 @@
#include
#include
#include
+#include
SVzNL3DRangeD sg_getScanDataROI(
SVzNL3DLaserLine* laser3DPoints,