Add custom x and y axes (not relevant to the image)

12 views (last 30 days)
Hi
I have an image with a 40x40 cm Field of View.
The image itself is a 432x432 pixel image so my workaround was to try scale the image by multiplying the values by 0.1, but it's not an ideal solution as it doesn't scale perfectly (using a scaling factor of 0.09259259259 ruins the axis) and also the axes dont start from the same zero point.
Is it possible to set a custom axes on the image to show 0-40 on the x and y axes? (instead of 40-0 on the y axis at the moment, reversing the axis currently flips the image).
conversion=0.1; % in cm/pixel
addMMx=@(x) sprintf('%1d',x*conversion);
addMMy=@(y) sprintf('%1d',y*conversion);
xticklabels(cellfun(addMMx,num2cell(xticks'),'UniformOutput',false));
yticklabels(cellfun(addMMy,num2cell(yticks'),'UniformOutput',false));
xlabel('cm')
ylabel('cm')
h = colorbar;
set(h,'YTick',[])
ylabel(h, 'Relative Temperature');

Accepted Answer

Rik
Rik on 25 Apr 2019
The code below should help. You can specify tick labels that have nothing to do with the ticks themselves.
%start out with a clean figure
figure(1),clf(1)
%get an example image to work with
h=image;im=h.CData;im=imresize(im,10);
%create the plot itself
imshow(im),colormap('jet')
caxis([0 32])%adjust color axis to fit the image
axis on
%calculate the locations of the ticks and the appropriate labels
FOV=40;
cm_ticks=0:5:40;
px_ticks_x=linspace(0.5,size(im,1)+0.5,numel(cm_ticks));
px_ticks_y=linspace(0.5,size(im,2)+0.5,numel(cm_ticks));
ticklabels=cellfun(@(v) sprintf('%d',v),num2cell(cm_ticks),...
'UniformOutput',false);
%apply ticks and custom ticklabels
set(gca,'XTick',px_ticks_x)
set(gca,'XTickLabels',ticklabels)
set(gca,'YTick',px_ticks_y)
set(gca,'YTickLabels',ticklabels(end:-1:1))
xlabel('cm')
ylabel('cm')
h = colorbar;
set(h,'YTick',[])
ylabel(h, 'Relative Temperature');
  4 Comments
Rik
Rik on 16 Apr 2021
@José Anchieta de Jesus Filho Have a read here and here. It will greatly improve your chances of getting an answer.
It is not immediately obvious to me how your question relates to this question. Please post it as a separate question thread. Feel free to post a link in this thread.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Properties 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!