ImagePosition, FigPosition, and AxisPosition perplexity

4 views (last 30 days)
Hello,
How to get the coordinates of the 4 corners of an image within a figure,
and how it relates to the figure position, the axis position, the xlimits, the ylimits, and possibly the PlotBoxAspectRatio.
also:
imshow('saturn.png');
% then eventually manipulate the figure position, the axis position, the xlim, the ylim.
%
% Why the following code below fails to get the proper image corners (lower left x-y point, width, height),
% in pixel units ?
axlim = get(gca,'Position')
fglim = get(gcf,'Position')
x1 = axlim(1)*fglim(3) + fglim(1);
x2 = (axlim(1)+axlim(3))*fglim(3) + fglim(1);
y1 = axlim(2)*fglim(4) + fglim(2);
y2 = (axlim(2)+axlim(4))*fglim(4) + fglim(2);
Thanks,
  1 Comment
Rik
Rik on 4 Apr 2023
I'm not entirely certain the size of the axes object will change if the image requires a smaller window. You might need to get the position of the image object (perhaps by querying the XData and YData properties).

Sign in to comment.

Answers (1)

Sandeep Mishra
Sandeep Mishra on 6 Dec 2024
Hi francois,
I understand that you want to find the four corners of an image within a figure.
To implement this, you can fetch the X and Y axis limits of the current axis using ‘XLim’ and ‘YLimproperty and based on that you can calculate the width and height of the image.
Refer to the following example code snippet to find the image corners:
% Load and display the image
img = imread('saturn.jpg');
imshow(img);
% Fetch axes limits
x_limits = get(gca, 'XLim');
y_limits = get(gca, 'YLim');
% Finding image staring points
x_start = x_limits(1);
y_start = y_limits(1);
% Calculating width and height of the image
width = x_limits(2) - x_limits(1);
height = y_limits(2) - y_limits(1);
% Image coordinates
image_coordinates = [
x_start, y_start;
x_start + width, y_start;
x_start + width, y_start + height;
x_start, y_start + height
];
For more information, refer to the following MathWorks Documentation:
  1. XLim' property: /https://www.mathworks.com/help/releases/R2024b/matlab/ref/xlim.html
  2. YLim’ property: https://www.mathworks.com/help/releases/R2024b/matlab/ref/ylim.html
I hope this helps!

Products

Community Treasure Hunt

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

Start Hunting!