I need to calculate Tanimoto Coefficient. I don’t know what’s wrong in my code. I have 2 nearly similar images. But the value obtained using my code indicates that the two images are highly dissimilar. Kindly help me with my code.
%Tanimoto coeff
I=imread('sliver3.jpg');
J=imread('ref5.jpg');
figure,imshow(I),title('Original');
figure,imshow(J),title('Reference');
inter=intersect(I,J,'rows');
uni=union(I,J,'rows');
si=size(inter);
su=size(uni);
tc=si/su
I attach three images here. First one is the segmented output. Second is a reference image.Third is also a reference but which is highly dissimilar. So, the output must be that, first and second must be nearly similar and first and third must be highly dissimilar. But I’m getting the opposite.
For first two images, tc =0.4895
For first and third images, tc=0.5692
Kindly help me out.



I think you should use the
sum()function on union and intersect instead ofsize()since the Tanimoto Coefficient is the “summation of the intersect”/”summation of the union”