How to replace certain gray level values in image to find information loss in both?

1 visualizzazione (ultimi 30 giorni)
I'm finding information loss in Img1 and its replica Img2 when only a certain gray level values are allowed.
Entropy_Info_Loss=Entropy(Img1)-Entropy(img2);
where img2 must not have gray values other than eg.
only_include=[20, 30, 50].
img2(img1(:)~=only_include)=0;
However my result is all zeros image of img2. Can anyone assist me..

Risposta accettata

Walter Roberson
Walter Roberson il 2 Apr 2016
mask = ismember(img1, only_include);
img2 = img1;
img2(~mask) = 0;
  5 Commenti
Walter Roberson
Walter Roberson il 3 Apr 2016
That could happen if none of the values exactly match the list in only_include. For example if you had converted im2double() then the array values would be in the range 0 to 1.
But if you prefer a different implementation method:
img2 = zeros(size(img1), class(img1)) ;
for K = 1 : length(only_include)
mask = img1 == only_include(K) ;
img2(mask) = img(mask) ;
end
h612
h612 il 4 Apr 2016
Well this did work. Thank you. I tried using the class type only at first..but it didn't work. Using for loop did. Wondering what is wrong in the previously suggested method.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Display Image in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by