I created a code which does filtering with convulution but it gives an error
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Demet Bayraktar
il 27 Lug 2021
Commentato: Demet Bayraktar
il 27 Lug 2021
A = imread('lena.jpg');
F = uint8([-1 -1 -1;0 0 0;1 1 1]);
B = uint8(padarray(A,[1 1]));
Output = uint8(zeros(size(A)));
for i = 1:size(B,1)-2
for j = 1:size(B,2)-2
X = B(i:i+2,j:j+2).*F;
Output(i,j) = sum(X(:));
end
end
imshow(Output)
but it doesn't work correctly. What is my mistake?
1 Commento
Risposta accettata
Chunru
il 27 Lug 2021
The image has 3 channels and is a 3D array. You need to loop over the 3rd dimension as well. Use a different image below.
A = imread('onion.png');
F = uint8([-1 -1 -1;0 0 0;1 1 1]);
B = uint8(padarray(A,[1 1]));
Output = uint8(zeros(size(A)));
for k=1:size(B,3)
for i = 1:size(B,1)-2
for j = 1:size(B,2)-2
X = B(i:i+2,j:j+2, k).*F;
Output(i,j, k) = sum(X(:));
end
end
end
subplot(121)
imshow(A)
subplot(122)
imshow(Output)
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!