How to coded this filter in Matlab

clc
clear all
img=double(imread('cameraman.tif'));
imshow(uint8(img))
[m n]=size(img);
w = ones(3)
for i=0:m-3
for j=0:n-3
sum=0;
for k=1:3
for l=1:3
sum = sum + img(i+k,j+l)*w(k,l);
end
end
img1(i+1,j+1) = sum/9;
end
end
img2 = uint8(img1);
figure
imshow(img2)
%imwrite(img2,‘output.png','png');
I coded for 1/9*(ones(1) but i can't write for 1/16*[1,2,1;2,4,2;1,2,1] in Matlab. I don't know how to do this. I need same coded for 1/16*[1,2,1;2,4,2;1,2,1]. and if we take i and j = 0, how should the code be? Would you help me please?

Antworten (1)

Ameer Hamza
Ameer Hamza am 3 Nov. 2020

0 Stimmen

Write the code like this
clc
clear all
img=double(imread('cameraman.tif'));
imshow(uint8(img))
[m n]=size(img);
w = 1/9*ones(3); % <---- ones(3) is divided by 9
for i=0:m-3
for j=0:n-3
sum=0;
for k=1:3
for l=1:3
sum = sum + img(i+k,j+l)*w(k,l);
end
end
img1(i+1,j+1) = sum; % <---- division by 9 is removed.
end
end
img2 = uint8(img1);
figure
imshow(img2)
Then you can simply replace 'w' with
w = 1/16*[1,2,1;2,4,2;1,2,1];
and it will display correct image.

7 Kommentare

Rooter Boy
Rooter Boy am 3 Nov. 2020
Bearbeitet: Rooter Boy am 3 Nov. 2020
Sir, are you sure? Isn't it necessary to change the for loops?
I think your answer is full false.
Ameer Hamza
Ameer Hamza am 3 Nov. 2020
What is wrong in this? For w = ones(3), it is equivalent to your code.
Rooter Boy
Rooter Boy am 3 Nov. 2020
Bearbeitet: Rooter Boy am 3 Nov. 2020
Sir, if we take i and j = 1, how should the code be? Would you help me please?
Ameer Hamza
Ameer Hamza am 3 Nov. 2020
What do you mean by i=1 and j=1. In your current code, i and j also take value of 1.
Rooter Boy
Rooter Boy am 3 Nov. 2020
We coded using i=0, j=0
for i=0:m-3
for j=0:n-3
if we take i and j = 1, how should the code be?
You can just use
for i=1:m-3
for j=1:n-3
Rooter Boy
Rooter Boy am 19 Nov. 2020
Sir, could you help me when you are available?
https://www.mathworks.com/matlabcentral/answers/652808-nwc-and-lcm-code-block-in-matlab

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Images finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 3 Nov. 2020

Kommentiert:

am 19 Nov. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by