error : Index in position 3 exceeds array bounds (must not exceed 1).

조회 수: 160 (최근 30일)
Akash Kuber
Akash Kuber 2019년 7월 2일
댓글: Anu Sebastian 2021년 3월 9일
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
Akash Kuber
Akash Kuber 2019년 7월 2일
편집: Stephen23 2019년 7월 2일
this is the code it works not giving out rgb image but greyscale image
clc;clear all;close all
%samle 3D matrix, e.g. can be an RGB image
a=imread('BEFORE.tif') ;
size(i);
[R, C] = find(I(:,:,1)<1450);
imagesc(I)% a is the image
% rows and columns of area found by thresholding
n=randi([1 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
Jan
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
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
Walter Roberson
Walter Roberson 2021년 2월 24일
Your image 1.jpg is not an rgb image.
Anu Sebastian
Anu Sebastian 2021년 3월 9일
Thank you for your reply sir

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Images에 대해 자세히 알아보기

태그

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by