图像标注(bounding box/分割segmentation)工具 推荐 [附MATLAB Training Image Labeler 工具]

1.Bounding Box

推荐LabelImg:https://github.com/tzutalin/labelImg 点击打开链接

 在ubantu下配置使用很方便,最后生成文件.xml,目前不能导出标注后bbox的图片格式文件。


2.图片分割 segmentation

**推荐labelme:https://github.com/wkentaro/labelme 点击打开链接

 画多边形,像素级别的图像标注,标注后生成 .json.

 

**https://github.com/lzx1413/LabelImgTool 点击打开链接

 这个图像标注工具和LabelImg很相似,在效果图和TODO list中列出了 instance segmentation,可以期待一下。

3. MATLAB Training Image Labeler工具的使用 

**我使用的版本的是MATLAB2016a, 

 a.. 在MATLAB命令行窗口输入 trainingImageLabeler

 b.. 点击Add Images 和 ROI 就可以对感兴趣的区域标注了。 



 c.. 点击Export ROIs -> ok 默认即可。 这会在当前的Workspace建立一个名为positiveinstances的变量,存储着ROI信息。

d.. save session 之后会输出一个mat文件,内部存储当前session加载的所有图像路径和ROI位置。

e.. 如果需要存储切割的ROI区域,可以使用如下代码 (来源于:http://blog.csdn.net/tsyccnh/article/details/50812632)

session_folder = 'C:\Users\Qing\Desktop';%session目录  
output_folder = 'C:\Users\Qing\Desktop';%输出目录  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
fileFolder=fullfile(session_folder);  
dirOutput=dir(fullfile(fileFolder,'*.mat'));  
fileNames={dirOutput.name};  
  
for fileName = fileNames  
    file_full_name = strcat(session_folder,'\',fileName);  
    Save_Raw_Samples_ROIs(char(file_full_name),output_folder);  
end

 Save_Raw_Samples_ROIs() :

%作者:史丹利复合田  
%日期:2016年3月  
%函数说明:读取通过MATLAB Training Image标记并保存的labelingSession数据,将  
%这些标记的ROI区域转换成bmp图片并存储。图片的名称采用了时间+序号的存储方式,  
%所以多次读取这一函数并将结果存入同一文件夹也不会造成命名冲突  
%示例调用方式 Save_Raw_Samples_ROIs('E:\TSY\Code\labelingSession.mat','G:\Samples\2016-3-5');  
%**************************************************************************  
%第一个参数:通过MATLAB Training Image  
%Labeler工具导出的labelingSession数据,为mat格式,这里只需输入其全路径即可,如'C:\labelingSession.mat'  
%第二个参数:为待导出的文件存储的文件夹,如'G:\Samples\2016-3-1'  
%所有标记过的图像从0开始索引为文件名进行存储  
function Save_Raw_Samples_ROIs(labelingsession_data_path,output_path)  
roi_info = load(labelingsession_data_path);  
image_counts = size(roi_info.labelingSession.ImageSet.ROIBoundingBoxes,2);%struct结构与普通矩阵的索引方式不同,第一个为列,第二个为行  
roi_index = 0;  
pause(1);%延时1s,确保不会出现重命名  
current_time = datestr(now,'yyyy-mm-dd-HH-MM-SS_');  
if ~isdir(output_path) %判断路径是否存在  
    mkdir(output_path);  
end  
for i = 1:image_counts%对每张图依次处理,提取ROI区域  
image_info = roi_info.labelingSession.ImageSet.ROIBoundingBoxes(i);  
image = imread(image_info.imageFilename);  
box_rows = size(image_info.objectBoundingBoxes,1);  
    for j = 1:box_rows%对每张图的所有ROI区域进行提取  
        box =image_info.objectBoundingBoxes(j,:);  
        cropped_roi = imcrop(image,box);  
        %imshow(cropped_roi);  
        image_full_name = strcat(output_path,'\',current_time,num2str(roi_index),'.bmp');  
        imwrite(cropped_roi,image_full_name);  
        roi_index=roi_index + 1;  
    end  
end 
end
执行代码后有效果图如下:


  • 13
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值