error : Index in position 3 exceeds array bounds (must not exceed 1).
73 次查看(过去 30 天)
显示 更早的评论
please help
I=imread('AFTER.tif');
[R C] = find(I(:,:,1)<100 & I(:,:,2)>0.2 & I(:,:,3)>10); error
imagesc(I)% a is the image
% rows and columns of area found by thresholding
n=randi([50 length(R)],1,300);%randomly generated indexes
r=R(n);c=C(n);% extraction of entries corresponding to randomly generated values in row and column vectors
for ii=1:length(n)
subpatch=I(r(ii)-75:r(ii)+75,c(ii)-75:c(ii)+75);%for patches of size 151 by 151
imwrite(subpatch,strcat('C:\Users\user\Documents\MATLAB\before\p',num2str(ii),'.tif') );
end
10 个评论
Jan
2019-7-2
Does this mean, that the problem is solved?
"i have jus added find(I >100);" - but we do not know where you have added this.
回答(1 个)
Rajani Mishra
2019-7-18
编辑:Rajani Mishra
2019-7-18
Hi,
I understand that you are facing the error – ‘Index in position 3 exceeds array bounds (must not exceed 1)’ while trying to access matrix ‘I’ used to store an image file.
Error exceeding array bounds is caused when you try to access an element out of matrix dimensions.
So before trying to access indices of matrix ‘I’ check whether it’s a RGB image or a grayscale image
as in case of grayscale image you should not have – ‘ I(:,:,3) or I(:,:2) ’.
To check whether it’s a RGB or grayscale image try :
st = imfinfo(filename);
st.ColorType
4 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!