Index in position 2 exceeds array bounds?

4 views (last 30 days)
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
Nur Hafizah Mohd Nazari
Nur Hafizah Mohd Nazari on 19 Sep 2019
Edited: Matt J on 19 Sep 2019
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')
Matt J
Matt J on 19 Sep 2019
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
Rik
Rik on 19 Sep 2019
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.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!