diff --git a/Code/Common/otbImageRegionSquareTileSplitter.txx b/Code/Common/otbImageRegionSquareTileSplitter.txx index 2055e184fedb400953aba9939089ef7380bc9692..31e5751264c7e31e4b42b9d42d0173d1ce1bb29f 100644 --- a/Code/Common/otbImageRegionSquareTileSplitter.txx +++ b/Code/Common/otbImageRegionSquareTileSplitter.txx @@ -99,9 +99,17 @@ ImageRegionSquareTileSplitter<VImageDimension> if(tilesPerMegaTilesPerDim == 0) { - tilesPerMegaTilesPerDim =1; + tilesPerMegaTilesPerDim = 1; } + // Can't use more tiles than the number of splits per dim + if (tilesPerMegaTilesPerDim > m_SplitsPerDimension[0]) + tilesPerMegaTilesPerDim = m_SplitsPerDimension[0]; + + if (tilesPerMegaTilesPerDim > m_SplitsPerDimension[1]) + tilesPerMegaTilesPerDim = m_SplitsPerDimension[1]; + + unsigned int tilesPerMegaTiles = tilesPerMegaTilesPerDim*tilesPerMegaTilesPerDim; unsigned int remaining = i / tilesPerMegaTiles;