Index in position 2 exceeds array bounds?

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 Comments

Is there a reason why you aren't using medfilt2? Just by reading your unformatted code I don't notice anything strange.
I already try using medfilt2 and got errors too.
Error in medfilt2 (line 49)
[a, mn, padopt] = parse_inputs(args{:});
Error in median_filter (line 6)
K = medfilt2(J);
I = imread('Left 002.jpg');
figure, imshow(I)
J = imnoise(I, 'salt & pepper', 0.02);
K = medfilt2(J);
imshowpair(J,K,'montage')
I = rgb2gray(imread('Left 002.jpg'));

Sign in to comment.

 Accepted Answer

Matt J
Matt J on 19 Sep 2019
Edited: Matt J on 19 Sep 2019
No, it is because of this line,
ymax = max(n,j+1); %should be min
But I agree with Rik that medfilt2 makes much more sense here.

2 Comments

Good catch.
If medfilt2 is not possible (because you don't happen to have the IPT), you should consider composing a 3D matrix and use median(__,3) on that.
Thanks for help me out. :)

Sign in to comment.

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!