std2 ROI

14 views (last 30 days)
Joe
Joe on 29 Aug 2011
Hi,
I am looking to calculate the standard deviation of intensity values of a grayscale image.
I do not want to calculate the standard deviation of the entire image, but just a ROI.
I can create a binary mask, but can not see a way of using this to extract the ROI statistics.
Any help would be greatly appreciated.
Cheers,
Joe

Accepted Answer

Gareth Thomas
Gareth Thomas on 29 Aug 2011
Hi Joe,
Maybe I miss understood what you were aiming for but try logical indexing.
img = imread('pout.tif');
h_im = imshow(img);
e = imellipse(gca,[55 10 120 120]);
BW = createMask(e,h_im);
imshow(BW)
std2(img)
std2(img(BW))
Does this give you what you were looking for?
The idea here is simple. std2(A) gives the same as as std(A(:))
But the important thing is if you only want part of A, use the logical indexing to get those numbers.
Simple example:
a = [1 2 3 4; 2 3 4 5; 2 3 4 4; 4 4 1 2]
BW=a>=3
a(BW)
std2(a(BW))
Hope this helps.
  1 Comment
Joe
Joe on 31 Aug 2011
std2(image(binary_mask)) gives me what I'm looking for.
Thanks for the help.
Joe

Sign in to comment.

More Answers (1)

David Young
David Young on 29 Aug 2011
std(Image(logical(binary_mask)))

Tags

Community Treasure Hunt

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

Start Hunting!