Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

why this gives me "Index exceeds matrix dimensions?" can any one help me. Thanks in advance

1 vue (au cours des 30 derniers jours)
Surya Gnyawali
Surya Gnyawali le 5 Oct 2016
Clôturé : MATLAB Answer Bot le 20 Août 2021
figure
img = imshow(stretched_CIR);
title('CIR after Decorrelation Stretch');
h = imfreehand;
m = createMask(h, img);
delete(h)
% Extract individual color channels
r = img(:,:,1);
g = img(:,:,2);
b = img(:,:,3);
%Now I evaluate for RGB color channels;
>> r = img(:,:,1);
%works but
>> g = img(:,:,2);
Index exceeds matrix dimensions.
%why?

Réponses (3)

Matthew Eicholtz
Matthew Eicholtz le 5 Oct 2016
Are you sure the image is RGB instead of grayscale? As the error suggests, the variable img must not have a 2 layer in the 3rd dimension.

Surya Gnyawali
Surya Gnyawali le 5 Oct 2016
The image is attached. Please advise

Guillaume
Guillaume le 5 Oct 2016
The problem is with
img = imshow('...')
As per the documentation of imshow, its return value is a handle to a graphics object, not an image. You need to load the image properly with imread:
img = imread(stretched_CIR);
%and if you want to see the image
imshow(img);

Community Treasure Hunt

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

Start Hunting!

Translated by