Image Analysis

7 Ansichten (letzte 30 Tage)
harjan
harjan am 28 Okt. 2011
How to calculate gray percentage of an gray scale image ? Like 50 % gray Level, 32% gray level....Please post your answers....Thanks in advance........

Akzeptierte Antwort

Image Analyst
Image Analyst am 29 Okt. 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)

Weitere Antworten (1)

Amith Kamath
Amith Kamath am 29 Okt. 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!

Kategorien

Mehr zu Get Started with Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by