Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-10-31
年龄: 38
帖子: 1
声望力: 0 ![]() |
![]()
我是新手,希望编写一个能够读入图像,显示图像,然后有鼠标移动时可以捕捉信息的界面,
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'.” 的错误,不知道应该怎么解决,请各位高手帮帮忙吧~~~~ |
![]() |
![]() |