matlab gui中图像保存在axes中的问题 20

matlabgui中图像保存在axes中的问题:我想在GUI中进行图像处理,把原图放在axes1中,处理后的图片放在axes2中,怎么才能实现?以下是我写的代码:func... matlab gui中图像保存在axes中的问题:我想在GUI中进行图像处理,把原图放在axes1中,处理后的图片放在axes2中,怎么才能实现?以下是我写的代码

function pushbutton3_Callback(hObject, eventdata, handles)

[name,path]=uigetfile({'*.jpg';'*.bmp';'*.gif';'tif'},'选择图片');
clc;
global x;
file=[path,name];

axes(handles.axes1);

x=imread(file); %读取图像

handles.img=x;

% Update handles structure
guidata(hObject, handles);
imshow(x); %显示图像
title('原始图像');
到这里是显示读取的待处理图片,显示在axes1中,一切正常,再添加了下面的程序:
function pushbutton1_Callback(hObject, eventdata, handles)

se=[0,1,0;1,1,1;0,1,0];
global x;
x=double(x);
[im_height,im_width]=size(x);
[se_height,se_width]=size(se);
halfheight=floor(se_height/2);
halfwidth=floor(se_width/2);
[se_origin]=floor((size(se)+1)/2);
image_dilation=padarray(x,se_origin,0,'both'); %Image to be used for dilation
image_erosion=padarray(x,se_origin,256,'both'); %Image to be used for erosion

%%% Erosion
se=se';
for k=se_origin(2)+1:im_height+se_origin(2)
for kk=se_origin(1)+1:im_width+se_origin(1)
eroded_image(k-se_origin(2),kk-se_origin(1))=min(min(image_erosion(k-se_origin(2):k+halfwidth-1,kk-se_origin(1):kk+halfheight-1)-se));
end
end
imwrite(eroded_image,'膨胀.jpg');
guidata(hObject, handles);
axes(handles.axes1);
imshow(eroded_image);
title('处理后图像');
到这里,运行时,点击按钮1时,图片没有按预想的显示在axes2中,而是占满了整个GUI窗口。请问该如何修改,望高手解答!!
展开
 我来答
社南棠华33
2010-06-17 · TA获得超过815个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:272万
展开全部
程序没报错的话,倒数第五行
axes(handles.axes2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式