Filter löschen
Filter löschen

Similarity check between two binary images

22 Ansichten (letzte 30 Tage)
Az
Az am 29 Aug. 2017
Beantwortet: Image Analyst am 29 Aug. 2017
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 Kommentare
Adam
Adam am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 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);

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by