windows+ubuntu下文件批量命名ubuntu
在windows下能夠採用matlab程序來對全部文件按順序進行批量命名,以圖片爲例,代碼以下:windows
path = 'C:\Users\Administrator\Desktop\select_img\';%全部圖片存放的路徑 D = dir([path '*.jpg']);%將該路徑下的全部文件讀取成一個結構體 for i = 1:length(D)%遍歷每一張圖片 image_name = D(i).name;%每一張圖片的名字 I = imread(strcat(path,image_name));%讀取每一張圖片 nz = strcat('%0',num2str(6),'d');%給該圖片重命名名字的位數 temp_id = sprintf(nz,i);%按序數給全部圖片命名,前面補0 name2 = strcat(temp_id,'.jpg'); imwrite(I,name2);%以新名字保存圖片 end
在ubuntu下能夠採用在文件夾下的終端輸入腳本程序的方式,對全部文件按照順序進行批量命名,腳本程序以下:spa
# 先輸入下面兩行指令,按序號爲全部文件命名,並且爲了不與以前的名字衝突(好比以前的名字中有數字的狀況),全部名字後面加上字母a declare -i num=0; for name in `ls`;do mv -f $name `echo $num"a.jpg"`; num=num+1; done # 再輸入下面兩行指令,按照序號從新給全部文件命名 declare -i num=0; for name in `ls`;do mv -f $name `echo $num".jpg"`; num=num+1; done
根據ground truth在原圖中分割子圖code
base_path = 'D:\image\people'; %全部原圖路徑 bb = importdata('output.txt');%全部原圖對應的ground truth文件 output_img = cell(100);%這裏假設原圖有100張 for i = 1:100 nz = strcat('%0',num2str(4),'d'); temp_id = sprintf(nz,i); id = strcat(temp_id,'.jpg'); img_path = fullfile(base_path,id); temp_img = imread(img_path); output_img = temp_img(bb.data(i,2):bb.data(i,4),bb.data(i,1):bb.data(i,3),:); filename = strcat('D:\image\output\',temp_id,'.jpg');%分割出的子圖保存路徑 imwrite(output_img,filename); end