sì ho capito. il fatto è che tu scarti le zone rosso scuro se ho ben capito... giusto?! se è così in effetti l'ellisse che descrive il cranio può cambiare inclinazione ed assumerne una non congruente con quella della testa inquadrata...
a sto punto ti ci vorrenne come minimo un sistema di clusterizzazione.
spiego meglio: se tu scarti le zone piccole (ipotesi mia) va a finire che a volte ti mangi aree rilevanti e modifichi la forma del cranio in maniera sensibile.
ti butto là delle idee venute d'istinto:
soluzione A
========
0- individui le zone rosse come già fai
1- usi una libreria di elaborazione grafica e fai un dilate + erode con kernel 3x3. questo modifica leggermente la forma della testa ma dovrebbe riempire alcuni buchi tra i pezzi di pelle rendendo connesse molte più zone della testa.
soluzione B
========
0- se l'immagine non è già grayscale riconducila e realizza un k-mean. putroppo il numero di cluster deve essere deciso per esperienza (a occhio

1- utilizza un cluster di riferimento e seleziona tutto il cluster non solo un colore
soluzione C
========
0- immagino che il colore della pelle sia comunque definito da due soglie e non come valore secco...
1- rendi più elevata la tolleranza delle soglie
soluzione D
========
0- seleziona le zone rosse chiare e scure come fai ora
1- usa un clustering statistico. questo funziona solo se la testa copre un'area predominante dell'immagine
2- calcola le PCA e prendi tutto ciò che sta in un intorno di semiassi delta_1 e delta_2 rispetto al baricentro
(questa mossa è un pò complessa da spiegare....)
ciao,
M