您的位置:首页 > 编程语言 > MATLAB

matlab GUI 简单样本标注操作

2016-09-12 22:39 453 查看
对于深度学习来说,一般要设计成熟稳定的扣样本程序。我见过的多是Python,C++ 和 Qt 等制作的抠图程序。当需要对样本抠图程序简要修改以符合最新研究进展的代码测试时,其实也可以做一个简单的matlab GUI 界面,完成简单样本的操作。

本文主要提供matlab GUI下鼠标点击图像输出坐标点,和图中框选bounding box的部分代码,均为最基础代码,易修改。

(1)鼠标点击输出坐标点函数

function printfpoint()
% 输出点函数
set(gcf,'WindowButtonDownFcn',@ButttonDownFcn);

function ButttonDownFcn(src,event)
pt = get(gca,'CurrentPoint');
x = pt(1,1);
y = pt(1,2);
z = pt(1,3);
fprintf('x=%f,y=%f,z=%f\n',x,y,z);


(2)框选bounding box部分

对于需要对样本标注bounding box的情况,主要需要进行以下几个操作:对鼠标点击的响应,对bounding box的绘制,和标注框的坐标输出。在最简单的输出box点击的两个角坐标的情况下,其代码如下:

k = waitforbuttonpress;
point1 = get(gca,'CurrentPoint');    % 检测鼠标点击
finalRect = rbbox;                   % 图像单元return
point2 = get(gca,'CurrentPoint');    % 检测鼠标松开,box绘制结束
point1 = point1(1,1:2);              % 提取box的坐标
point2 = point2(1,1:2);
p1 = min(point1,point2);             % 计算位置
offset = abs(point1-point2);         % 计算维度
x = [p1(1) p1(1)+offset(1) p1(1)+offset(1) p1(1) p1(1)];
y = [p1(2) p1(2) p1(2)+offset(2) p1(2)+offset(2) p1(2)];
hold on
axis manual
plot(x,y)                            % 绘制box
fprintf('x=%f,y=%f\n',point1,point2);% 输出坐标


(3)简单GUI设计

主页-新建-图形用户界面,设计简单的GUI,将对应函数添加对应块中,如下图:



输出为3个box的坐标位置:

>> sample
x=311.402743,y=78.066085
x=608.260599,y=376.839152
x=6.884040,y=344.280549
x=229.048628,y=556.869077
x=759.562344,y=108.709476
x=1014.285536,y=392.160848
>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab gui