使用Matlab的Tanimoto系数

时间:2012-03-04 07:40:12

标签: matlab image-segmentation

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

%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

请帮助我。

Segmentation output Correct Reference Dissimilar Reference

1 个答案:

答案 0 :(得分:0)

我认为你应该在union上使用sum()函数而不是size()而不是{{1}},因为Tanimoto系数是“相交的总和”/“联合的总和”