Clear Filters
Clear Filters

Similarity check between two binary images

22 views (last 30 days)
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 Comments
Adam
Adam on 29 Aug 2017
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 on 29 Aug 2017
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.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 29 Aug 2017
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);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!