Index in position 2 exceeds array bounds?
Afficher commentaires plus anciens
Is this problem relate to the image file? The image file is attached with this code. Thank you.
close all;
clear all;
clc;
%read image
I=imread('Left 002.jpg');
%Add salt and pepper noise
J = imnoise(I,'salt & pepper',0.01);
[m,n] = size(J);
output = zeros(m,n);
output = uint8(output);
for i = 1:m
for j = 1:n %intensity of pixel in the noisy image is given as noisy(i,j)
% here we define max and minimum values x and y coordinates of any
% pixel can take
xmin = max(1,i-1); % minimum x coordinate has to be greater than or equal to 1
xmax = min(m,i+1);
ymin = max(1,j-1);
ymax = max(n,j+1);
% the neigberhood matrix will than be
temp = J(xmin:xmax, ymin:ymax);
%now the new intensity of pixel at (i,j) will be median of this
%matrix
output(i,j) = median(temp(:));
end
end
figure(1);
set(gcf, 'Position', get(0,'ScreenSize'));
subplot(131),imshow(I),title('Original Image');
subplot(132),imshow(J),title('Noisy Image');
subplot(134),imshow(output),title('Median Filter');
3 commentaires
Rik
le 19 Sep 2019
Is there a reason why you aren't using medfilt2? Just by reading your unformatted code I don't notice anything strange.
Nur Hafizah Mohd Nazari
le 19 Sep 2019
Modifié(e) : Matt J
le 19 Sep 2019
Matt J
le 19 Sep 2019
I = rgb2gray(imread('Left 002.jpg'));
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Image Filtering dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!