# How to find the variance of an image in a special windows? variance(in 3*3 windows)

1 view (last 30 days)

Show older comments

I obtain mean of image like this

if true

function [ I2] = mean3dar3( m )

h = fspecial('average', [3 3]);

I2 = imfilter(m,h);

end

I want to obtain variance of image in a special windows like mean but I dont know how can I make filter of this... thanks

end

##### 0 Comments

### Answers (3)

Image Analyst
on 26 Jan 2015

You could use the built-in function stdfilt() and square it.

grayImage = imread('cameraman.tif');

subplot(1,3,1);

imshow(grayImage);

fontSize = 20;

title('Original Image', 'FontSize', fontSize);

% Enlarge figure to full screen.

set(gcf, 'Units', 'Normalized', 'Outerposition', [0, 0, 1, 1]);

stdImage = stdfilt(grayImage, true(3));

subplot(1,3, 2);

imshow(stdImage, []);

title('Standard Deviation Image', 'FontSize', fontSize);

varianceImage = stdImage .^2;

subplot(1,3, 3);

imshow(varianceImage, []);

title('Variance Image', 'FontSize', fontSize);

Or you could also do it with blockproc() though it's not so straightforward. Let me know if you want a demo of that method.

##### 2 Comments

Image Analyst
on 31 Jan 2015

Here are my blocproc demos. I show it used in a variety of ways.

Alessandro Masullo
on 26 Jan 2015

Edited: Alessandro Masullo
on 26 Jan 2015

You can use the function conv2:

A = imread('foo.bmp');

small_window = ones(3)/9;

A_sq = conv2(A.^2,small_window,'same');

A_m = conv2(A,small_window,'same');

Var = A_sq - A_m.^2;

##### 0 Comments

sara
on 30 Jan 2015

##### 6 Comments

Image Analyst
on 2 Feb 2015

### See Also

### Categories

### Products

### Community Treasure Hunt

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

Start Hunting!