何大神之前做的pascal的gui,在同一张图片上多次添加的时候,都需要点击“添加”按钮,有点麻烦。
于是,在原有功能上,给“添加”按钮增加一个快捷键。
之前的代码:
function onClickAddGt(~, ~) if (isempty(currentImage)) errordlg('当前图片为空','无法添加标注'); return; end % 设置当前坐标轴 axes(currentImageAxes); [x, y] = ginputc(2, 'Color', 'r', 'LineWidth', 1); % 计算外接矩形框 bbs(1) = min(floor(x(1)), floor(x(2))); %xmin bbs(2) = min(floor(y(1)), floor(y(2))); %ymin bbs(3) = max(ceil(x(1)), ceil(x(2))); %xmax bbs(4) = max(ceil(y(1)), ceil(y(2))); %ymax obj = PASemptyobject(); obj.bbox = bbs; if (bbs(4) - bbs(2) <= 5 || bbs(3) - bbs(1) <= 5) errordlg('标注框长和宽必须大于5个像素','无效的标注框'); return; end currentGt.objects = [currentGt.objects; obj]; updateImageAndGt(); end
set(btnAddGt, 'Callback', @onClickAddGt);
set(gcf,'KeyPressFcn', @kpf); function kpf(~, ~) key = get(gcf, 'currentcharacter'); switch key case 'a' onClickAddGt; end end