2011-04-16 14 views
0

嗨我想创建一个GUI链接到我的3米文件。在Matlab中,如何创建一个GUI来与3个现有的m文件进行交互?

1)findcontrolpoints.m 2)morph.m 3)morphvideo.m

在1)中,我需要的点的数量的用户输入。输入将被输入到GUI中,然后我希望将该变量传递给findcontrolpoints.m文件进行处理。这将通过按下按钮1完成。有没有办法做到这一点?

function inputpoints_Callback(hObject, eventdata, handles) 
% hObject handle to inputpoints (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of inputpoints as text 
%  str2double(get(hObject,'String')) returns contents of inputpoints as a double 
input = str2num(get(hObject, 'String')); 

if (isempty(input)) 
    set(hObject, 'String', '50') 
end 
guidata(hObject, handles); 


% --- Executes on button press in pushbutton1. 
function pushbutton1_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% hMainGui = getappdata(0, 'hMainGui'); 

% fileName = uigetfile('*.jpg'); 
points = get(handles.inputpoints,'String'); 

findfeaturepoint(points); 

回答

1

会是这样的工作吗?我刚刚从另一个项目中重新使用了一个旧的GUI,所以你几乎可以摆脱所有选项,它仍然可以工作。

function interface 
% Main figure 
figure('units','normalized',... 
    'position',[0.25 0.25 0.5 0.5],... 
    'color',[1 1 1]*0.5,... 
    'numbertitle','off',... 
    'name','Interface',... 
    'menubar','none',... 
    'toolbar','none',... 
    'tag','main'); 
% Data structure 
data=guihandles(gcf); 
% Input field 
uicontrol('parent',data.main,... 
    'style','text',... 
    'string','Number of points',... 
    'horizontalalignment','center',... 
    'backgroundcolor',[1 1 1]*0.5,... 
    'units','normalized',... 
    'position',[0.4 0.7 0.2 0.1]); 
uicontrol('parent',data.main,... 
    'style','edit',... 
    'horizontalalignment','center',... 
    'string','0',... 
    'backgroundcolor',[1 1 1],... 
    'units','normalized',... 
    'enable','on',... 
    'position',[0.4 0.6 0.2 0.1],... 
    'tag','input'); 
% Submit 
uicontrol('parent',data.main,... 
    'style','pushbutton',... 
    'string','Submit',... 
    'units','normalized',... 
    'enable','on',... 
    'position',[0.4 0.45 0.2 0.1],... 
    'tag','submit',... 
    'callback',@submit); 
% Data structure 
data=guihandles(gcf); 
% Program parameters 
data.default=50; 
% ... % 
guidata(gcf,data); 
end 
% Callbacks 
function submit(obj,event) %#ok 
% Data structure 
data=guidata(gcbf); 
input=get(data.input,'string'); 
% Input validation 
% ... % 
% Functions call 
% ... % 
guidata(gcbf,data); 
end 

你只需要在输入值后调用你的三个函数。

相关问题