def marquerRegion(I, h, w, M, i, j):
if not M[i][j]:
M[i][j] = True
if i < h - 1 and I[i][j] == I[i + 1][j]: marquerRegion(I, h, w, M, i + 1, j)
if i > 0 and I[i][j] == I[i - 1][j]: marquerRegion(I, h, w, M, i - 1, j)
if j < w - 1 and I[i][j] == I[i][j + 1]: marquerRegion(I, h, w, M, i, j + 1)
if j > 0 and I[i][j] == I[i][j - 1]: marquerRegion(I, h, w, M, i, j - 1)
def nombreRegions(I, h, w):
r = 0
M = [[False for j in range(w)] for i in range(h)]
for i in range(h):
for j in range(w):
if not M[i][j]:
r = r + 1
marquerRegion(I, h, w, M, i, j)
return r