How to read image from pixel values
1 view (last 30 days)
Show older comments
Hi,
How to find the mean value of pixels of 10 images
Thanks in advance
0 Comments
Accepted Answer
Walter Roberson
on 12 Sep 2011
Your title does not appear to be asking the same thing as your question ??
Are you reading 10 images all exactly the same size, and you want to get a per-pixel mean across the 10 images? If so then provided that the images are gray-scale, use
mean(cat(3,IMG1,IMG2,IMG3,IMG4,IMG5,IMG6,IMG7,IMG8,IMG9,IMG10),3)
If the images are pseudocolor, then you need to use the associated colormap and ind2rgb() to convert them to RGB before you can find the mean.
If you are working with truecolor (RGB -- separate red, green, and blue pixel values), then you need to decide whether you want the mean intensity (brightness) or if you want a mean per color channel. If you want a mean intensity, use rgb2gray() and then the mean() that I showed earlier. If you want a mean per color channel, then
mean(cat(4,IMG1,IMG2,IMG3,IMG4,IMG5,IMG6,IMG7,IMG8,IMG9,IMG10),3)
(I think.)
Warning: the process of taking the mean() will leave you with a double-precision array, even if your input arrays were uint8. If your input arrays were not already double-precision, then you will not be able to directly display or imwrite() the output. You will probably want to cast() the output of the mean to class(IMG1), as in
cast(mean(cat(3, IMG1, IMG2, IMG3, IMG4, IMG5, IMG6, IMG7, IMG8, IMG9, IMG10),3), class(IMG1))
6 Comments
Walter Roberson
on 13 Sep 2011
If you have several 2 dimensional images, then you can stack them on the 3rd dimension and then take the mean along that 3rd dimension to have a 2d result for each location. It is important that the first number in the cat() call be one more than the number of dimensions in your image.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!