Entropy of an image
37 views (last 30 days)
Hi everyone, I am new to MATLAB and I am trying to calculate and analyze the entropy of a set of images. Sometimes however, I need to crop only a certain area of a picture in order to calculate the entropy of that specific area (see attached file). The question is: does the size of an image bias the entropy value? If yes, is it possible to solve this problem?
thanks in advance
PS: I wanted to calculate the entropy of RGB pictures but I never found the code for that
Madhav Thakker on 21 Aug 2020
Entropy for a grayscale image is calculated as the sum(p.*log2(p)), where p contains the normalized histogram counts returned from imhist. If the resized image does not change the histogram of the original image, there shouldn’t be any change in the entropy value as well.
There is no inbuilt function to calculate entropy of RGB Images. You can refer this answer for some ways to calculate entropy of colored images. https://in.mathworks.com/matlabcentral/answers/261930-how-to-calculate-entropy-of-colored-image
Entropy documentation for better understanding - https://in.mathworks.com/help/images/ref/entropy.html
Hope this helps.
Image Analyst on 25 Jul 2021
@ammu v, to compute the entropy of just a region of interest in an image you first have to define a binary image (mask) that is the region of interest, for example the tumor. Then you can use entropyfilt() on the whole image.
entropyImage = entropyfilt(grayImage);
Then get the mean in the masked region
meanEntropy = mean(entropyImage(mask))