Największym błędem w tym kodzie jest złe posługiwanie się klauzulami try i except. Prawie nigdy nie powinieneś robić:
try:
except:
pass
Lepiej już nic nie napisać bo przynajmniej kompilator będzie cie wtedy informował o błędach.
Jak ją usuniesz to zobaczysz, że bardzo często wychodzisz poza granicę tablicy i to jest przyczyną złego wyniku.
Nie znam pythona i długo zastanawiałem się dlaczego wynik wychodzi wyższy niż prawidłowy skoro rzuca ci wyjątkami czyli nie inkrementuje wtedy zmiennej count. Odpowiedź mnie zaskoczyła. Mianowicie w pythonie dozwolone jest używanie ujemnych indeksów. Używając ujemnego indeksu odwołujesz się do tablicy od końca. Tzn. na samym początku, gdy y=0, w pierwszym ifie sprawdzasz image [y-1][x] czyli image[-1][0] a to znaczy, że sprawdzasz wartość kryjącą się pod image[199][0]. Podobnie w przypadku gdy x=0, dla ifa image[y][x-1]. Czyli w efekcie kilka razy sprawdzasz te same pixele.
Mam nadzieję, że wyraziłem się zrozumiale. W razie czego pisz.
Pozdrawiam :P