Index exceeds matrix dimensions
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Index exceeds matrix dimensions.
Error in test (line 19) newgreen = c(:,:,2);
I got an error like this while running the below code;
a = imread('lena.tif');
%imread(a);
%imgsize = getImgSize('image.jpg')
imshow(a)
img = imfinfo('lena.tif')
%I = rgb2gray(a);
%figure
%imshow(I)
red = a(:,:,1);
imshow(red)
green = a(:,:,2);
imshow(green)
blue = a(:,:,3);
imshow(blue)
c = horzcat(red,green,blue);
imshow(c)
newred = c(:,:,1);
imshow(red)
newgreen = c(:,:,2);
%imshow(green)
%newblue = c(:,:,3);
%imshow(blue)
how could i solve this ?
2 commentaires
Ahmad Moniri
le 17 Juil 2017
Are you sure the image is RGB and not grayscale? What does size(a) return for you?
Guillaume
le 17 Juil 2017
If the error occurs at the indexing of c, then the image is definitively RGB. Otherwise, the error would occur at
red = a(:, :, 1);
Certainly, adding
assert(size(a, 3) == 3, 'Image is not RGB');
after the imread call would make the program more robust.
Réponse acceptée
Guillaume
le 17 Juil 2017
Modifié(e) : Guillaume
le 17 Juil 2017
how could i solve this ?
c = cat(3, red, green, blue);
You were contatenating your arrays horizontally, resulting in a array of size height x 3*width instead of an array height x width x 3.
Note that I don't see the purpose of your code. It creates c exactly the same as a, and newred, newgreen and newblue exactly the same as red, green, blue.
0 commentaires
Plus de réponses (0)
Voir également
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!