0

我已经构建了一个由 2 个视图组成的 matlab 应用程序,每个视图都知道另一个的句柄。主视图启动第二个视图并获取它的句柄。

然后subplot()在主视图中调用该函数并使用 显示图像imshow()。我想做的是在第二个视图中显示图像的几个细节,也可以使用subplot()andimshow()函数。

使用第二个视图的句柄,我从主视图调用第二个视图中定义的函数,该函数进一步调用 subplot() 和imshow()函数以获取详细信息。

发生的情况是主视图中的初始图像消失,被细节替换。谁能给我一个建议,以便我可以在主视图中显示图像,而在第二个视图中显示详细信息?

4

1 回答 1

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))
于 2012-07-11T22:34:45.100 回答