情节的背景图像

时间:2015-01-31 15:34:35

标签: matlab matlab-figure

是否有一种简单的方法可以将位图图像放在Matlab图的背景中,该图不会填充整个可用空间并在调整图形大小时保持其纵横比?

TIA

2 个答案:

答案 0 :(得分:0)

我不太清楚你的意思

  

没有填满整个可用空间的情节

但是,以下解决方案可以帮助您解决问题(或至少让您入门)。

基本上读取图像(此处为灰度)并使用imagesc命令和grayscale色彩图显示它,然后发出hold on命令并绘制数据。请注意,您需要反转x轴的方向以获得绘图的正确方向。

以下是代码:

clear 
clc
close all

A = imread('cameraman.tif');

x = 1:10;
y = x;

figure

%// Notice the fliplr(A) to reverse the direction of the x data
imagesc([min(x(:)) max(x(:))], [min(y(:)) max(y(:))],fliplr(A));
colormap gray

%// Here reverse the direction of the x axis, otherwise the plot is
%// reversed
set(gca,'XDir','reverse')

hold on

plot(x,y,'--r')

axis off

结果:

enter image description here

如果你的背景图片是RGB,你可以使用image功能:(从回答here修改):你需要分别从每个通道的图像中翻转x数据,因为{{ 1}}只接受2D参数:

fliplr

,使用peppers.png图像,给出:

enter image description here

这是你的想法吗?如果没有,请告诉我!

答案 1 :(得分:0)

img = imread('myimage.png');

% set the range of the axes
% The image will be stretched to this.
min_x = 0;
max_x = 8;
min_y = 0;
max_y = 6;

% make data to plot - just a line.
x = min_x:max_x;
y = (6/8)*x;

imagesc([min_x max_x], [min_y max_y], img);
hold on;
plot(x,y);