Clear Filters
Clear Filters

Info

This question is closed. Reopen it to edit or answer.

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

1 view (last 30 days)
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?

Answers (3)

Matthew Eicholtz
Matthew Eicholtz on 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 on 5 Oct 2016
The image is attached. Please advise

Guillaume
Guillaume on 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);

This question is closed.

Community Treasure Hunt

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

Start Hunting!