2012-03-21 98 views
2

我正在使用MATLAB来创建GUI。我有一个启用了datacursormode的图像。这工作正常,每次我点击一个新点添加。对于每个点,MATLAB都会显示一个包含坐标的框(或其他任何文本,我使用更新函数对其进行了修改)。但是我怎样才能删除这个文本框,我只想添加一个点,不应该显示额外的信息?MATLAB使用数据光标时隐藏数据光标盒

谢谢!

回答

1

datacursormode on用于启用图形对象上的数据提示显示。换句话说,你想隐藏的文本框。那么使用数据光标的理由是什么?

您是否正在使用数据光标的UpdateFcn“添加像素”(您可能意思是更改像素颜色)?考虑使用ButtonDownFcn回拨函数。

function interactive_image(im) 
    fh = figure; 
    hImage = imshow(im); 
    set(hImage,'ButtonDownFcn',@myfunction) 
end 

function output_txt = myfunction(obj,eventdata,handles) 
    pos = get(gca,'CurrentPoint') 
    x = get(obj,'CData'); 
    x(uint32(pos(1,2)),uint32(pos(1,1))) = 0; 
    set(obj,'CData',x) 
end 

UPDATE

根据您的评论您更好地使用Image Processing Toolbox中可用IMPOINT功能。

+0

除了盒子,它做我想要的:把点放在我的图像上,可以拖动和删除/删除。我可以使用ButtonDownFcn回调并按照您的说法注册CurrentPoint,但是接下来我将不得不为自己的拖放/点删除编写代码? – user1254962 2012-03-21 16:41:05

+0

查看我的更新回答。 – yuk 2012-03-21 16:56:06

+0

这似乎正是我需要的,谢谢!:) – user1254962 2012-03-21 17:08:28