Attempted to access pad_org(1,343); index out of bounds because size(pad_org)=[544,342].
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
vetri veeran
am 21 Nov. 2014
Kommentiert: vetri veeran
am 21 Nov. 2014
original_im=imread('Picture1.tif');
figure,imshow(original_im);
pad_org=padarray(original_im,[1 1],'both');
figure(3);imshow(pad_org)
for i=1:size(pad_org,1)-2
for j=1:size(pad_org,2)-2
window=zeros(25,1); %%Matrix to store the value of 5 by 5 window
win_inc=1;%%initial value of window matrix
for k=1:size(window,1)/5
for l=1:size(window,1)/5
window(win_inc)=pad_org(i+k-1,j+l-1);
win_inc=win_inc+1;
end
end
median=sort(window); %%arranging the window by ascending order
new_image(i,j)=median(13);%%13 is the median value of 5 by 5 window
end
end
new_image=uint8(new_image);
figure(4);imshow(new_image);title('Image After Median Filtering')
I am getting an error as
Attempted to access pad_org(1,343); index out of bounds because size(pad_org)=[544,342].
Error in medianfilter_withoutbuiltin (line 54) window(win_inc)=pad_org(i+k-1,j+l-1);
I am unable sort out this error.
Please help me.
Thanks
0 Kommentare
Akzeptierte Antwort
Geoff Hayes
am 21 Nov. 2014
Vetri - your window vector is of size 25x1, and your innermost for loop iterates, with the index l, from one to 5 (25/5). This index is used in the initialization of window at
window(win_inc)=pad_org(i+k-1,j+l-1);
where it is added to j which is the index that starts at one and ends at the number of columns of pad_org less two (so 340). So if j is 340, then when l is four we get
j+l-1 = 340+4-1 = 343
which falls outside the bounds on the number of columns of pad_org. You will need to rethink the window size, or iterate as
for j=1:size(pad_org,2)-4
instead.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!