将通过Matlab 2018b的Image Labeler标注的数据写入txt

将通过Matlab 2018b的Image Labeler标注的数据写入txt


matlab 2018b稍有改动,数据标注后的Label Session导入MATLAB没找到ROI区域数据,因此本文用的mat文件是通过Image Labeler的Export Labels导出的

function

%函数说明:读取通过MATLAB 2018b Image Labeler标记并用Export Labels导出的mat文件,将
%标记的ROI区域写入到同一个txt文件并存储。
%示例调用方式 Save_Raw_Samples_ROIs('G:\AutoLogosCopy\aodi\aodi.mat','G:\test\ROI_labels.txt');
%**************************************************************************
%第一个参数:通过MATLAB 2018b Image Labeler中的Export Labels导出的mat文件
%这里只需输入其全路径即可,如'G:\AutoLogosCopy\aodi\aodi.mat'
%第二个参数:为待写入的txt文件全路径,如'G:\test\ROI_labels.txt'

function Save_Raw_Samples_ROIs(labelsession_data_path,out_path)
load(labelsession_data_path);%matlab2018b默认载入后变量名为gTruth
image_counts = size(gTruth.DataSource.Source,1);%读取标记图片张数,2为列,1为行

label_count = size(gTruth.LabelDefinitions,1);%读取设置的标签数

%pause(1);%延时1s,确保不会出现重命名
%current_time = datestr(now,'yyyy-mm-dd-HH-MM-SS_');
% if ~isdir(output_path) %判断路径是否存在
%     mkdir(output_path);
% end

fid = fopen(out_path,'a');

%为每个框写入txt数据
for i = 1:image_counts%对每张图依次处理,提取ROI区域
    I = imread(gTruth.DataSource.Source{i,1});
    TW = size(I,1);%图片宽度
    TH = size(I,2);%图片高度
    for k = 1:label_count%对每张图的每个标签依次处理
        count=size(gTruth.LabelData{i,k}{1,1},1);%每张图片中某个标签的标注次数
        if(count==0)
            break;
        end
        for m = 1:count
            fprintf(fid,'%s\t',gTruth.DataSource.Source{i,1});%图片名
            fprintf(fid,'%s\t',gTruth.LabelDefinitions{k,1}{1,1});%类别
            fprintf(fid,'%d\t',TW);%图片宽度
            fprintf(fid,'%d\t',TH);%图片高度
            fprintf(fid,'%d\t',gTruth.LabelData{i,k}{1,1}(m,1));%Label-x
            fprintf(fid,'%d\t',gTruth.LabelData{i,k}{1,1}(m,2));%Label-y
            fprintf(fid,'%d\t',gTruth.LabelData{i,k}{1,1}(m,3));%框宽
            fprintf(fid,'%d\t',gTruth.LabelData{i,k}{1,1}(m,4));%框高
            fprintf(fid,'\r\n');
        end
    end
end
fclose(fid);

为每个mat文件调用函数

clc,clear
matDir = dir('G:\AutoLogosCopy\*\*_sr.mat');%所有mat文件路径
num_matDir = length(matDir);
for i = 1:num_matDir%为每个mat文件调用Save_Raw_Samples_ROIs
    labelsession_data_path = fullfile(matDir(i).folder, matDir(i).name);
    out_path = 'G:\test\ROI_labels.txt';
    Save_Raw_Samples_ROIs(labelsession_data_path,out_path);
end
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

banjitino

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值