基于Matlab的Tanimoto系数

基于Matlab的Tanimoto系数,matlab,image-segmentation,Matlab,Image Segmentation,我需要计算谷本系数。我不知道我的代码出了什么问题。我有两张几乎相似的图片。但是使用我的代码获得的值表明这两个图像非常不同。请帮我写代码 %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,'ro

我需要计算谷本系数。我不知道我的代码出了什么问题。我有两张几乎相似的图片。但是使用我的代码获得的值表明这两个图像非常不同。请帮我写代码

%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
我在此附上三张图片。第一个是分段输出。第二个是参考图像。第三个也是参考图像,但非常不同。所以,输出必须是,第一和第二必须是几乎相似的,第一和第三必须是高度不同的。但我得到了相反的结果

对于前两张图像,tc=0.4895 对于第一个和第三个图像,tc=0.5692

请帮帮我


我认为你应该在union和intersect上使用
sum()
函数,而不是
size()
,因为Tanimoto系数是“intersect之和”/“union之和”

我认为你应该在union和intersect上使用
sum()
函数,而不是
size()
因为塔尼莫托系数是“相交之和”/“并集之和”