Hi I have a problem croping an image. This is my code but everytime it throws me an error that says "Index exceeds matrix dimensions". In matlab2008 it worked fine, I really don´t know why in matlab2014 throws me this error.
[filename pathname] = uigetfile({'*.jpg';'*.bmp';'*.tiff'},'File Selector');
images = strcat(pathname, filename);
axes(handles.axes1);
imshow(images);
axes(handles.axes2);
im = imread (images);
e1a1=im(200:1000,2:500);
imagesc(e1a1);

 Réponse acceptée

Image Analyst
Image Analyst le 26 Nov 2015

0 votes

The image in R2008 was either bigger than 1000 by 500, or it was grayscale. You're either now using a smaller image, or a color one.
fullFileName = fullfile(pathname, filename);
im = imread(fullFileName );
[rows, columns, numberOfColorChannels] = size(im);
if rows < 1000 && columns < 500
message = sprintf('Error: this image is too small.\nIt has %d rows and %d columns\nand needs at least\n1000 rows and at least 500 columns', rows, columns);
uiwait(errordlg(message));
return;
end
if numberOfColorChannels > 3
% Color image
e1a1 = im(200:1000, 2:500, :);
else
% Grayscale image
e1a1 = im(200:1000, 2:500);
end

Plus de réponses (0)

Catégories

En savoir plus sur Images dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by