problem with cropping images across 6 images

i want to crop an image and automatically crop the other 5 images instead of cropping one by one. this is the code i used but i cannot seem to make the 5 other images appear.
[I1c rect] = imcrop(handles.axes2) axes(handles.axes2); imshow(I1c);
I2c = imcrop(handles.axes3, rect)
axes(handles.axes3);
imshow(I2c);
I3c = imcrop(handles.axes4, rect)
axes(handles.axes4);
imshow(I3c);
I4c = imcrop(handles.axes5, rect)
axes(handles.axes5);
imshow(I4c);
I5c = imcrop(handles.axes9, rect)
axes(handles.axes9);
imshow(I5c);
I6c = imcrop(handles.axes10, rect)
axes(handles.axes10);
imshow(I6c);
guidata(hObject,handles)

Antworten (1)

Image Analyst
Image Analyst am 1 Nov. 2012

0 Stimmen

You aren't cropping an image. You are cropping the handle to an axes control, NOT an image. Try something like this:
I2c = imcrop(I2, rect);
I3c = imcrop(I3, rect);
I4c = imcrop(I4, rect);
I5c = imcrop(I5, rect);
I6c = imcrop(I6, rect);

6 Kommentare

joanna
joanna am 2 Nov. 2012
must the images all be the same size in order for me to crop successfully?
Image Analyst
Image Analyst am 2 Nov. 2012
No.
joanna
joanna am 2 Nov. 2012
what must i assign I2 to? i tried I2 = imread(handles.axes2) but it shows no results
Image Analyst
Image Analyst am 2 Nov. 2012
Of course not. handles.axes2 is the ID number of an axes control - it's not a filename. You need to pass in a filename - that's a string, a character array - into imread().
joanna
joanna am 2 Nov. 2012
how do i obtain the character array if i have 2 types of arrays, an array of images captured by camera (captureButton_Callback) and an array of images loaded from folders (loadButton_Callback) ?
If you captured from a camera, they're in a variable, like
snappedImage = getsnapshot();
If you "have a type of array" where you loaded images from disk files in a folder then of course you must already have the filenames otherwise you would never have been able to "load" them, which you must have done via imread anyway, which is what you're trying to do, so that's ironic. OK, tell me this. When you "loaded an array of images loaded from folders" what lines of code did you actually use to accomplish that? Apparently you didn't use imread() because you're having trouble doing that now, so what did you do? How did you get that second type of array you mentioned - the one you loaded from folders? Did you follow the FAQ ( http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F>)? Or did you do something else? Or do you not have that second type of array yet?

Diese Frage ist geschlossen.

Gefragt:

am 1 Nov. 2012

Geschlossen:

am 20 Aug. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by