Info

此问题已关闭。 请重新打开它进行编辑或回答。

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

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

回答(3 个)

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

Guillaume
Guillaume 2016-10-5
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