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

1 vue (au cours des 30 derniers jours)
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..

Réponse acceptée

Walter Roberson
Walter Roberson le 2 Avr 2016
mask = ismember(img1, only_include);
img2 = img1;
img2(~mask) = 0;
  5 commentaires
Walter Roberson
Walter Roberson le 3 Avr 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 le 4 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by