??? Index exceeds matrix dimensions

1 次查看(过去 30 天)
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.

采纳的回答

Jan
Jan 2013-3-11
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 个评论
MatlabFan
MatlabFan 2013-3-11
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.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by