1. 修改了第三方库目录,相应修改了工程文件
2. 筛网工程开发中相应文件更新
This commit is contained in:
parent
d68fd8f7da
commit
8d34a53ace
@ -79,12 +79,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -128,13 +128,13 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -148,7 +148,7 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -156,7 +156,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -541,18 +541,18 @@ void _outputScanDataFile_RGBD_obj_XYZ(char* fileName, SVzNL3DLaserLine* scanData
|
||||
}
|
||||
else if (LINE_FEATURE_L_SLOPE_H2L == vType)
|
||||
{
|
||||
rgb = { 160, 82, 45 };
|
||||
size = 3;
|
||||
rgb = { 0, 0, 255 };
|
||||
size = 20;
|
||||
}
|
||||
else if ((LINE_FEATURE_LINE_ENDING_0 == vType) || (LINE_FEATURE_LINE_ENDING_1 == vType))
|
||||
{
|
||||
rgb = { 255, 0, 0 };
|
||||
size = 3;
|
||||
}
|
||||
else if (LINE_FEATURE_L_SLOPE_L2H == vType)
|
||||
else if (LINE_FEATURE_L_SLOPE_L2H == vType) //已经焊接过
|
||||
{
|
||||
rgb = { 233, 150, 122 };
|
||||
size = 3;
|
||||
rgb = { 255, 255, 0 };
|
||||
size = 20;
|
||||
}
|
||||
else if (LINE_FEATURE_L_JUMP_H2L == hType)
|
||||
{
|
||||
@ -1037,8 +1037,8 @@ int main()
|
||||
|
||||
#if TEST_COMPUTE_SIEVE_NODES
|
||||
const char* dataPath[TEST_GROUP] = {
|
||||
"F:\\上古\\项目\\筛孔节点检测\\20250304 筛网\\", //0
|
||||
"F:\\上古\\项目\\筛孔节点检测\\20250303 筛网数据\\", //1
|
||||
"F:\\ShangGu\\项目\\筛孔节点检测\\20250304 筛网\\", //0
|
||||
"F:\\ShangGu\\项目\\筛孔节点检测\\20250303 筛网数据\\", //1
|
||||
};
|
||||
|
||||
SVzNLRange fileIdx[TEST_GROUP] = {
|
||||
@ -1069,11 +1069,11 @@ int main()
|
||||
algoParam.slopeParam.validSlopeH = 4;
|
||||
|
||||
algoParam.growParam.maxLineSkipNum = 5;
|
||||
algoParam.growParam.yDeviation_max = 20.0;
|
||||
algoParam.growParam.maxSkipDistance = 20.0;
|
||||
algoParam.growParam.zDeviation_max = 80.0; //袋子高度1/2
|
||||
algoParam.growParam.minLTypeTreeLen = 50.0; //mm
|
||||
algoParam.growParam.minVTypeTreeLen = 50.0; //mm
|
||||
algoParam.growParam.yDeviation_max = algoParam.sieveDiameter * 1.5;
|
||||
algoParam.growParam.maxSkipDistance = algoParam.sieveDiameter / 2;
|
||||
algoParam.growParam.zDeviation_max = algoParam.sieveDiameter * 1.5; //袋子高度1/2
|
||||
algoParam.growParam.minLTypeTreeLen = algoParam.sieveDiameter * 1.5; //mm
|
||||
algoParam.growParam.minVTypeTreeLen = algoParam.sieveDiameter * 1.5; //mm
|
||||
|
||||
char _scan_file[256];
|
||||
|
||||
|
||||
@ -79,12 +79,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -120,12 +120,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;SieveNodeDetection.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -137,14 +137,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;SieveNodeDetection.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -78,12 +78,12 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
@ -128,13 +128,13 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -148,7 +148,7 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -156,7 +156,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -1718,22 +1718,22 @@ int main()
|
||||
|
||||
#if TEST_COMPUTE_GRASP_POINT
|
||||
const char* dataPath[TEST_GROUP] = {
|
||||
"F:\\上古\\编织袋数据\\点云1\\", //0
|
||||
"F:\\上古\\编织袋数据\\点云2\\", //1
|
||||
"F:\\上古\\编织袋数据\\点云3\\", //2
|
||||
"F:\\上古\\编织袋数据\\点云4_广东\\", //3
|
||||
"F:\\上古\\编织袋数据\\点云5_广东\\", //4
|
||||
"F:\\上古\\编织袋数据\\点云6_河南平顶山\\", //5
|
||||
"F:\\上古\\编织袋数据\\点云7_广东1214\\", //6
|
||||
"F:\\上古\\编织袋数据\\点云8_广东1213-1215数据\\", //7
|
||||
"F:\\上古\\编织袋数据\\点云9_广东1219数据\\", //8
|
||||
"F:\\上古\\编织袋数据\\点云10\\", //9
|
||||
"F:\\上古\\编织袋数据\\侧抓数据\\", //10
|
||||
"F:\\上古\\编织袋数据\\侧抓数据_现场\\20250419\\", //11
|
||||
"F:\\上古\\编织袋数据\\侧抓数据_现场\\20250420-1\\", //12
|
||||
"F:\\上古\\编织袋数据\\侧抓数据_现场\\20250420-2\\", //13
|
||||
"F:\\上古\\编织袋数据\\侧抓数据_现场\\20250420-3\\", //14
|
||||
"F:\\上古\\编织袋数据\\侧抓数据_现场\\20250420-4\\", //15
|
||||
"F:\\ShangGu\\编织袋数据\\点云1\\", //0
|
||||
"F:\\ShangGu\\编织袋数据\\点云2\\", //1
|
||||
"F:\\ShangGu\\编织袋数据\\点云3\\", //2
|
||||
"F:\\ShangGu\\编织袋数据\\点云4_广东\\", //3
|
||||
"F:\\ShangGu\\编织袋数据\\点云5_广东\\", //4
|
||||
"F:\\ShangGu\\编织袋数据\\点云6_河南平顶山\\", //5
|
||||
"F:\\ShangGu\\编织袋数据\\点云7_广东1214\\", //6
|
||||
"F:\\ShangGu\\编织袋数据\\点云8_广东1213-1215数据\\", //7
|
||||
"F:\\ShangGu\\编织袋数据\\点云9_广东1219数据\\", //8
|
||||
"F:\\ShangGu\\编织袋数据\\点云10\\", //9
|
||||
"F:\\ShangGu\\编织袋数据\\侧抓数据\\", //10
|
||||
"F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250419\\", //11
|
||||
"F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-1\\", //12
|
||||
"F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-2\\", //13
|
||||
"F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-3\\", //14
|
||||
"F:\\ShangGu\\编织袋数据\\侧抓数据_现场\\20250420-4\\", //15
|
||||
};
|
||||
|
||||
SVzNLRange fileIdx[TEST_GROUP] = {
|
||||
|
||||
@ -78,12 +78,12 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
@ -120,12 +120,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;bagPositioning.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -137,14 +137,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;bagPositioning.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -78,12 +78,12 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
@ -128,13 +128,13 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -148,7 +148,7 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -156,7 +156,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -85,12 +85,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -134,13 +134,13 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -154,7 +154,7 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -162,7 +162,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -79,12 +79,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -120,12 +120,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;beltTearingDetection.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -137,14 +137,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;beltTearingDetection.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -85,12 +85,12 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
@ -135,14 +135,14 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>opencv_world480d.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@ -155,7 +155,7 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -164,7 +164,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>opencv_world480.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
||||
@ -80,12 +80,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -121,12 +121,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;boxCarMeasure.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -138,14 +138,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;boxCarMeasure.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -892,8 +892,8 @@ int main()
|
||||
0.0, 0.0, 1.0 };
|
||||
|
||||
SG_boxCarMeasureParam algoParam;
|
||||
algoParam.filterParam.zJumpTh = 20.0; //噪声滤除。当相邻点的z跳变大于此门限时,检查是否为噪声。若长度小于outlierLen, 视为噪声
|
||||
algoParam.filterParam.outlierLen = 5;
|
||||
//algoParam.filterParam.zJumpTh = 20.0; //噪声滤除。当相邻点的z跳变大于此门限时,检查是否为噪声。若长度小于outlierLen, 视为噪声
|
||||
//algoParam.filterParam.outlierLen = 5;
|
||||
|
||||
algoParam.templatePara_HF.H_len = 25.0; //mm
|
||||
algoParam.templatePara_HF.V_len = 100.0; //mm
|
||||
|
||||
@ -88,11 +88,11 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;..\..\..\..\codeHub\opencv\build\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;..\..\..\..\codeHub\opencv\build\include;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;..\..\..\..\codeHub\opencv\build\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;..\..\..\..\codeHub\opencv\build\include;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -128,12 +128,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>VZ_API_LIBRARY;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -145,14 +145,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>VZ_API_LIBRARY;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -78,11 +78,11 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -118,12 +118,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\上古\耐火砖\fireBrickPositioning\x64\Debug;..\..\..\..\codeHub\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\build\x64\Debug;..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fireBrickPositioning.lib;opencv_world480d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -135,14 +135,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\上古\耐火砖\fireBrickPositioning\x64\Release;..\..\..\..\codeHub\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\build\x64\Release;..\..\thirdParty\opencv\build\x64\vc16\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;fireBrickPositioning.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -79,12 +79,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\..\..\..\codeHub\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\..\thirdParty\opencv\build\include;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -128,13 +128,13 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -148,7 +148,7 @@
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -156,7 +156,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib;baseAlgorithm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -79,12 +79,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)build\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IncludePath>..\..\..\codeHub\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
<IncludePath>..\..\thirdParty\VzNLSDK\Inc;..\sourceCode;..\sourceCode\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -120,12 +120,12 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480d.lib; motorStatorPosition.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -137,14 +137,14 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\..\codeHub\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\thirdParty\opencv\build\include;</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\codeHub\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\thirdParty\opencv\build\x64\vc16\lib;..\build\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>opencv_world480.lib; motorStatorPosition.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@ -60,7 +60,8 @@ SG_APISHARED_EXPORT void sg_getLineUpperSemiCircleFeature(
|
||||
int lineIdx,
|
||||
const double sieveDiameter,
|
||||
const SSG_slopeParam slopePara,
|
||||
std::vector< SSG_featureSemiCircle>& line_features);
|
||||
std::vector< SSG_featureSemiCircle>& line_features,
|
||||
cv::Mat& holeMask);
|
||||
|
||||
/// <summary>
|
||||
/// 提取激光线上的极值点(极大值点和极小值点)
|
||||
@ -110,6 +111,16 @@ SG_APISHARED_EXPORT void sg_peakFeatureGrowing(
|
||||
std::vector<SSG_featureTree>& trees,
|
||||
SSG_treeGrowParam growParam);
|
||||
|
||||
//semiCircle特征生长
|
||||
SG_APISHARED_EXPORT void sg_getFeatureGrowingTrees_semiCircle(
|
||||
std::vector< SSG_featureSemiCircle>& lineFeatures,
|
||||
const int lineIdx,
|
||||
const int lineSize,
|
||||
std::vector<SSG_semiCircleFeatureTree>& trees,
|
||||
std::vector<SSG_semiCircleFeatureTree>& stopTrees,
|
||||
std::vector<SSG_semiCircleFeatureTree>& invalidTrees, //被移除的树,这些树可能将目标分成多个树,从而被移除。
|
||||
SSG_treeGrowParam growParam);
|
||||
|
||||
SSG_meanVar _computeMeanVar(double* data, int size);
|
||||
|
||||
///搜索局部最高点(z最小点)。
|
||||
|
||||
@ -97,6 +97,7 @@ typedef struct
|
||||
#define FEATURE_FLAG_INVLD_END 2
|
||||
#define FEATURE_FLAG_VALID_START 3
|
||||
#define FEATURE_FLAG_VALID_END 4
|
||||
#define FEATURE_FLAG_INVALID 5
|
||||
typedef struct
|
||||
{
|
||||
int flag;
|
||||
@ -104,7 +105,7 @@ typedef struct
|
||||
int startPtIdx;
|
||||
int endPtIdx;
|
||||
int midPtIdx;
|
||||
double midY;
|
||||
SVzNL3DPoint midPt;
|
||||
double width;
|
||||
double pkHeight;
|
||||
}SSG_featureSemiCircle;
|
||||
@ -204,6 +205,9 @@ typedef struct
|
||||
int sLineIdx;
|
||||
int eLineIdx;
|
||||
SSG_ROIRectD roi;
|
||||
SVzNL3DPoint centerPt;
|
||||
SVzNL2DPoint centerPos;
|
||||
int treeMidType; //1:綠쒔보쌈법
|
||||
std::vector< SSG_featureSemiCircle> treeNodes;
|
||||
}SSG_semiCircleFeatureTree;
|
||||
|
||||
|
||||
@ -714,52 +714,156 @@ void sg_fillingNullNodes(std::vector<SSG_featureTree>& trees)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
//判断生长点
|
||||
bool validGrowing(
|
||||
SSG_featureSemiCircle& a_feature,
|
||||
SSG_semiCircleFeatureTree& a_tree,
|
||||
SSG_treeGrowParam growParam)
|
||||
{
|
||||
SSG_featureSemiCircle last_node = a_tree.treeNodes.back();
|
||||
double y_diff = abs(a_feature.midPt.y - last_node.midPt.y);
|
||||
int line_diff = abs(a_feature.lineIdx - last_node.lineIdx);
|
||||
double x_diff = abs(a_feature.midPt.x - last_node.midPt.x);
|
||||
if ((y_diff < growParam.yDeviation_max) &&
|
||||
((line_diff < growParam.maxLineSkipNum) || (x_diff < growParam.maxSkipDistance)))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
// 将feature在trees上寻找合适的生长点进行生长。如果没有合适的生长点, 返回false
|
||||
//没有使用全匹配。一个feature一旦被匹配上,匹配就完成。没有使用最佳匹配。
|
||||
int _featureGrowing_semiCircle(
|
||||
SSG_featureSemiCircle& a_feature,
|
||||
std::vector<SSG_semiCircleFeatureTree>&trees,
|
||||
SSG_treeGrowParam growParam)
|
||||
{
|
||||
if ((FEATURE_FLAG_INVLD_START == a_feature.flag) || (FEATURE_FLAG_VALID_START == a_feature.flag))
|
||||
return -1;
|
||||
|
||||
for (int i = 0, i_max = trees.size(); i < i_max; i++)
|
||||
{
|
||||
SSG_semiCircleFeatureTree& a_tree = trees[i];
|
||||
if (TREE_STATE_DEAD == a_tree.treeState)
|
||||
continue;
|
||||
//检查生长点
|
||||
SSG_featureSemiCircle last_node = a_tree.treeNodes.back();
|
||||
if ( (last_node.lineIdx == a_feature.lineIdx)|| //x为lineIdx,同一条扫描线上的不进行生长
|
||||
(FEATURE_FLAG_INVLD_END == last_node.flag) || (FEATURE_FLAG_VALID_END == last_node.flag))
|
||||
continue;
|
||||
|
||||
//判断生长点
|
||||
bool vldGrowing = validGrowing(a_feature, a_tree, growParam);
|
||||
if (true == vldGrowing)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool _invalidateSemiCircleTrees(SSG_semiCircleFeatureTree& a_tree, double minTreeLen)
|
||||
{
|
||||
SSG_featureSemiCircle* first_node = &(a_tree.treeNodes[0]);
|
||||
SSG_featureSemiCircle* last_node = &(a_tree.treeNodes[a_tree.treeNodes.size() - 1]);
|
||||
double len = sqrt(pow(first_node->midPt.x - last_node->midPt.x, 2) + pow(first_node->midPt.y - last_node->midPt.y, 2));
|
||||
if (len <= minTreeLen)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
void sg_getFeatureGrowingTrees_semiCircle(
|
||||
std::vector< SSG_featureSemiCircle>& lineFeatures,
|
||||
const int lineIdx,
|
||||
const int lineSize,
|
||||
std::vector<SSG_semiCircleFeatureTree>& trees,
|
||||
std::vector<SSG_semiCircleFeatureTree>& stopTrees,
|
||||
std::vector<SSG_semiCircleFeatureTree>& invalidTrees,
|
||||
SSG_treeGrowParam growParam)
|
||||
{
|
||||
for (int i = 0, i_max = lineFeatures.size(); i < i_max; i++)
|
||||
{
|
||||
SSG_lineFeature& a_line = lineFeatures[i];
|
||||
if (a_line.features.size() > 0)
|
||||
SSG_featureSemiCircle& a_feature = lineFeatures[i];
|
||||
if (FEATURE_FLAG_INVALID == a_feature.flag)
|
||||
continue;
|
||||
|
||||
if ( (a_feature.lineIdx >= 205) && (i == 5))
|
||||
int kkk = 1;
|
||||
int matchedTreeIdx = _featureGrowing_semiCircle(a_feature, trees, growParam);
|
||||
if (matchedTreeIdx >= 0)
|
||||
{
|
||||
for (int j = 0, j_max = a_line.features.size(); j < j_max; j++)
|
||||
//检查最佳匹配
|
||||
std::vector<int> otherMatching;
|
||||
for (int j = i + 1; j < i_max; j++)
|
||||
{
|
||||
SSG_basicFeature1D& a_feature = a_line.features[j];
|
||||
if (a_feature.jumpPos2D.x == 207)
|
||||
int kkk = 1;
|
||||
bool isMatched = _featureGrowing(a_feature, a_line.lineIdx, trees, growParam);
|
||||
if (false == isMatched)
|
||||
bool vldGrowing = validGrowing(lineFeatures[j], trees[matchedTreeIdx], growParam);
|
||||
if (false == vldGrowing)
|
||||
break;
|
||||
otherMatching.push_back(j);
|
||||
}
|
||||
if (otherMatching.size() > 0)
|
||||
{
|
||||
SSG_featureSemiCircle last_node = trees[matchedTreeIdx].treeNodes.back();
|
||||
double minDist = abs(a_feature.midPt.y - last_node.midPt.y);
|
||||
int bestMatch = i;
|
||||
//取最小的匹配
|
||||
for (int m = 0, m_max = otherMatching.size(); m < m_max; m++)
|
||||
{
|
||||
//新的生长树
|
||||
SSG_featureTree a_newTree;
|
||||
a_newTree.treeNodes.push_back(a_feature);
|
||||
a_newTree.treeState = TREE_STATE_ALIVE;
|
||||
a_newTree.treeType = a_feature.featureType;
|
||||
a_newTree.sLineIdx = a_line.lineIdx;
|
||||
a_newTree.eLineIdx = a_line.lineIdx;
|
||||
trees.push_back(a_newTree);
|
||||
int idx = otherMatching[m];
|
||||
double y_diff = abs(lineFeatures[idx].midPt.y - last_node.midPt.y);
|
||||
if (y_diff < minDist)
|
||||
{
|
||||
minDist = y_diff;
|
||||
bestMatch = idx;
|
||||
}
|
||||
}
|
||||
otherMatching.push_back(i);
|
||||
for (int m = 0, m_max = otherMatching.size(); m < m_max; m++)
|
||||
{
|
||||
int idx = otherMatching[m];
|
||||
if (bestMatch == idx)
|
||||
{
|
||||
trees[matchedTreeIdx].eLineIdx = lineFeatures[idx].lineIdx;
|
||||
trees[matchedTreeIdx].treeNodes.push_back(lineFeatures[idx]);
|
||||
}
|
||||
lineFeatures[idx].flag = FEATURE_FLAG_INVALID;
|
||||
}
|
||||
}
|
||||
}
|
||||
//检查停止生长的树,加速。
|
||||
//将生长节点为1的生长树移除
|
||||
int lineIdx = a_line.lineIdx;
|
||||
int m_max = trees.size();
|
||||
for (int m = m_max - 1; m >= 0; m--) //从后往前,这样删除不会影响循环
|
||||
{
|
||||
if (TREE_STATE_ALIVE == trees[m].treeState)
|
||||
else
|
||||
{
|
||||
int line_diff = abs(lineIdx - trees[m].treeNodes.back().jumpPos2D.x);
|
||||
if (((growParam.maxLineSkipNum > 0) && (line_diff > growParam.maxLineSkipNum)) ||
|
||||
(i == i_max - 1))
|
||||
{
|
||||
trees[m].treeState = TREE_STATE_DEAD;
|
||||
bool isValid = _invalidateVSlopeTrees(trees[m], growParam.minLTypeTreeLen, growParam.minVTypeTreeLen);
|
||||
if (false == isValid)
|
||||
trees.erase(trees.begin() + m);
|
||||
}
|
||||
trees[matchedTreeIdx].eLineIdx = a_feature.lineIdx;
|
||||
trees[matchedTreeIdx].treeNodes.push_back(a_feature);
|
||||
}
|
||||
}
|
||||
else //(false == isMatched)
|
||||
{
|
||||
//新的生长树
|
||||
SSG_semiCircleFeatureTree a_newTree;
|
||||
a_newTree.treeNodes.push_back(a_feature);
|
||||
a_newTree.treeState = TREE_STATE_ALIVE;
|
||||
a_newTree.treeType = 0;
|
||||
a_newTree.sLineIdx = a_feature.lineIdx;
|
||||
a_newTree.eLineIdx = a_feature.lineIdx;
|
||||
trees.push_back(a_newTree);
|
||||
}
|
||||
}
|
||||
//检查停止生长的树,加速。
|
||||
//将生长节点为1的生长树移除
|
||||
int m_max = trees.size();
|
||||
for (int m = m_max - 1; m >= 0; m--) //从后往前,这样删除不会影响循环
|
||||
{
|
||||
if (TREE_STATE_ALIVE == trees[m].treeState)
|
||||
{
|
||||
int line_diff = abs(lineIdx - trees[m].treeNodes.back().lineIdx);
|
||||
if (((growParam.maxLineSkipNum > 0) && (line_diff > growParam.maxLineSkipNum)) ||
|
||||
(lineIdx == lineSize-1))
|
||||
{
|
||||
trees[m].treeState = TREE_STATE_DEAD;
|
||||
bool isValid = _invalidateSemiCircleTrees(trees[m], growParam.minVTypeTreeLen);
|
||||
if (true == isValid)
|
||||
stopTrees.push_back(trees[m]);
|
||||
else
|
||||
invalidTrees.push_back(trees[m]);
|
||||
trees.erase(trees.begin() + m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1657,9 +1657,10 @@ void sg_getLineUpperSemiCircleFeature(
|
||||
int lineIdx,
|
||||
const double sieveDiameter,
|
||||
const SSG_slopeParam slopePara,
|
||||
std::vector< SSG_featureSemiCircle>& line_features)
|
||||
std::vector< SSG_featureSemiCircle>& result_features,
|
||||
cv::Mat& holeMask) //根据holeMask进行合并
|
||||
{
|
||||
if (lineIdx == 54)
|
||||
if (lineIdx == 194)
|
||||
int kkk = 1;
|
||||
//去除零点
|
||||
std::vector< SVzNL3DPosition> vldPts;
|
||||
@ -2021,6 +2022,7 @@ void sg_getLineUpperSemiCircleFeature(
|
||||
}
|
||||
|
||||
//对validCornerPeakP进行配对
|
||||
std::vector< SSG_featureSemiCircle> line_features;
|
||||
for (int i = 0, i_max = localMin.size(); i < i_max; i++)
|
||||
{
|
||||
int ptIdx = localMin[i].jumpPos2D.y;
|
||||
@ -2064,13 +2066,13 @@ void sg_getLineUpperSemiCircleFeature(
|
||||
a_feature.width = yDist;
|
||||
a_feature.lineIdx = lineIdx;
|
||||
a_feature.midPtIdx = _getYNearestPtIdx(lineData, preIdx, postIdx, midY);
|
||||
a_feature.midY = lineData[a_feature.midPtIdx].pt3D.y;
|
||||
a_feature.midPt = lineData[a_feature.midPtIdx].pt3D;
|
||||
if (a_feature.midPtIdx >= 0);
|
||||
{
|
||||
int pkIdx = _getSegPeak(lineData, preIdx, postIdx);
|
||||
a_feature.pkHeight = lineData[pkIdx].pt3D.z;
|
||||
line_features.push_back(a_feature);
|
||||
for (int m = preIdx; m <= postIdx; m++)
|
||||
for (int m = a_feature.startPtIdx; m <= a_feature.endPtIdx; m++)
|
||||
{
|
||||
if (0 == endingFlag[m])
|
||||
endingFlag[m] = 1;
|
||||
@ -2093,13 +2095,13 @@ void sg_getLineUpperSemiCircleFeature(
|
||||
a_feature.lineIdx = lineIdx;
|
||||
double midY = (lineData[preIdx].pt3D.y + lineData[postIdx].pt3D.y) / 2.0;
|
||||
a_feature.midPtIdx = _getYNearestPtIdx(lineData, preIdx, postIdx, midY);
|
||||
a_feature.midY = lineData[a_feature.midPtIdx].pt3D.y;
|
||||
a_feature.midPt = lineData[a_feature.midPtIdx].pt3D;
|
||||
if (a_feature.midPtIdx >= 0)
|
||||
{
|
||||
int pkPtIdx = _getSegPeak(lineData, preIdx, postIdx);
|
||||
a_feature.pkHeight = lineData[pkPtIdx].pt3D.z;
|
||||
line_features.push_back(a_feature);
|
||||
for (int m = preIdx; m <= postIdx; m++)
|
||||
for (int m = a_feature.startPtIdx; m <= a_feature.endPtIdx; m++)
|
||||
{
|
||||
if (0 == endingFlag[m])
|
||||
endingFlag[m] = 1;
|
||||
@ -2110,9 +2112,42 @@ void sg_getLineUpperSemiCircleFeature(
|
||||
}
|
||||
}
|
||||
|
||||
//根据孔洞目标进行合并
|
||||
for (int i = 0, i_max = line_features.size(); i < i_max; i++)
|
||||
{
|
||||
if (FEATURE_FLAG_INVALID == line_features[i].flag)
|
||||
continue;
|
||||
|
||||
if (i < i_max - 1)
|
||||
{
|
||||
int idx1 = line_features[i].endPtIdx + 1;
|
||||
int holeId1 = holeMask.at<int>(idx1, lineIdx);
|
||||
int idx2 = line_features[i + 1].startPtIdx - 1;
|
||||
int holeId2 = holeMask.at<int>(idx2, lineIdx);
|
||||
if( (holeId1 > 0) && (holeId1 == holeId2))
|
||||
{
|
||||
//合并
|
||||
line_features[i].endPtIdx = line_features[i + 1].endPtIdx;
|
||||
double midY = (lineData[line_features[i].startPtIdx].pt3D.y + lineData[line_features[i].endPtIdx].pt3D.y) / 2;
|
||||
line_features[i].midPtIdx = _getYNearestPtIdx(lineData, line_features[i].startPtIdx, line_features[i].endPtIdx, midY);
|
||||
line_features[i].midPt = lineData[line_features[i].midPtIdx].pt3D;
|
||||
line_features[i].width = abs(lineData[line_features[i].startPtIdx].pt3D.y - lineData[line_features[i].endPtIdx].pt3D.y);
|
||||
int pkPtIdx = _getSegPeak(lineData, line_features[i].startPtIdx, line_features[i].endPtIdx);
|
||||
line_features[i].pkHeight = lineData[pkPtIdx].pt3D.z;
|
||||
result_features.push_back(line_features[i]);
|
||||
line_features[i + 1].flag = FEATURE_FLAG_INVALID;
|
||||
}
|
||||
else
|
||||
{
|
||||
result_features.push_back(line_features[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//计算检查长度时使用街区距离以避免太多的平方和开方运算
|
||||
//如果z方向为Jump返回True。Jump定义Seed前一个点z的变化大于门限
|
||||
bool _getPtPreMaxDelta(
|
||||
|
||||
@ -94,7 +94,7 @@ SSG_objSideInfo _getSideY(
|
||||
sideInfo.sideDist = edge_y;
|
||||
}
|
||||
sideInfo.isSide = true;
|
||||
return;
|
||||
return sideInfo;
|
||||
}
|
||||
|
||||
void _getNeighbouringInfo(
|
||||
|
||||
@ -12,6 +12,7 @@ void sg_lineDataR(SVzNL3DLaserLine* a_line,
|
||||
lineDataRT(a_line, camPoseR, groundH);
|
||||
}
|
||||
|
||||
#if 0
|
||||
//扫描线处理,进行垂直方向的特征提取和生长
|
||||
void sg_sieveNodeDetection_lineProc(
|
||||
SVzNL3DLaserLine* a_line,
|
||||
@ -39,10 +40,12 @@ void sg_sieveNodeDetection_lineProc(
|
||||
all_vLineFeatures.push_back(a_line_features); //空行也加入,保证能按行号索引
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
int _checkFeatureSplit(
|
||||
SSG_featureSemiCircle& a_feaurue,
|
||||
std::vector< SSG_featureSemiCircle>& chk_line_feature,
|
||||
double splitMinDist,
|
||||
double splitMaxDist) //在此距离内为有效分叉
|
||||
{
|
||||
int split = -1;
|
||||
@ -51,11 +54,11 @@ int _checkFeatureSplit(
|
||||
{
|
||||
if (i < i_max - 1)
|
||||
{
|
||||
if ((chk_line_feature[i].midY < a_feaurue.midY) && (chk_line_feature[i + 1].midY > a_feaurue.midY))
|
||||
if ((chk_line_feature[i].midPt.y < a_feaurue.midPt.y) && (chk_line_feature[i + 1].midPt.y > a_feaurue.midPt.y))
|
||||
{
|
||||
double dist_1 = abs(chk_line_feature[i].midY - a_feaurue.midY);
|
||||
double dist_2 = abs(chk_line_feature[i+1].midY - a_feaurue.midY);
|
||||
if ((dist_1 < splitMaxDist) && (dist_2 < splitMaxDist))
|
||||
double dist_1 = abs(chk_line_feature[i].midPt.y - a_feaurue.midPt.y);
|
||||
double dist_2 = abs(chk_line_feature[i+1].midPt.y - a_feaurue.midPt.y);
|
||||
if ((dist_1 > splitMinDist) && (dist_1 < splitMaxDist) && (dist_2 > splitMinDist)&& (dist_2 < splitMaxDist))
|
||||
{
|
||||
split = i;
|
||||
break;
|
||||
@ -66,30 +69,157 @@ int _checkFeatureSplit(
|
||||
return split;
|
||||
}
|
||||
|
||||
bool compareByWidth(const SSG_featureSemiCircle& a, const SSG_featureSemiCircle& b) {
|
||||
return a.width < b.width;
|
||||
}
|
||||
|
||||
SVzNL3DPoint _getMeanPt(
|
||||
std::vector<SSG_featureSemiCircle>& nodes,
|
||||
SVzNL3DLaserLine* laser3DPoints)
|
||||
{
|
||||
int nodeSize = nodes.size();
|
||||
int num = 0;
|
||||
SVzNL3DPoint meanPt = { 0.0,0.0,0.0 };
|
||||
for (int i = 0; i < nodeSize; i++)
|
||||
{
|
||||
SSG_featureSemiCircle& a_node = nodes[i];
|
||||
int lineIdx = a_node.lineIdx;
|
||||
for (int j = a_node.startPtIdx; j <= a_node.endPtIdx; j++)
|
||||
{
|
||||
if (laser3DPoints[lineIdx].p3DPosition[j].pt3D.z > 1e-4)
|
||||
{
|
||||
num++;
|
||||
meanPt.x += laser3DPoints[lineIdx].p3DPosition[j].pt3D.x;
|
||||
meanPt.y += laser3DPoints[lineIdx].p3DPosition[j].pt3D.y;
|
||||
meanPt.z += laser3DPoints[lineIdx].p3DPosition[j].pt3D.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (num > 0)
|
||||
{
|
||||
meanPt.x = meanPt.x / num;
|
||||
meanPt.y = meanPt.y / num;
|
||||
meanPt.z = meanPt.z / num;
|
||||
}
|
||||
return meanPt;
|
||||
}
|
||||
|
||||
SVzNL2DPoint _getNearestScanPt(
|
||||
std::vector<SSG_featureSemiCircle>& nodes,
|
||||
SVzNL3DLaserLine* laser3DPoints,
|
||||
SVzNL3DPoint objPt)
|
||||
{
|
||||
int nodeSize = nodes.size();
|
||||
SVzNL2DPoint bestPos = { -1, -1 };
|
||||
double minDist = -1;
|
||||
for (int i = 0; i < nodeSize; i++)
|
||||
{
|
||||
SSG_featureSemiCircle& a_node = nodes[i];
|
||||
int lineIdx = a_node.lineIdx;
|
||||
for (int j = a_node.startPtIdx; j <= a_node.endPtIdx; j++)
|
||||
{
|
||||
if (laser3DPoints[lineIdx].p3DPosition[j].pt3D.z > 1e-4)
|
||||
{
|
||||
SVzNL3DPoint& a_pt = laser3DPoints[lineIdx].p3DPosition[j].pt3D;
|
||||
double dist = sqrt(pow(a_pt.x - objPt.x, 2) + pow(a_pt.y - objPt.y, 2));
|
||||
if (minDist < 0)
|
||||
{
|
||||
minDist = dist;
|
||||
bestPos = { a_node.lineIdx, j };
|
||||
}
|
||||
else
|
||||
{
|
||||
if (minDist > dist)
|
||||
{
|
||||
minDist = dist;
|
||||
bestPos = { a_node.lineIdx, j };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return bestPos;
|
||||
}
|
||||
|
||||
|
||||
void sg_getSieveNodes(
|
||||
SVzNL3DLaserLine* laser3DPoints,
|
||||
int lineNum,
|
||||
const SSG_sieveNodeDetectionParam sieveDetectParam,
|
||||
std::vector<SVzNL3DPoint>& nodePos)
|
||||
{
|
||||
const int hole_max_ptSize = 20;
|
||||
int errCode = 0;
|
||||
std::vector<std::vector<int>> noisePts;
|
||||
std::vector<std::vector< SSG_featureSemiCircle>> all_vLineFeatures;
|
||||
for (int i = 0; i < lineNum; i++)
|
||||
{
|
||||
if (i == 19)
|
||||
int kkk = 1;
|
||||
|
||||
sg_lineDataRemoveOutlier_changeOriginData(
|
||||
laser3DPoints[i].p3DPosition,
|
||||
laser3DPoints[i].nPositionCnt,
|
||||
sieveDetectParam.filterParam);
|
||||
|
||||
//将nPointIdx转义使用前清零
|
||||
for (int j = 0; j < laser3DPoints[i].nPositionCnt; j++)
|
||||
laser3DPoints[i].p3DPosition[j].nPointIdx = 0;
|
||||
//Ðд¦Àí
|
||||
sg_sieveNodeDetection_lineProc(
|
||||
&laser3DPoints[i],
|
||||
}
|
||||
//孔洞检测,对小的孔洞需要合并
|
||||
int maskY = laser3DPoints[0].nPositionCnt;
|
||||
int maskX = lineNum;
|
||||
//生成孔洞标注Mask,进行目标标注
|
||||
cv::Mat bwImg = cv::Mat::zeros(maskY, maskX, CV_8UC1);//rows, cols
|
||||
for (int i = 0; i < lineNum; i++)
|
||||
{
|
||||
for (int j = 0; j < laser3DPoints[i].nPositionCnt; j++)
|
||||
{
|
||||
if(laser3DPoints[i].p3DPosition[j].pt3D.z < 1e-4)
|
||||
bwImg.at<uchar>(j, i) = 1;
|
||||
}
|
||||
}
|
||||
//孔洞目标标注
|
||||
cv::Mat labImg;
|
||||
std::vector<SSG_Region> labelRgns;
|
||||
SG_TwoPassLabel(bwImg, labImg, labelRgns, 8);
|
||||
//将孔洞目标进行标识
|
||||
cv::Mat holeMask = cv::Mat::zeros(maskY, maskX, CV_32SC1);//rows, cols
|
||||
for (int i = 0, i_max = labelRgns.size(); i < i_max; i++)
|
||||
{
|
||||
int rgnID = labelRgns[i].labelID;
|
||||
if (labelRgns[i].ptCounter < hole_max_ptSize) //孔洞
|
||||
{
|
||||
for (int m = labelRgns[i].roi.left; m <= labelRgns[i].roi.right; m++)
|
||||
{
|
||||
for (int n = labelRgns[i].roi.top; n <= labelRgns[i].roi.bottom; n++)
|
||||
{
|
||||
if (rgnID == labImg.at<int>(n, m))
|
||||
holeMask.at<int>(n, m) = rgnID;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#if _OUTPUT_LINE_PROC_RESULT
|
||||
cv::Mat holeMaskImage;
|
||||
cv::normalize(holeMask, holeMaskImage, 0, 255, cv::NORM_MINMAX, CV_8U);
|
||||
cv::imwrite("holeMask.png", holeMaskImage);
|
||||
#endif
|
||||
|
||||
std::vector<std::vector< SSG_featureSemiCircle>> all_vLineFeatures;
|
||||
for (int i = 0; i < lineNum; i++)
|
||||
{
|
||||
std::vector< SSG_featureSemiCircle> a_line_features;
|
||||
sg_getLineUpperSemiCircleFeature(
|
||||
laser3DPoints[i].p3DPosition,
|
||||
laser3DPoints[i].nPositionCnt,
|
||||
i,
|
||||
&errCode,
|
||||
all_vLineFeatures,
|
||||
noisePts,
|
||||
sieveDetectParam);
|
||||
sieveDetectParam.sieveDiameter,
|
||||
sieveDetectParam.slopeParam,
|
||||
a_line_features,
|
||||
holeMask);
|
||||
//将nPointIdx转义使用前清零
|
||||
for (int j = 0; j < laser3DPoints[i].nPositionCnt; j++)
|
||||
laser3DPoints[i].p3DPosition[j].nPointIdx = 0;
|
||||
all_vLineFeatures.push_back(a_line_features); //空行也加入,保证能按行号索引
|
||||
}
|
||||
|
||||
//根据筛网的特点去除无效的feature。当上下两个feature在下一条扫描线被合并成一个feature时,说明上一条扫描线的两个feature是无效feature。其相邻的feature均为无效feature
|
||||
@ -102,7 +232,7 @@ void sg_getSieveNodes(
|
||||
std::vector< SSG_featureSemiCircle>& pre_line_features = all_vLineFeatures[i-1];
|
||||
for (int j = 0, j_max = line_features.size(); j < j_max; j++)
|
||||
{
|
||||
int split = _checkFeatureSplit(line_features[j], pre_line_features, sieveDetectParam.sieveHoleSize);
|
||||
int split = _checkFeatureSplit(line_features[j], pre_line_features, sieveDetectParam.sieveDiameter/2, sieveDetectParam.sieveHoleSize);
|
||||
if (split >= 0)
|
||||
{
|
||||
pre_line_features[split].flag = FEATURE_FLAG_INVLD_END;
|
||||
@ -117,7 +247,7 @@ void sg_getSieveNodes(
|
||||
std::vector< SSG_featureSemiCircle>& post_line_features = all_vLineFeatures[i + 1];
|
||||
for (int j = 0, j_max = line_features.size(); j < j_max; j++)
|
||||
{
|
||||
int split = _checkFeatureSplit(line_features[j], post_line_features, sieveDetectParam.sieveHoleSize);
|
||||
int split = _checkFeatureSplit(line_features[j], post_line_features, sieveDetectParam.sieveDiameter/2, sieveDetectParam.sieveHoleSize);
|
||||
if (split >= 0)
|
||||
{
|
||||
post_line_features[split].flag = FEATURE_FLAG_INVLD_START;
|
||||
@ -129,23 +259,64 @@ void sg_getSieveNodes(
|
||||
}
|
||||
|
||||
//feature生长。碰到无效feature生长停止。无效生长可以作为生长起点。其生长树上的所有feature均为无效feature
|
||||
sg_getFeatureGrowingTrees_semiCircle(
|
||||
lineFeatures,
|
||||
trees,
|
||||
growParam);
|
||||
std::vector<SSG_semiCircleFeatureTree> trees;
|
||||
std::vector<SSG_semiCircleFeatureTree> stopTrees; //停止生长的树
|
||||
std::vector<SSG_semiCircleFeatureTree> invalidTrees; //被移除的树,这些树可能将目标分成多个树,从而被移除。需要保存下来迭代分析
|
||||
for (int i = 0; i < lineNum; i++)
|
||||
{
|
||||
//与前一条扫描线比较,寻找开始
|
||||
std::vector< SSG_featureSemiCircle>& line_features = all_vLineFeatures[i];
|
||||
sg_getFeatureGrowingTrees_semiCircle(
|
||||
line_features,
|
||||
i,
|
||||
lineNum,
|
||||
trees,
|
||||
stopTrees,
|
||||
invalidTrees,
|
||||
sieveDetectParam.growParam);
|
||||
}
|
||||
//精确确定焊接点
|
||||
for (int i = 0, i_max = stopTrees.size(); i < i_max; i++)
|
||||
{
|
||||
//焊接定为为所有点的(x,y,z)的平均处(质心)。
|
||||
SSG_semiCircleFeatureTree& a_tree = stopTrees[i];
|
||||
a_tree.centerPt = _getMeanPt(a_tree.treeNodes, laser3DPoints);
|
||||
a_tree.centerPos = _getNearestScanPt(a_tree.treeNodes, laser3DPoints, a_tree.centerPt);
|
||||
//判断焊点是否被焊接过:以中间点的高度与左右两边的中间高度比较
|
||||
|
||||
|
||||
}
|
||||
|
||||
//按行排序
|
||||
// (1)建立2D索引实现有序搜索
|
||||
//(2)从
|
||||
std::vector<std::vector<SSG_semiCircleFeatureTree>> sortedTrees;
|
||||
for (int i = 0, i_max = stopTrees.size(); i < i_max; i++)
|
||||
{
|
||||
//if(stopTrees[i].)
|
||||
}
|
||||
|
||||
//遗漏点检查
|
||||
|
||||
//迭代生长
|
||||
|
||||
#if _OUTPUT_LINE_PROC_RESULT
|
||||
//输出扫描线处理结果
|
||||
for (int i = 0, i_max = all_vLineFeatures.size(); i < i_max; i++)
|
||||
for (int i = 0, i_max = stopTrees.size(); i < i_max; i++)
|
||||
{
|
||||
std::vector< SSG_featureSemiCircle>& a_line_features = all_vLineFeatures[i];
|
||||
for (int j = 0, j_max = a_line_features.size(); j < j_max; j++)
|
||||
std::vector< SSG_featureSemiCircle>& a_tree_features = stopTrees[i].treeNodes;
|
||||
for (int j = 0, j_max = a_tree_features.size(); j < j_max; j++)
|
||||
{
|
||||
SSG_featureSemiCircle& a_feature = a_line_features[j];
|
||||
SSG_featureSemiCircle& a_feature = a_tree_features[j];
|
||||
for (int m = a_feature.startPtIdx; m <= a_feature.endPtIdx; m++)
|
||||
laser3DPoints[i].p3DPosition[m].nPointIdx = 1; //´Ë´¦nPointIdxתÒå
|
||||
laser3DPoints[i].p3DPosition[a_feature.midPtIdx].nPointIdx = 2;
|
||||
laser3DPoints[a_feature.lineIdx].p3DPosition[m].nPointIdx = 1; //此处nPointIdx转义
|
||||
|
||||
laser3DPoints[a_feature.lineIdx].p3DPosition[a_feature.midPtIdx].nPointIdx = 2;
|
||||
if(stopTrees[i].treeType == 0)
|
||||
laser3DPoints[stopTrees[i].centerPos.x].p3DPosition[stopTrees[i].centerPos.y].nPointIdx = 3;
|
||||
else
|
||||
laser3DPoints[stopTrees[i].centerPos.x].p3DPosition[stopTrees[i].centerPos.y].nPointIdx = 4;
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user