matlab onset,20140728 matlab用户交互部分

涉及鼠标的回调函数,参数适用全局变量来记录。

注意:1. 全局变量时需先声明;2. 左右键分别代表一类; 3. 计算涉及的区域占据的superpixels

global bg; % 全局变量 记录鼠标划过的背景像素

global fg; % 全局变量 记录鼠标划过的前景景像素

global bg_num ;

global fg_num ;

bg_num = 0;

fg_num = 0;

img = imread('img_view.jpg');

figure;

imshow(img); hold on

set(gcf,'WindowButtonDownFcn',@ButtonDownFcn); % 鼠标按下的响应

set(gcf,'WindowButtonUpFcn',@ButtonUpFcn); % 鼠标放下的响应

a=input('Any character end'); % 等待输入完成

function ButtonDownFcn(~,~)

set(gcf,'WindowButtonMotionFcn',@ButtonMotionFcn); % 设置鼠标移动响应

end

function ButtonUpFcn(src,event)

set(gcf, 'WindowButtonMotionFcn', ''); % 取消鼠标移动响应

end

function [x,y] = ButtonMotionFcn(~,~)

global bg;

global fg;

global bg_num;

global fg_num;

left = 0;

right = 0;

pt = get(gca,'CurrentPoint');

if strcmp(get(gcf,'SelectionType'),'alt')

left = 1;

elseif strcmp(get(gcf,'SelectionType'),'normal')

right = 1;

end

x = pt(1,1);

y = pt(1,2);

if left == 1

line(x, y, 'marker', '.', 'EraseMode', 'normal','Color',[.6 0 0]);

bg_num = bg_num +1;

bg(bg_num,:) = [x,y];

elseif right == 1

line(x, y, 'marker', '.', 'EraseMode', 'normal');

fg_num = fg_num +1;

fg(fg_num,:) = [x,y];

end

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值