Image Analysis
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
How to calculate gray percentage of an gray scale image ? Like 50 % gray Level, 32% gray level....Please post your answers....Thanks in advance........
0 Commenti
Risposta accettata
Image Analyst
il 29 Ott 2011
This is ambigous so I guess I'll have to solve both scenarios. If you want to know what "percent gray" an image is, like you want to know if it really is "18% gray" then you'd do this:
maxGrayValue = intmax(class(grayImage))
meanGray = mean2(grayImage)
percentGray = meanGray / single(maxGrayValue)
This can of course be combined into one line if you want. You may have heard about the "18% gray" assumption in photography: http://en.wikipedia.org/wiki/Gray_card , or http://en.wikipedia.org/wiki/Middle_gray
On the other hand, if you're wanting to find out what gray level has 32% of the pixels darker than that, you can use the CDF:
% Get the histogram.
[pixelCounts GLs] = imhist(grayImage);
% Get the cumulative distribution function.
cdf = cumsum(pixelCounts) / sum(pixelCounts);
% For example, find the gray level where 32% of the pixels are darker.
indexGray32 = find(cdf<=0.32, 1, 'last');
percentGray32 = GLs(indexGray32)
0 Commenti
Più risposte (1)
Amith Kamath
il 29 Ott 2011
but if you want to measure gray level in the way you have described above, you would want to replace the hist(<pixel value>) with hist(<pixel value range>) in the explanation in the link above. For example,
sum(hist(120:145)./sum(hist)) to check for fraction of pixels that are between 120 and 145 in value.
Thanks!
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!