最近的一个任务就是给图片打标签,纯体力活儿。
简单描述任务:给几个文件夹里的图片分类。
常规做法具体是:
1. 先打开一个图像,图像上可能包含A/B/C/D四个东西中的一个或者几个;
2. 判断这个图像上包含的是什么:A?AB?等;
3. 如果图像不包含所需东西中的任何一个,则丢弃;
4.否则将图像保存到对应文件夹,并将图像重命名;
这个活儿最恶心的就是要大量操作“读图”,“判断”,“另存”为这几个简单重复的动作。然而就是这样的特点使得我有机会来优化完成此任务的流程。
优化之后的流程:
1. 图像自动弹出;
2.我根据肉眼判断图像类别,在键盘上敲下图像标签(标签预设为123等数字,十分节省时间);
3.程序根据标签自动保存图像,并将图像重命名;
你看,写一个matlab函数可以让我只需要做一件事(如上面的粗体字所描述)。
我把整个程序分为3个部分,根据功能分为:
1. read()函数;
2.saveAs()函数;
3. main()函数;
filefolder_path = '';
save_path = '';
work_path = '';
filefolders = dir(filefolder_path) %读出所有的文件夹的名字
types = ['A';'B';'C';'D']
%新建分类的文件夹
for k=1:length(types)
mkdir([save_path types])
end
%process
for i=1:length(filefolders)
filefolder = filefolders(i).name;
file_path = [filefolder_path '\' filefolder]
files = dir(file_path);
len = length(files);
%如果是空文件夹,进行下一个循环