使用Matlab编写简单的图片标注程序
最近在做数字图像处理大作业,本来想使用检测算法检测出图中车辆的位置,无奈水平有限,检测效果不佳,只能被迫使用matlab编写一个手动标注程序了。事实证明这真是项体力活,泪目。在学习的过程中优快云确实帮助了我很多,第一次在这里写帖子,只希望能记录下自己的工作,和大家一起分享,共同进步。
下面就简单介绍下自己编写的图片标注程序,不过在深度学习领域也有很多现有的软件可以完成标注,由于我需要标注的图片也不多,就懒得费心去找这些了,将就着用自己写的。
读取图片
读取图片部分就很简单啦,我就直接上代码:
axes(handles.axes1);%图片显示在期望的坐标系
[filename,pathname]=uigetfile({'*.bmp;*.jpg'},'Please Select an image',
'(你想要读取图片的存放路径)');
str=[pathname filename];
if isequal(filename,0)||isequal(pathname,0)
warndlg('Please select a picture first!','Warning');
return;
else
im=imread(str);
imshow(im);
end
注:掌握uigetfile函数的使用就很简单啦!
标注图片
使用鼠标框选的方式手动标注图片,部分代码如下:
k1=waitforbuttonpress;
point1=get(gca,'CurrentPoint');%获取鼠标左键点击的位置
finalRect=rbbox;
point2=get(gca,'CurrentPoint');%获取松开左键的点击位置
point1=point1(1,1:2);
point2=point2(1,1:2);
p1 = min(floor(point1),floor(point2));
p2