使用GUIDE在GUI中显示“imshow”图像

时间:2013-05-29 12:43:15

标签: matlab user-interface matlab-guide

我有一段300行的代码。整个代码中有3个不同的imshow实例,在代码运行时显示数字。 我正在创建的GUI将非常简单。目前我有一个启动m文件的按钮。 我试图让图像显示在我正在创建的GUI中,而不是在单独的图窗口中。 我一直在网上看教程,但无法快速解决我的问题,他们都有点复杂,我无法弄清楚究竟要做什么。

我将3轴插入到GUI上,在"视图中回调"对于每个轴我可以创建fcn,deletefcn和buttonDownFcn。当我创建它时,它给了我一个提示,以便在OpeningFcn中放置代码来填充axes1"在自动生成的代码中。

我试过这样做,但我找不到写代码的正确位置。

有人可以告诉我,我是朝着正确的方向前进,还是我错了。

由于

2 个答案:

答案 0 :(得分:2)

要显示这些图像,您需要在imshow中声明父级。父级是您希望充当图像画布的内容,在您的情况下将是axes

我用三个轴和一个按钮创建了一个非常简单的gui。 MATLAB将我的轴命名为axes1axes2axes3。指南将句柄保存到这些轴,以便您可以在整个gui代码中与它们进行交互。例如,你提到了打开函数...这是我的一个调用imshow(我添加的唯一行是最后三行):

% --- Executes just before myGUI is made visible.
function myGUI_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for myGUI
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes myGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);
imshow('myImage1.png', 'Parent', handles.axes1)
imshow('myImage2.png', 'Parent', handles.axes2)
imshow('myImage3.png', 'Parent', handles.axes3)

请注意,我可以抓住我的轴的句柄,然后将它们声明为我imshow调用结果的父母。

如果您不确定句柄的名称是什么,可以通过右键单击,查看属性检查器和tag属性来检查GUI编辑器。

如果您想在单击按钮时执行类似的操作,请右键单击编辑器中的按钮,然后单击查看回调 - >回调,您可以在那里添加imshow代码。

祝你好运。

答案 1 :(得分:1)

如果我理解正确,您只希望图像显示在轴而不是图形中。在显示图像之前,请尝试将焦点设置到轴本身。

    axes(1);%you may need to change the one to your axes handle. 
    imagesc(imageToBeDisplayed);

    axes(2);
    imagesc(secondImage);

    axes(3);
    imagesc(thirdImage);

这样,在调用imagesc之前,请确保程序知道将图像发送到何处。否则它可能只是创建一个数字。