diff --git a/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h b/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h index 967dd9c123f077ac36f03eb1497b551aa06a30a6..9c72ccfa7e838d64c35d27beaabb3f297f61654e 100644 --- a/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h +++ b/Modules/Hyperspectral/AnomalyDetection/include/otbLocalRxDetectorFilter.h @@ -174,6 +174,11 @@ public: listSample->SetMeasurementVectorSize(centerPixel.Size()); OffsetType off; + + // Cache radiuses attributes for threading performances + const int internalRadiusX = m_InternalRadiusX; + const int internalRadiusY = m_InternalRadiusY; + auto externalRadius = in.GetRadius(); for (int y = -static_cast<int>(externalRadius[1]); y <= static_cast<int>(externalRadius[1]); y++) { @@ -181,9 +186,9 @@ public: for (int x = -static_cast<int>(externalRadius[0]); x <= static_cast<int>(externalRadius[0]); x++) { off[0] = x; - if ((abs(x) > m_InternalRadiusX) || (abs(y) > m_InternalRadiusY)) + if ((abs(x) > internalRadiusX) || (abs(y) > internalRadiusY)) { - listSample->PushBack(in[off] ); + listSample->PushBack(in[off]); } } }