class Roi { public int xMin, xMax, yMin, yMax; Roi(int _xMin, int _xMax, int _yMin, int _yMax) { xMin = _xMin; xMax = _xMax; yMin = _yMin; yMax = _yMax; } void display() { println(" "+yMin); println(xMin+" "+xMax); println(" "+yMax); } } Roi[] findRoi(int i, int[][] itag, int xStart, int yStart, int xEnd, int yEnd) { Roi[] roi = new Roi[i + 1]; for (int j = 0; j <= i; ++j) roi[j] = new Roi(xEnd, xStart, yEnd, yStart); for (int y = yStart; y < yEnd; ++y) for (int x = xStart; x < xEnd; ++x) { if (itag[x][y] > 0) { if (x < roi[(itag[x][y] - 1)/2].xMin) roi[(itag[x][y] - 1)/2].xMin = x; if (x > roi[(itag[x][y] - 1)/2].xMax) roi[(itag[x][y] - 1)/2].xMax = x; if (y < roi[(itag[x][y] - 1)/2].yMin) roi[(itag[x][y] - 1)/2].yMin = y; if (y > roi[(itag[x][y] - 1)/2].yMax) roi[(itag[x][y] - 1)/2].yMax = y; } } return roi; }