是否有一种简单的方法可以将位图图像放在Matlab图的背景中,该图不会填充整个可用空间并在调整图形大小时保持其纵横比?
TIA
答案 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
结果:
如果你的背景图片是RGB,你可以使用image
功能:(从回答here修改):你需要分别从每个通道的图像中翻转x数据,因为{{ 1}}只接受2D参数:
fliplr
,使用peppers.png图像,给出:
这是你的想法吗?如果没有,请告诉我!
答案 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);