我已经构建了一个由2个视图组成的matlab应用程序,每个视图都知道对方的句柄。 主视图启动第二个视图并获取其句柄。
然后在主视图中调用函数subplot()
,并使用imshow()
显示图像。
我想要做的是在第二个视图中显示图像的几个细节,也可以使用subplot()
和imshow()
函数。
使用第二个视图的句柄,我从主视图调用第二个视图中定义的函数,该函数进一步调用subplot()和imshow()
函数以获取详细信息。
主要视图中的初始图像消失后会被细节取代。 任何人都可以给我一个建议,以便我可以在主视图中显示图像,同时在第二个视图中显示细节吗?
答案 0 :(得分:0)
您可能需要指定放置图像或数据的轴。 imshow
命令允许您指定用于显示Parent
参数的图像的轴。
将此与subplot
返回其创建的轴的句柄的事实相结合。
h = subplot(m,n,i) %# create a subplot axes
imshow(img,'Parent',h) %# display an image in the previously created axis
假设您可以在两组代码之间传递信息,则需要检索您希望图像显示的轴的句柄,并在调用imshow
时使用该句柄。这是一个例子
hFig = figure;
h(1) = subplot(2,2,1)
h(2) = subplot(2,2,2)
setappdata(hFig,'axisHandles',h) %# stores the axes handles in appdata of the figure
....
现在,当您想要在第一个图中显示一些图像时,您可以执行以下操作,假设您知道每个图形窗口的句柄。
h=getappdata(hFig,'axisHandles')
imshow(img,'Parent',h(1))