Dado que solo está trabajando en el coeficiente de Tanimoto, estoy tratando de ser más específico en lugar de dar una respuesta genérica con varios enfoques diferentes.
La notación básica del coeficiente de Tanimoto es la siguiente:
T(A,B)=NABNA+NB−NAB
donde es el resultado deseado, sobre las imágenes yA BTAB
En esta medida, identificamos los píxeles como pertenecientes a un segmento dado, es decir, es un segmento de píxeles o es un fondo. refiere al número de píxeles que se clasifican como píxeles de segmento en la imagen respectiva. Y refiere al número de píxeles que se clasifican como píxeles de segmento en ambas imágenes.
N A BNNAB
En esta medida, no se calculan todos los píxeles que califican como ni en A ni B; solo los píxeles.
Además, ambas imágenes deben tener la misma resolución y deben tener ubicaciones idénticas para los objetos segmentados, incluso si la forma de segmentación es correcta, la superposición resultante puede no ser correcta.
No estoy entrando en su código MATLAB, pero aquí está el pseudo código que se parece.
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);