Dato che stai lavorando solo su Tanimoto Coefficient, sto cercando di essere più specifico piuttosto che dare una risposta generica con vari approcci diversi.
La notazione di base del coefficiente Tanimoto è la seguente:
T( A , B ) =NA BNUN+NB-NA B
dove è il risultato desiderato, sulle immagini eTUNB
In questa misura, identifichiamo i pixel come appartenenti a un determinato segmento, ovvero è pixel di segmento o è sfondo. riferisce al numero di pixel classificati come pixel di segmento nella rispettiva immagine. E riferisce al numero di pixel che sono classificati come pixel di segmento in entrambe le immagini.
NNA B
In questa misura non vengono calcolati tutti i pixel che non si qualificano né in A né in B; solo i pixel.
Inoltre, entrambe le immagini devono avere la stessa risoluzione e devono avere posizioni identiche a quelle per gli oggetti segmentati, anche se la forma della segmentazione è corretta, la sovrapposizione risultante potrebbe non essere corretta.
Non sto inserendo il tuo codice MATLAB, ma ecco lo pseudo codice che sembra.
Initialize N_A, N_B, N_AB;
for( all pixels @ x,y)
{
if(image_A[x][y] == SEGMENT_CLASS_PIXEL)
N_A += 1;
if(image_B[x][y] == SEGMENT_CLASS_PIXEL)
N_A += 1;
if(image_A[x][y] == SEGMENT_CLASS_PIXEL
&& image_B[x][y] == SEGMENT_CLASS_PIXEL)
N_AB += 1;
}
T = N_AB / (N_A + N_B - N_AB);