Let us try to understand convolution by performing
spatial averaging on a matrix without using MATLAB built in function ‘conv2()’.

%CONVOLUTION IN MATLAB

%INPUT MATRIX

A = zeros(5);

A(:) = 1:25;

%KERNEL

avg3 = ones(3)/9;

%CONVOLUTION

Result = conv2(A,avg3,'same');

display(Result);

**Steps to be performed:**

**NOTE :**

To define a kernel for spatial averaging, fill the
kernel with ones and divide it by the number of elements in it.

For instance, consider kernel of size 4x4 , fill
the matrix with ones and divide it by 16. i.e the total number of elements in
the matrix.

**MATLAB CODE:**

%INPUT MATRIX

A = zeros(5);

A(:) = 1:25;

%KERNEL

avg3 = ones(3)/9;

%PAD THE MATRIX WITH ZEROS

B = padarray(A,[1 1]);

% PRE-ALLOCATE THE MATRIX

Output = zeros([size(A,1)
size(A,2)]);

%PERFORM COONVOLUTION

for i = 1:size(B,1)-2

for j = 1:size(B,2)-2

Temp = B(i:i+2,j:j+2).*avg3;

Output(i,j) = sum(Temp(:));

end

end

display(Output);

## 6 comments:

Its interesting and good for students.

The key is to give the peruser a little look into your experience, which urges them to need to take in more by perusing your resume

Medical Science Homework Help

Congratulations very interesting and didactically, do you have a youtube channel? if no, think about it.

Man You are a life save, thanks for this easy explaining :) :)

Hey In understand your example very clearly. I have question. If i want to subtraction any pixel intensity from its 8 neighbors pixel intensity(this is for every pixels in the image) and then take the absolute sum of the subtraction. How should I define the kernel (avg3 in your example) and perform the task with conv2?

Thanks was very helpful for my assignment!

## Enjoyed Reading? Share Your Views