1、將mos_with_names.txt這個資料夾存的內容按失真型別分割,因為它的命名方式是這樣的:
例如,名稱為「i03_08_4.bmp」是指第3個參考影象,第8個失真型別和與此失真相關的第4種水平。同樣地,名稱為「i12_10_1.bmp」指這是第12個參考影象,第10個型別的失真與第一種失真水平。
%filename = '.\mos_with_names.txt';這個**比較簡單,很多重複性的**,反正能實現要求也就懶得改了,執行之後在當前資料夾下生成17個txt檔案,每個檔案包含一類失真影象的名字和主觀評分,然後把這些txt手動放到之前建立好的資料夾下就可以了。%[vale,name] = textread(filename , '%f %s');
clc; clear
file = '.\mos_with_names.txt';
fid = fopen(file,'r');
disp(['reading file: ',file]);
linenumber = 0;
fid1=fopen('.\#1.txt','wt'); %必須要以wt的方式開啟,不然不能換行
fid2=fopen('.\#2.txt','wt');fid3=fopen('.\#3.txt','wt');
fid4=fopen('.\#4.txt','wt');fid5=fopen('.\#5.txt','wt');
fid6=fopen('.\#6.txt','wt');fid7=fopen('.\#7.txt','wt');
fid8=fopen('.\#8.txt','wt');fid9=fopen('.\#9.txt','wt');
fid10=fopen('.\#10.txt','wt');fid11=fopen('.\#11.txt','wt');
fid12=fopen('.\#12.txt','wt');fid13=fopen('.\#13.txt','wt');
fid14=fopen('.\#14.txt','wt');fid15=fopen('.\#15.txt','wt');
fid16=fopen('.\#16.txt','wt');fid17=fopen('.\#17.txt','wt');
while ~feof(fid)
linenumber = linenumber + 1;
line = fgetl(fid);
if(line(11:14) == '_01_')
%disp([num2str(linenumber),':',line]);
fprintf(fid1,[line,'\n']);
elseif(line(11:14) == '_02_')
fprintf(fid2,[line,'\n']);
elseif(line(11:14) == '_03_')
fprintf(fid3,[line,'\n']);
elseif(line(11:14) == '_04_')
fprintf(fid4,[line,'\n']);
elseif(line(11:14) == '_05_')
fprintf(fid5,[line,'\n']);
elseif(line(11:14) == '_06_')
fprintf(fid6,[line,'\n']);
elseif(line(11:14) == '_07_')
fprintf(fid7,[line,'\n']);
elseif(line(11:14) == '_08_')
fprintf(fid8,[line,'\n']);
elseif(line(11:14) == '_09_')
fprintf(fid9,[line,'\n']);
elseif(line(11:14) == '_10_')
fprintf(fid10,[line,'\n']);
elseif(line(11:14) == '_11_')
fprintf(fid11,[line,'\n']);
elseif(line(11:14) == '_12_')
fprintf(fid12,[line,'\n']);
elseif(line(11:14) == '_13_')
fprintf(fid13,[line,'\n']);
elseif(line(11:14) == '_14_')
fprintf(fid14,[line,'\n']);
elseif(line(11:14) == '_15_')
fprintf(fid15,[line,'\n']);
elseif(line(11:14) == '_16_')
fprintf(fid16,[line,'\n']);
elseif(line(11:14) == '_17_')
fprintf(fid17,[line,'\n']);
endend
fclose(fid1);fclose(fid2);fclose(fid3);fclose(fid4);
fclose(fid5);fclose(fid6);fclose(fid7);fclose(fid8);
fclose(fid9);fclose(fid10);fclose(fid11);fclose(fid12);
fclose(fid13);fclose(fid14);fclose(fid15);fclose(fid16);
fclose(fid17);fclose(fid);
2、根據txt中的名字將對應的從distorted_images中提取出來放到對應的失真型別中去,這個工作其實也不算複雜,因為失真資料夾中的文字中已經有該類失真的名字了,直接開啟txt文字取出檔名,根據檔名到distorted_images中讀取,然後儲存到對應的資料夾中,最後再用迴圈把17類都操作了就好了。**如下:
for i =1:17任意開啟乙個資料夾,存放的是對應的失真型別,比如開啟#4:file = ['.\disimage_fenkai\#',int2str(i),'\#',int2str(i),'.txt'];
fid = fopen(file,'r');
disp(['reading file: ',file]);
while ~feof(fid)
line = fgetl(fid);
filename = line(8:19); %取出名
a=imread(['.\distorted_images\',filename]); %按照名讀取
%mkdir('.\disimage_fenkai\#1\');
imwrite(a,['.\disimage_fenkai\#',int2str(i),'\',filename]); %將按原名字存在#i中
endfclose(fid);
end
Linux命令分類整理
uname a 顯示linux系統資訊 uname r 顯示核心發布版本資訊 uptime 顯示系統已經執行的時間和系統負載 hostname 顯示系統主機名 last reboot 顯示系統重啟歷史 date 顯示當前日期和時間 cal 顯示本月日曆 w 顯示誰當前正登入這台主機 whoami 顯...
phpunit assert斷言分類整理
方法名 含義引數 返回值asserttrue 斷言為真 assertfalse 斷言為假 方法名含義 引數返回值 assertnull 斷言為null assertnotnull 斷言非null 方法名含義 引數返回值 assertequals 斷言等於 assertnotequals 斷言大於 a...
leetcode 分類整理2
69.x的平方根 e 重點 1.用x mx防止溢位 2.用右中位數防止無限迴圈 744.尋找比目標字母大的最小字母 e 重點 字母順序可以迴圈 a z 且letters陣列是有序的。因此,最後退出迴圈的時候還要判斷 return letters l target letters l letters ...