matlab显示像素分布,MATLAb-----7--------如何动态显示鼠标的坐标值和图像像素值

MATLAB如何动态显示鼠标的坐标值和图像像素值

http://apps.hi.baidu.com/share/user/41caedc2bda36d61746c6162330a

(1)fix(x) : 截尾取整.

>> fix( [3.12 -3.12])

ans =

3 -3

(2)floor(x):不超过x 的最大整数.(高斯取整)

>> floor( [3.12 -3.12])

ans =

3 -4

(3)ceil(x) : 大于x 的最小整数

>> ceil( [3.12 -3.12])

ans =

4 -3

(4)四舍五入取整

>> round(3.12 -3.12)

ans =

0

>> round([3.12 -3.12])

ans =

3 -3

对于动态显示鼠标的坐标值和像素值,在其他语言如vc,vb中都比较方便,有直接的着方面的函数,那么在matlab图像处理里面又如何实现呢? 具体的实现方法很多,但归结起来就是获取坐标轴的current point 属性值,我这里给出的一个函数是从mathworks 获取柄稍作修改后的结果,相信对做图像处理的朋友有一定的作用。另一个就是自带的pixval函数。谁有不同的实现方法,请多多共享啊! function dynpoint(arg,h) % Show the coordinates of a plot dynamically % % To start use: % dynpoint(h) % where h is a handle to a figure, axes or e.g. line. % % To delete use: % dynpoint('delete',h) % where h is a handle to a figure, axes or e.g. line. % (you may also use: dynpoint delete) % % There can only be one dynamic plotter in a figure at a time. % % Example: % subplot(211), hline = plot(sin(1:10)) % subplot(212), plot(sin(1:100)) % dynpoint(hline) % 2002,6.29 if ~exist('arg','var') arg = gcf; end if ~isstr(arg) handle = arg; arg = 'init'; end switch arg case 'init' if ~ishandle(handle) error('h is not a handle') end [h,ax] = h2hax(handle); % delete old dynamic text object ht = findobj(h,'tag',[mfilename '_text']); if any(ht) delete(ht) end % text window at the bottom left corner % text in centred uicontrol(h,... 'style','text',... 'pos',[2 2 200 15],... 'tag',[mfilename '_text'],... 'userdata',ax(1)) % do the dynamic thing... set(h,'windowbuttonmotionfcn',[mfilename ' move']) case 'move' ht = findobj(gcbf,'tag',[mfilename '_text']); ax = overobj('axes'); if ~any(ax) ax = get(ht,'userdata'); end p = get(ax,'currentpoint'); set(ht,'string',sprintf('(%g, %g)', p(1), p(3))); case 'delete' if ~exist('h','var') h = gcf; end [h,ax] = h2hax(h); set(h,'windowbuttonmotionfcn','') ht = findobj(h,'tag',[mfilename '_text']); delete(ht) end % ---------- function [h,ax]=h2hax(handle) typ = get(handle,'type'); if strcmp(typ,'figure') h = handle; ax = findobj(h,'type','axes'); elseif strcmp(typ, 'axes') h = get(handle,'parent'); ax = handle; elseif strcmp( get(get(handle,'parent'), 'type'), 'axes' ) ax = get(handle,'parent'); h = get(ax,'parent'); end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值