本人使用的是2021b版本的matlab,界面如图所示:
trainingImageLabeler是一个matlab本身自带的标注工具,作为适配工具,本来应该方便又好用,但是trainingImageLabeler经过几次更新,反而更加拉跨。
尤其是将你标注好的图像输出时,最后只会输出成一个mat文件,虽然也可以通过readtable这样的方式进行读取训练,但是没有实图的情况,还是让人很不舒服,这么个功能怎么就被砍了。
其实这个获取方法非常简单,
l只要load一下你保存的mat文件,工作区就会出现一个gTruth,文件的路径信息和剪裁的正方形面积就在里面。
load('test.mat')
所以写个脚本,获取信息,然后利用图像的imcrop函数将他裁剪保存出来就行。
脚本如下:
clear all
clc
load('test.mat')
P = size(gTruth.LabelData);
P_size = P(1);
%1是范围,2是图像位置
list1=[];
list2=[];
for i = 1:P_size
react = gTruth.LabelData{i,1}{1,1};
pic_path=gTruth.DataSource.Source(i);
pic_path_str = cell2mat(pic_path);
list1=[list1;react];
list2=[list2;pic_path_str];
end
list1;
list2;
for j =1:30
I=imread(list2(j,:));
C=imcrop(I,list1(j,:));
C_last=imresize(C,[227 227]);
num = list2(j,:);
num_str = num(25:end)
imwrite(C_last,strcat('aaa/',num_str));
end
临时写的粗糙脚本,希望能够解决你的问题。