.vbb文件转换为.txt文件

    Caltech Pedestrian Dataset数据集的annotations就是以.vbb保存的,但是我们实际运用中一般都是保存为.txt文件或者.xml文件的格式,这就给我们带来了很大的不便性,Caltech Pedestrian Dataset数据集matlab代码下载:点击打开链接,下面的代码调用到了该链接的内容。结合Caltech Pedestrian Dataset数据集中给出的matlab代码,这里是对INRIA DataSet数据集进行操作。想必做行人检测接触过INRIA这个数据集的都知道,该数据集一个明显的缺点就是标签不够完整,训练集中有一部分行人是没有标签的,这在一定的程度上对模型训练很产生较大的影响。下面的链接对INRIA数据集进行了进一步的标签补充,可以自行下载:点击打开链接,可惜的是其标签保存形式亦为.vbb的形式。本博文主要是针对INRIA数据集的改进标签的.vbb文件转换为.txt文件。

%func: main.m
vbb2txt('InriaNewTrainingLabels.vbb','TrainingLabels.txt');
vbb2txt('InriaNewTestLabels.vbb','TestingLabels.txt');
%-------------------------------------------------------
%vbbName:需要转换的.vbb名称,txtName为转换后保存的.txt名称
%func: vbb2txt.m
%-------------------------------------------------------
function vbb2txt(vbbName,txtName)  
 
vPath = 'F:\za\Model\pedestrain\INRIAPerson';
finalPath = [vPath,vbbName]%.vbb文件的路径
outpath = 'F:\za\Model\pedestrain\INRIAPerson\annotations';%保存路径

disp(finalPath);
A = vbb( 'vbbLoad', finalPath);
c = fopen([outpath,'\',txtName],'w')

for i = 1:A.nFrame    
    iframe = A.objLists(1,i);    
    iframe_data = iframe{1,1};    
    n1length = length(iframe_data);    
    for  j = 1:n1length    
        iframe_dataj = iframe_data(j);    
        if iframe_dataj.pos(1) ~= 0  %pos  posv    
            fprintf(c,'%d %f %f %f %f\n', i, iframe_dataj.pos(1),...  
            iframe_dataj.pos(2),iframe_dataj.pos(3),iframe_dataj.pos(4));    
        end    
    end    
end

若有不当之处,望指教,谢谢!

你可能感兴趣的:(Matlab)