我有一段300行的代码。整个代码中有3个不同的imshow实例,在代码运行时显示数字。 我正在创建的GUI将非常简单。目前我有一个启动m文件的按钮。 我试图让图像显示在我正在创建的GUI中,而不是在单独的图窗口中。 我一直在网上看教程,但无法快速解决我的问题,他们都有点复杂,我无法弄清楚究竟要做什么。
我将3轴插入到GUI上,在"视图中回调"对于每个轴我可以创建fcn,deletefcn和buttonDownFcn。当我创建它时,它给了我一个提示,以便在OpeningFcn中放置代码来填充axes1"在自动生成的代码中。
我试过这样做,但我找不到写代码的正确位置。
有人可以告诉我,我是朝着正确的方向前进,还是我错了。
由于
答案 0 :(得分:2)
要显示这些图像,您需要在imshow中声明父级。父级是您希望充当图像画布的内容,在您的情况下将是axes
。
我用三个轴和一个按钮创建了一个非常简单的gui。 MATLAB将我的轴命名为axes1
,axes2
和axes3
。指南将句柄保存到这些轴,以便您可以在整个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之前,请确保程序知道将图像发送到何处。否则它可能只是创建一个数字。