diff --git a/Algo/DetectHole/examples/visualization_demo/VisualizationDemo.cpp b/Algo/DetectHole/examples/visualization_demo/VisualizationDemo.cpp index 47528cb..7f6cc58 100644 --- a/Algo/DetectHole/examples/visualization_demo/VisualizationDemo.cpp +++ b/Algo/DetectHole/examples/visualization_demo/VisualizationDemo.cpp @@ -484,7 +484,7 @@ int ProcessSingleFile(const std::string& inputFile, debugCallbacks.onHoleFitted = OnHoleFitted; debugCallbacks.onSegmentPairsDetected = OnSegmentPairsDetected; debugCallbacks.onLineAngleProfileDetected = nullptr;// OnLineAngleProfileDetected; - debugCallbacks.onPlanesSegmented = OnPlanesSegmented; + debugCallbacks.onPlanesSegmented = nullptr;// OnPlanesSegmented; debugCallbacks.onMaskedPointsReady = nullptr;// OnMaskedPointsReady; #else debugCallbacks.onBoundaryDetected = nullptr; diff --git a/Algo/DetectHole/src/HoleDetection.cpp b/Algo/DetectHole/src/HoleDetection.cpp index 550fd36..f4c76d9 100644 --- a/Algo/DetectHole/src/HoleDetection.cpp +++ b/Algo/DetectHole/src/HoleDetection.cpp @@ -296,6 +296,7 @@ int DetectMultipleHoles( SHoleResult hole; ret = hole_detection::internal::FitHoleFromExtremePoints( + maskedPoints.data(), points, rows, cols, diff --git a/Algo/DetectHole/src/HoleDetectionFitting.cpp b/Algo/DetectHole/src/HoleDetectionFitting.cpp index fd6cac2..e5aa65d 100644 --- a/Algo/DetectHole/src/HoleDetectionFitting.cpp +++ b/Algo/DetectHole/src/HoleDetectionFitting.cpp @@ -251,7 +251,8 @@ int FitHolesFromClusters( } int FitHoleFromExtremePoints( - const SVzNLPointXYZ* points, + const SVzNLPointXYZ* mask_points, + const SVzNLPointXYZ* all_points, int rows, int cols, const std::vector& extremePoints, @@ -261,7 +262,7 @@ int FitHoleFromExtremePoints( int* errCode, const SHoleDetectionDebugCallbacks* debugCallbacks ) { - if (points == nullptr || errCode == nullptr) { + if (mask_points == nullptr || errCode == nullptr) { if (errCode) *errCode = HD_ERR_INVALID_INPUT; return HD_ERR_INVALID_INPUT; } @@ -303,7 +304,7 @@ int FitHoleFromExtremePoints( continue; } int idx = r * cols + c; - const SVzNLPointXYZ& p = points[idx]; + const SVzNLPointXYZ& p = mask_points[idx]; if (!IsValidPoint(p)) continue; expandedPoints.push_back(p); } @@ -657,7 +658,7 @@ int FitHoleFromExtremePoints( float invNorm = static_cast(1.0 / planeResidualNorm); for (int r = innerMinRow; r <= innerMaxRow; r++) { for (int c = innerMinCol; c <= innerMaxCol; c++) { - const SVzNLPointXYZ& pt = points[r * cols + c]; + const SVzNLPointXYZ& pt = all_points[r * cols + c]; if (!IsValidPoint(pt)) continue; float dx = pt.x - center.x; float dy = pt.y - center.y; diff --git a/Algo/DetectHole/src/HoleDetectionInternal.h b/Algo/DetectHole/src/HoleDetectionInternal.h index 35edff0..2ab4b9b 100644 --- a/Algo/DetectHole/src/HoleDetectionInternal.h +++ b/Algo/DetectHole/src/HoleDetectionInternal.h @@ -86,7 +86,8 @@ int FitHolesFromClusters( ); int FitHoleFromExtremePoints( - const SVzNLPointXYZ* points, + const SVzNLPointXYZ* mask_points, + const SVzNLPointXYZ* all_points, int rows, int cols, const std::vector& extremePoints,