Коэффициент Танимото с использованием Matlab - PullRequest
2 голосов
/ 04 марта 2012

Мне нужно рассчитать коэффициент Танимото. Я не знаю, что не так в моем коде. У меня есть 2 почти похожих изображения. Но значение, полученное с помощью моего кода, указывает на то, что эти два изображения сильно отличаются. Пожалуйста, помогите мне с моим кодом.

%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 голосов
/ 01 июня 2012

Я думаю, что вы должны использовать функцию sum() для объединения и пересечения вместо size(), поскольку коэффициент Танимото является "суммированием пересечения" / "суммированием объединения"

...