如何在matlab中绘制背景图像

时间:2015-05-13 17:32:18

标签: matlab plot background

我有3D空间中的线网络图,我也有一个来自对象的图像。现在我想将图像文件作为固定背景放在我的绘图背景中,然后应该在该背景上绘制网络。顺便说一下,由于网络处于3D空间,我可以轻松地旋转它,因此我也可以在我的组合图上旋转网络。

这是我写的代码,但它分别显示了我的情节!如果我把imshow放在图中,那么图像将被绘制在我的网络顶部,我只能看到我的网络的一个点。以下是Network的链接和background的背景图片 这是我的代码:第一行绘制图像,其余代码绘制我的网络线:

Img1 = imshow('STP1.png');
figure('name','Distance');
hold on;
labels = cellstr( num2str([1:SIFT_Length]') );  
text(SIFT_3D(:,1), SIFT_3D(:,2),SIFT_3D(:,3),labels,'FontWeight','bold','FontSize', 12,...
 'VerticalAlignment','bottom','HorizontalAlignment','right')
title('Distances Network with colorized lines based on Uncertainty','FontWeight','bold');
hold on
for k = 1:Num_Line_SIFTS
       plot3([SIFT_3D(Line_among_2_Sifts(k,1),1),SIFT_3D(Line_among_2_Sifts(k,2),1)],...
       [SIFT_3D(Line_among_2_Sifts(k,1),2),SIFT_3D(Line_among_2_Sifts(k,2),2)],...
       [SIFT_3D(Line_among_2_Sifts(k,1),3),SIFT_3D(Line_among_2_Sifts(k,2),3)],...
       'o-','Color',[RGB_0_1(k,1) RGB_0_1(k,2) RGB_0_1(k,3)],'MarkerFaceColor',[RGB_0_1(k,1) RGB_0_1(k,2) RGB_0_1(k,3)],'MarkerEdgeColor',...
       'k', 'LineWidth',2)
 end
hold off;

请帮助我如何解决这个问题。

2 个答案:

答案 0 :(得分:4)

这个怎么样:

clear
clc
close all


%// Read image
Im=flipud(imread('STP1_low.png'));

%// Dummy surface to plot.
Z = peaks(25);

%// Prepare image position
shift = 20;
xIm=zeros(size(Z))-shift;

hold on
surface(xIm,Im,'FaceColor','texturemap','EdgeColor','none','CDataMapping','direct')
surface(Z,'FaceAlpha',0.8,'LineStyle','none','FaceColor','interp');
axis on
view(-35,45)

box on
rotate3d on

输出:

enter image description here

您可以旋转它,图像保留为背景。

答案 1 :(得分:3)

我不确定我是否了解你的需要,不过......

figure('name','Distance','unit','normalized');

a=axes('position',[0 0 1 1])
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% UPDATED CODE STARTS HERE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Disable zoom
h=zoom;
setAllowAxesZoom(h,a,false);
% Disable rotation
h = rotate3d;
setAllowAxesRotate(h,a,false) 
%
%%%%%%%%%%%%%%%%%%%%%%%%%%
% UPDATED CODE ENDS HERE
%%%%%%%%%%%%%%%%%%%%%%%%%%
%
hold on
imshow('Jupiter_New_Horizons.jpg','parent',a)

t=0:.01:2*pi;
z=sin(t).*cos(t)
a1=axes('position',[0.3 0.3 .5 .5])

plot3(cos(t),sin(t),z,'r','linewidth',3)
grid on
set(gca,'color','none')

此脚本生成以下图表:

enter image description here

希望这有帮助。