In teoria per sapere se una determinata area di un'immagine contiene pixel dello stesso colore basterebbe creare due cicli for nestati fra loro i cui valori iniziali del range corrispondono al vertice "in alto a sinistra" dell'area che ti interessa analizzare. Esempio pratico:
pixeluguali = true
for y in range(yiniziale, yfinale)
for x in range(xiniziale, xfinale)
se -> img[y][x] non è dello stesso colore di: __variabile__
pixeluguali = false
break
# all'uscita del ciclo for pixeluguali sarà true se tutti i pixel
# dell'area analizzata sono dello stesso colore di __variabile__
"Muovere" l'area oggetto di analisi richiede ovviamente altri cicli for che tengano in conto la differenza fra la grandezza dei lati dell'immagine e dei lati dell'area da analizzare per scorrere su ognuno dei pixel
Prima di procedere però prova a pensare cosa implica un programma simile, ad esempio se l'immagine fosse grande 50x50 pixel, alla prima iterazione creeresti un'area da analizzare di un solo pixel, che scorre tutti i pixel dell'immagine (50*50*1 possibili test di uguaglianza se tutti i pixel sono diversi fra loro). Alla seconda, un quadrato 2x2 scorre nuovamente tutti i pixel dell'immagine, testando un'area di 4 pixel ad iterazione (49*49*4 possibili test di uguaglianza), alla terza l'area è 3x3 = 9 (48 * 48 * 9 tdu).
Scorrere i primi 4-5 (su 50) quadrati richiederebbe quasi 70000 test di uguaglianza per un'immagine grande soltanto 50x50. Anche procedendo al contrario e scorrendo per primi i quadrati più grandi e fermando lo scorrimento appena si trova un quadrato che effettivamente contiene pixel dello stesso colore avresti performance improponibili