青年大学习分类收集截屏小程序
发表时间:2020-9-26
发布人:葵宇科技
浏览次数:147
青年大学习简易打包小程序
- 收取截屏图片的难受
- 士可忍,我不能忍
- Matlab 一键分类青年大学习截屏
收取截屏图片的难受
不当组织委员不知道,收集每个人的青年大学习的截屏,并存入每个人的文件夹是多么浪费时间的事。那话说收青大截屏分几个步骤:
- 同学发给你
- 你打开QQ存入手机并上传电脑
- 打开电脑
- 将图片拖入名字对应的文件夹
- 打包发送
看似简单,困难在于班级同学不会同时发给你,所以这个收集图片的战线估计要持续一周,最终会在截至的最后一天迎来高峰。
这人时间一长,记性就不好,赶上忙了忘记存图片还要挨个的找聊天记录
士可忍,我不能忍
简单方便的开发一个小程序,而且符合劳苦大众的大学生,matlab是首选工具。本来想搞个微信小程序,奈何我不会后端,没必要为了个截屏难为自己。大佬有兴趣的可以开发的小程序造福一下班级干部。哈哈哈
话不多说上程序!!!!!!!!!!!!!!
Matlab 一键分类青年大学习截屏
- 首先,需要发布一个问卷星。还好问卷星可以上传图片,并将文本部分命名为图片的名字,这样就相当于给每个人的图片做了一个独有的索引标志。
2.问卷星导出的图片会自带姓名 (下图打码)
-
需要自己创建一个班级信息表 txt 格式 (这里就不展示了,一般姓名和学号各一行就可以了。)
-
打开matlab 导入这个程序,设置好图片读入路径和存入路径。就可以轻松搞定了
clc
clear
%% 读取人员信息
feature('DefaultCharacterSet', 'UTF8');
data = importdata('data.txt');
name_num = length(data.textdata);
%%
cha = 'test\'; %这个cha 可以和t_path 合并,无所谓啦,最后都合并在一起,懒得改
t_path = 'C:\Users\baoye\Desktop\daxuexi\'; %随便路径,最后存照片的
file_path = 'C:\Users\baoye\Desktop\daxuexi\91723930\';% 图像文件夹路径
img_path_listjpg = dir(strcat(file_path,'*.jpg'));%获取该文件夹中所有jpg格式的图像
img_path_listpng = dir(strcat(file_path,'*.png'));%获取该文件夹中所有png格式的图像
img_path_list = [img_path_listjpg;img_path_listpng];
img_num = length(img_path_list);%获取图像总数量
I=cell(1,img_num);
if img_num > 0 %有满足条件的图像
for j = 1:img_num %逐一读取图像
image_name = img_path_list(j).name;% 图像名
image = imread(strcat(file_path,image_name));
I{j}=image;
fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 显示正在处理的图像名
%图像处理过程 省略
%这里直接可以访问细胞元数据的方式访问数据
end
end
%% 清空旧文件夹
for i = 1:name_num
t_path = [t_path,cha,'0',num2str(data.data(i)),' ',cell2mat(data.textdata(i))];
if exist(t_path)~=0 %判断就文件夹是否存在
rmdir(t_path, 's') %存在,删除旧文件
mkdir(t_path)
else
mkdir(t_path)
end
t_path = 'C:\Users\baoye\Desktop\daxuexi\';
end
%% 图像与人员信息的匹配(这里使用名字,也可以自己选择改成学号)
for i = 1:name_num
for j = 1:img_num
k = isempty(strfind(img_path_list(j).name,data.textdata(i)));
if k == 0
t_path = [t_path,cha,'0',num2str(data.data(i)),' ',cell2mat(data.textdata(i))];
% mkdir(t_path)
%设置图片路径并写入
t_path = fullfile(t_path,img_path_list(j).name);
imwrite(cell2mat( I(j)),t_path)
end
%路径恢复
t_path = 'C:\Users\baoye\Desktop\daxuexi\';
end
end
- 示例:
test文件夹里面是空的
程序运行之后会在test中创建文件夹,并图片和文件夹对号入座!!
这个程序的缺点是没有设置matlab 对于中文的识别,所以如果你的文件夹名字有中文,可以设置一下matlab对于中文的设置,这里没有设置,所以路径都是字母或数字组成
小小的人性化的地方是可以自动删除旧文件夹,创建新的
如果有大佬想完善随时可以完善!!!这个程序纯属因为本人懒的分配图片
有BUG尽量自己解决哈哈哈,因为代码实在简单(开个玩笑)。有更简单的代码可以交流