besthl 发表于 2009-4-19 22:51

为什么不能同时imshow多个图像

我想同时打开两个图像,在gui里放了两个axes和两个按钮,按钮选择图像并显示在axes里面。现在的问题是显示一幅图没有问题,如果在打开了axes1中图像的情况下再想开axes2,或者是第二次开axes1,主界面都会被关闭,把imshow注释掉就没问题,麻烦指点一下。

两个按钮的callback基本是一样的;

function pushbutton1_Callback(hObject, eventdata, handles)
= uigetfile( ...
{'*.jpg;*.bmp;*.png;*.tif','Image Files (*.jpg;*.bmp;*.png;*.tif)';
   '*.*','All Files (*.*)'},...
   'Pick a file');
   file=strcat(pathname,filename);
    I=imread(file);
axes(handles.axes1);
handles.filenameI=file;
guidata(hObject, handles);
imshow(I);

lqbtbs 发表于 2009-4-20 12:08

你的第二個按鈕是這樣嗎?
function pushbutton2_Callback(hObject, eventdata, handles)      %<----第二個元件的程式編輯位置
= uigetfile( ...
{'*.jpg;*.bmp;*.png;*.tif','Image Files (*.jpg;*.bmp;*.png;*.tif)';
   '*.*','All Files (*.*)'},...
   'Pick a file');
   file=strcat(pathname,filename);
    I=imread(file);
axes(handles.axes2);   %<------顯示在第二個axes裡面
handles.filenameI=file;
guidata(hObject, handles);
imshow(I);


怪哉~我試OK說


[ 本帖最后由 lqbtbs 于 2009-4-20 12:16 编辑 ]

besthl 发表于 2009-4-21 11:22

很感谢你的回答,我也觉得是个莫名其妙的错误
我的第二个按钮是
function pushbutton2_Callback(hObject, eventdata, handles)
= uigetfile( ...
{'*.jpg;*.bmp;*.png;*.tif','Image Files (*.jpg;*.bmp;*.png;*.tif)';
   '*.*','All Files (*.*)'},...
   'Pick a file');
   file=strcat(pathname,filename);
    J=imread(file);
axes(handles.axes2);
handles.filenameJ=file;
guidata(hObject, handles);
imshow(J);

lqbtbs 发表于 2009-4-21 14:25

回复 板凳 besthl 的帖子

對了忘了問~版本是什麼的?

besthl 发表于 2009-4-21 15:57

版本是7.0.1

lqbtbs 发表于 2009-4-23 10:22

回复 5楼 besthl 的帖子

建議,重做一個試試看吧
先不管程式部份
先把圖像用出來吧
页: [1]
查看完整版本: 为什么不能同时imshow多个图像