??? Index exceeds matrix dimensions

4 views (last 30 days)
MatlabFan
MatlabFan on 11 Mar 2013
why do I get the error ??? Index exceeds matrix dimensions.
Error in ==> ImagExperiment at 38 g=rgb{N}(:,:,2); when trying to run the code:
A=cell(1,Num);
rgb=cell(1,Num);
for N=1:Num
rgb{N} = imread(sprintf('test_image_%d.png', N));
r=rgb{N}(:,:,1);
g=rgb{N}(:,:,2);
b=rgb{N}(:,:,3);
end
How can I solve this problem?
Your support will be well-appreciated. Thanks.

Accepted Answer

Jan
Jan on 11 Mar 2013
The error appears, if the corresponding picture is a grayscale image. So test this at first:
aRGB = imread(sprintf('test_image_%d.png', N));
if ndims(aRGB) == 3
r = aRGB(:, :, 1);
g = aRGB(:, :, 2);
b = aRGB(:, :, 3);
else
... any code to catch gray scale images, which are matrices
end
  1 Comment
MatlabFan
MatlabFan on 11 Mar 2013
Yes indeed Jan, it appears the picture is a grayscale image, but how do I capture the RGB values of each pixel in a grayscale image? more like:
aRGB = imread(sprintf('test_image_%d.png', N));
if ndims(aRGB) == 3
r = aRGB(:, :, 1);
g = aRGB(:, :, 2);
b = aRGB(:, :, 3);
else
r=?
g=?
b=?
end
Thanks.

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!