Convolution of a matrix
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
The Eagle
am 1 Apr. 2020
Bearbeitet: The Eagle
am 2 Apr. 2020
I've tried to code some of the problem and it is working for a 3*3 filter
0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 1 Apr. 2020
Bearbeitet: Ameer Hamza
am 1 Apr. 2020
Check conv2() to avoid for loop. Following correct the mistake in your code
clc;
clear all;
close all;
im=double(imread('cameraman.tif'));
w=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;];
k = floor(size(w,1)/2);
[M,N]=size(im);
g = zeros(M, N);
for i=k+1:M-k
for j=k+1:N-k
g(i,j)=sum(im(i-k:i+k,j-k:j+k).*w, 'all');
end
end
figure,imshow(im,[]);
figure,imshow(g,[]);
A simple version with conv2
im=im2double(imread('cameraman.tif'));
w=ones(5);
g = conv2(im, w, 'same');
figure,imshow(im,[]);
figure,imshow(g,[]);
4 Kommentare
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!