GUI Resize Image, but not updating in axes
2 views (last 30 days)
Show older comments
jake stan
on 28 Apr 2018
Commented: Walter Roberson
on 28 Apr 2018
I'm trying to resize an image, but the image itself within the axes stays the same in the gui no matter what scale factor I input
function upload_Callback(hObject, eventdata, handles)
% hObject handle to upload (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[File, Path] = uigetfile({'*.*';'*.jpg';'*.png';'*.bmp'}, 'Image to be displayed');
filename = [Path, File];
image = imread(filename);
axes(handles.imgframe);
hold off
resize(filename, 4);
function resize(file, factor)
//Above all resize code did not include in the question
//figure();
imshow(img1_nearest);
end
my resize function works on its on when I put it in to a figure, but I'm trying to put the resize image back to the axes to display it. The image size is the same no matter what scale factor I put
Accepted Answer
Walter Roberson
on 28 Apr 2018
Edited: Walter Roberson
on 28 Apr 2018
imshow() only automatically resizes the figure if the current axes is in the "default" position that would occur if the axes were the only thing in the figure.
imshow() never resizes just an axes by itself.
If you want to fit an axes around an image, then set the InnerPosition to be the same size as image (watch out that X is columns not rows), and set the axes DataAspectRatio to [1 1 1]. This will probably leave a gap around the axes for small images, and will probably cause the axes to overlap your other controls if you display a large enough image.
2 Comments
Walter Roberson
on 28 Apr 2018
Sorry, I should have said Position; https://www.mathworks.com/help/matlab/ref/matlab.graphics.axis.axes-properties.html#budumk7_sep_shared-Position
More Answers (0)
See Also
Categories
Find more on Migrate GUIDE Apps in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!