フィルターのクリア

Resize using GUI(Axis) not correct type...

1 回表示 (過去 30 日間)
JR
JR 2015 年 2 月 20 日
回答済み: Geoff Hayes 2015 年 2 月 22 日
I have a GUI, where the image is loaded in and displayed in an axis. I need to resize the image (handles.axes1) using the input arguments (ImageHeight,ImageWidth). The code prior to this point works without error. But when it gets to the code below, it gives this error:
AdjustedImage = imresize(handles.axes1,[ImageHeight,ImageWidth]);
*Error using imresize
Expected input number 1, A, to be one of these types:
numeric, logical
Instead its type was matlab.graphics.axis.Axes.
Error in imresize>parsePreMethodArgs (line 333)
validateattributes(A, {'numeric', 'logical'}, {'nonsparse', 'nonempty'}, mfilename, 'A', 1);*
How would I be able to resize, using the input Height and Width?
Thanks.

回答 (1 件)

Geoff Hayes
Geoff Hayes 2015 年 2 月 22 日
JR - your first input to the imresize function is the handle to the axes1 object and isn't an image which is required by the re-sizing function. In order to get around this, you can try the following - save the image to the handles structure (whenever you load it), do the resize on this image, and then show the resized image in the axes.
Suppose that you load the image in the OpeningFcn of your GUI. You could do something like
function myGui_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% load the image
myImg = imread('someImg.jpg');
% display the image in the axes
image(myImg,'Parent',handles.axes1);
% add the image to the handles structure
handles.myImg = myImg;
% update the handles structure
guidata(hObject, handles);
Now, in your callback that does the resizing, just do this
% resize the image
AdjustedImage = imresize(handles.myImg,[ImageHeight,ImageWidth]);
% show the image in the axes
image(AdjustedImage,'Parent',handles.axes1);
In the above I used image rather than imshow because I don't have the Image Processing Toolbox, so you can use whichever is convenient. Try implementing the above and see what happens!

カテゴリ

Help Center および File ExchangeImages についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by