借助Mtalab制作数据集之保存到CSV

LableImage在安装时,总会出现各种各样的错误,小编另辟蹊径的选择了强大的Matlab库。
关于目标区域标记,前文已经讲过。

Matlab标记后的数据如下所示:

这里写图片描述

标记方法介绍见:
机器学习之Matlab制作自己的数据集

在文章中,小编轻描淡写地说,按照自己的喜好保存到CSV,后来自己在操作时候,遇到各种各样的问题,所以呢,调试好的不妨跟大家分享一下,少走一些弯路。

%把结构体中的数据写到CSV

filename='result.csv';%.csv可以更改为.txt等;路径也可自己修改

fid=fopen(filename,'w');

numofpic=length(positiveInstances)%标记图像的个数

class=0;%类别,每次只能标记一个类别,所以是半自动化

count=0;%计数,区别第一行

for i=1:numofpic
   
    rectPosition=positiveInstances(i).objectBoundingBoxes;
   
    siz=size(rectPosition,1);%每张图像上ROI的个数
    
    path=positiveInstances(i).imageFilename; 
        
    img=imread(path);
       
    width_pic=size(img,2);%图像宽高信息
      
    height_pic=size(img,1);
        
    for j=1: siz  
       
        if count==0
             
            fprintf(fid,'%s ,%s ,%s,%s,%s ,%s ,%s ,%s\n','file','class','width','height','x1','y1','x2','y2');%   ','是分隔符
       
        end
           
        x0=rectPosition(j,1);%矩形的四个数据
    
        y0=rectPosition(j,2);
    
        width=rectPosition(j,3);
    
        height=rectPosition(j,4);
        
        count=count+1;
        
        fprintf(fid,'%s ,%d ,%d,%d,%d ,%d ,%d ,%d\n',path,class,width_pic,height_pic,x0,y0,width,height);%   ','是分隔符
    
    end 
    
end

经过这样的操作,基本可以得到CSV文件,不过,因为这个是自写的,**暂时只能每次标记一种目标,**不过也挺好使的了吧。
保存后的CSV中,图像是绝对路径,需要改为相对的,批量修改见

tensorflow数据集处理:CSV中绝对路径转相对路径(C++写)

猜你喜欢

转载自blog.csdn.net/weixin_39437164/article/details/82744966