How to insert image in MatLab

711 visualizaciones (últimos 30 días)
Emily Smith
Emily Smith el 3 de Oct. de 2016
Editada: DGM el 20 de Feb. de 2023
I want to insert an image at (0,0) on a plot. How would I do this and how can I determine the size? And also do I need to convert the image to a png?
Thanks!

Respuestas (3)

Jakub Rysanek
Jakub Rysanek el 4 de Oct. de 2016
imread() can import whole bunch of graphical data types, including .jpg and .png. Conversion to .png, as you ask, is not necessary.
img = imread('filename.png');
image(img);
To alter the size/positioning of the image within your figure, you can touch the underlying axes object:
x = 0;
y = 0;
width = 0.5;% measured relative to the figure width
height = 0.5;% measured relative to the figure height
set(gca,'units','normalized','position',[x y width height])

Gareth Thomas
Gareth Thomas el 3 de Oct. de 2016

DGM
DGM el 20 de Feb. de 2023
Editada: DGM el 20 de Feb. de 2023
There are a lot of views on this vague question, so maybe I should put an answer here that might be more complete.
% some data in a plot
t = linspace(0,pi,100);
y = sin(2*t);
plot(t,y); hold on; grid on
% an image
FG = imread('cameraman.tif');
% i'm going to expand the image to make sure it's RGB
% this avoids issues dealing with colormapped objects in the same axes
if size(FG,3) == 1
FG = repmat(FG,[1 1 3]);
end
% the origin of an image is the NW corner
% so in order for both the plot and image to appear right-side up, flip the image
FG = flipud(FG);
% insert an image in a particular region in the current axes
% this uses image(); similar can be done with imshow()/imagesc()
image(FG,'xdata',[0 pi/4],'ydata',[0 pi/4])
axis equal
To find the size of an image, use size(), or see this thread.
To save an image, use imwrite(). To save a screenshot of a figure as an image, use saveas(), exportgraphics(), or a combination of getframe(), frame2im(), and imwrite(). Again, if the image you want to save is already in the workspace, save it using imwrite(), not by taking a screenshot of it.
% save a screenshot of the plot with overlaid image
saveas(gcf,'myplot.png')
% save a copy of the modified foreground image
imwrite(FG,'mycman.png')
Avoid using JPG for anything, especially saving figures.

Categorías

Más información sobre Images en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by