Similarity check between two binary images

22 次查看(过去 30 天)
Hallo I want to apply a check if the two binary images are similar. I subtract a binary image 1 from the other to get a difference image. where Confidence = (sum(Image_1(:)) - Overlapping_Area)*100 /sum(Image_1 (:)) ;
It would not be reliable if the matching images have lot of shapes and rest borders lines in difference image. Any idea?
  3 个评论
Adam
Adam 2017-8-29
Just taking a sum over the whole image is never going to give you an accurate measure. You need a per-pixel measure and then apply a sum at the end of that, not right at the start where you are basically just counting true or false values, irrespective of their locations.
Rik
Rik 2017-8-29
I agree with Adam, although if you're going to do arithmetic operations with binary things, first convert them to a data type that can hold possible values (generally casting to double is the best, unless speed memory are extremely important).
Generally, when you ask a question on this forum, you should remember that this is a Matlab forum. That means that the less jargon is used and the less background knowledge about the actual application is needed, the more people can help you. This increases the chance of you getting an answer and the answer being useful in the future to someone else.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2017-8-29
Try the Dice Similarity Coefficient
% Find out where either mask is true.
unionMask = mask1 | mask2;
% Find the differences. Not used - just for fun/visualization.
%xorMask = xor(flippedMask, mask);
% Find the common/overlap area.
andMask = mask1 & mask2;
% Compute the Dice Coefficient
dice = nnz(andMask) / nnz(unionMask);

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by