Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-11-02, 10:49   #1
song212
初级会员
 
注册日期: 2009-10-31
年龄: 38
帖子: 1
声望力: 0
song212 正向着好的方向发展
难过 matlab gui 参数传递问题

我是新手,希望编写一个能够读入图像,显示图像,然后有鼠标移动时可以捕捉信息的界面,
function GetMousePointer
global handles
global im
clc
close all
hMainFig=figure('name','鼠标捕捉点坐标','number','off','menubar','none',...
'units','normalized','tag','hMainFig');
set(hMainFig,'units','normalized','position',[.02,.02,.8,.8]);
set(hMainFig,'defaultuicontrolfontname','隶书');
set(hMainFig,'defaultuicontrolfontsize',13);
set(hMainFig,'defaultuicontrolunits','normalized');
set(hMainFig,'pointer','arrow');
handles.im = dicomread('f:\RCM\RCM\27419_000001_1.2.840.113619.2.67.2202447239.13929081219131230.10001');
imshow(handles.im,[]);
min_gray = min(min(handles.im));
max_gray = max(max(handles.im));
width = max_gray-min_gray;
center = fix((min_gray+max_gray)/2);

set(hMainFig,'WindowButtonMotionFcn',@ShowPointData);
hText11=uicontrol(hMainFig,'style','text','position',[.15,.20,.05,.05],'string','min:');
hText12=uicontrol(hMainFig,'style','text','position',[.2,.20,.25,.05],'tag','hText12','string',num2str(min_gray));
hText13=uicontrol(hMainFig,'style','text','position',[.15,.15,.063,.05],'string','max:');
hText14=uicontrol(hMainFig,'style','text','position',[.21,.15,.24,.05],'tag','hText14','string',num2str(max_gray));
hText21=uicontrol(hMainFig,'style','text','position',[.502,.20,.07,.05],'string','width:');
hText22=uicontrol(hMainFig,'style','text','position',[.572,.20,.25,.05],'tag','hText22','string',num2str(width));
hText23=uicontrol(hMainFig,'style','text','position',[.502,.15,.08,.05],'string','center:');
hText24=uicontrol(hMainFig,'style','text','position',[.582,.15,.24,.05],'tag','hText24','string',num2str(center));
% hText24=uicontrol(hMainFig,'style','pushbutton','position',[.582,.15,.24,.05],'tag','button1');
handles=guihandles(hMainFig);
guidata(hMainFig,handles);
% set(hMainFig,'windowButtonDownFcn',@WritePointData)
guidata(hMainFig,handles)

function ShowPointData(hObject, eventdata, handles)
global handles
global im
% handles=guihandles(hMainFig);
img_size = size(handles.im);
p=get(gca,'currentpoint');
if p(1)>=0&&p(3)>=0&&p(1)<=img_size(1)&&p(3)<=img_size(2)
set(handles.hMainFig,'pointer','cross');
set(handles.hText12,'string',num2str(p(1)));
set(handles.hText22,'string',num2str(p(3)));
end
guidata(hObject,handles)

这是我借鉴另一位网友的程序做了一些小的修改,在ShowPointData程序段希望只在图像范围内有鼠标移动的响应,但不知道怎么将图像参数传递进来,每次运行都是“??? Reference to non-existent field 'im'.”
的错误,不知道应该怎么解决,请各位高手帮帮忙吧~~~~
song212 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 09:02


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.