Effacer les filtres
Effacer les filtres

??? Index exceeds matrix dimensions

2 vues (au cours des 30 derniers jours)
MatlabFan
MatlabFan le 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.

Réponse acceptée

Jan
Jan le 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 commentaire
MatlabFan
MatlabFan le 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by