第一种方法:eval 方法
该方法未对文件进行任何处理,直接重命名。文件不损失任何信息。
tic
clear;
close all;
% edited by cmwang,if any problem,please reference the website
%http://blog.csdn.net/jiandanjinxin/article/details/51513598%-------------------------------------------------------------------------
% 读取文件方法1
srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹
cd(srcDir);
% 读取文件方法2
% % srcDir='.\FinalJPEG2048'; %获得选择的文件夹
% % cd(srcDir);
%--------------------------------------------------------------------------% 带有时间标志的重命名文件夹年月日和时刻
savetime = fix(clock);
savetimestr = num2str(savetime);
savetimestr(isspace(savetimestr)) = []; %去除所有空格
Renamefullname = ['Rename' savetimestr];if exist(Renamefullname,'dir') == 0mkdir (Renamefullname)
elsecd Renamefullnamedelete *cd ..
end% 复制重命名文件夹到带有时间标志的文件夹中
copyfile('*.jpg',Renamefullname)cd(Renamefullname);
allnames=struct2cell(dir('*.jpg')); %只处理8位的jpg文件
[k,len]=size(allnames); %获得jpg文件的个数for ii=1:len%逐次取出文件name=allnames{1,ii};%----------------------------------------------------------------------% 重命名规则为原始图像中的数值加上100,你可在此区域添加你自己的重命名规则newnameformat =name(end-3:end);numberstr1 = name(end-6:end-4);number = str2num(numberstr1);number2 =num2str(number+100);newname = [number2 newnameformat];%----------------------------------------------------------------------% 关于renameStr一定要注意里面的空格和双引号renameStr = ['!rename', ' "',name,'" ',newname];eval(renameStr)
end
cd ..
close all;
Renametime = toc;disp('------------------------------------------------------------------')
disp(['The Rename time is ', num2str(Renametime), 's'])
disp('------------------------------------------------------------------')
第二种方法: imwrite
该方法对文件进行了处理在另存为,即重命名。但是文件有可能会损失信息,具体信息可对比重命名前后文件的大小。
tic
clear;
close all;
% edited by cmwang,if any problem,please reference the website
%http://blog.csdn.net/jiandanjinxin/article/details/51513598%-------------------------------------------------------------------------
% 读取文件方法1
srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹
cd(srcDir);
allnames=struct2cell(dir('*.jpg')); %只处理8位的jpg文件
[k,len]=size(allnames); %获得jpg文件的个数% 读取文件方法2
% % srcDir='.\FinalJPEG2048'; %获得选择的文件夹
% % cd(srcDir);
%--------------------------------------------------------------------------% 带有时间标志的重命名文件夹年月日和时刻
savetime = fix(clock);
savetimestr = num2str(savetime);
savetimestr(isspace(savetimestr)) = []; %去除所有空格
Renamefullname = ['Rename' savetimestr];if exist(Renamefullname,'dir') == 0mkdir (Renamefullname)
elsecd Renamefullnamedelete *cd ..
endfor ii=1:len%逐次取出文件name=allnames{1,ii};I=imread(name); %读取文件%-------------------------------------------------------------------------%然后在此处添加你的图像处理程序即可if size(I,3)==3;A = rgb2gray(I);elseA = I;end%-------------------------------------------------------------------------%----------------------------------------------------------------------% 重命名规则为原始图像中的数值加上100,你可在此区域添加你自己的重命名规则newnameformat =name(end-3:end);numberstr1 = name(end-6:end-4);number = str2num(numberstr1);number2 =num2str(number+100);newname = [number2 newnameformat];%----------------------------------------------------------------------% 注意imwrite中的空格imwrite(A,['.\' Renamefullname '\',newname])
end
close all;
Renametime = toc;disp('------------------------------------------------------------------')
disp(['The Rename time is ', num2str(Renametime), 's'])
disp('------------------------------------------------------------------')