按失真类型分类整理IQA数据集:TID2013

前面已经整理了TID2008,这次整理TID2013的工作相对较简单,只需要改代码的一部分就可以了,首先我大概介绍一些TID2013。

TID2013是TID2008的加强版,链接如下:http://www.ponomarenko.info/tid2013.htm。包括25幅参考图像,3000幅失真图像(25参考图像X24种失真×5失真水平)。失真类型有24种,增加了包括:改变色彩饱和度、多重高斯噪声、舒适噪声、有损压缩、彩色图像量化、色差以及稀疏采样。该数据库的DMOS值由971观察者给出524340个数据统计得到,MOS取值范围为[0,9]。所有图像都以Bitmap格式保存在数据库中,没有任何压缩。

文件名命名方式:参考图像号,失真类型,失真水平(“iXX_YY_Z.bmp”)。例如,名称为“i05_11_4.bmp”是指第5个参考图像,第11个类型的失真和与此失真相关的第4种水平。

分类整理过程跟之前的一样,先建立一个存放整体新数据的文件夹,比如disimage_fenkai,然后在该文件夹中建立24个存放每类失真图片和对应主观评分的文件夹,再在每个失真文件夹中建立文本文档存放主观评分(分割源mos_with_names.txt文本),最后根据文本中的数据将失真图片进行相应的分类。以下是详细过程代码:

1、新建disimage_fenkai,然后在该文件中建立24个用于存放每类失真的文件夹。

mkdir(’./disimage_fenkai’)
for i =1:24
mkdir(’./disimage_fenkai/’,[’#’,num2str(i)]);
end

% 文件路径中必须是斜杠不能是反斜杠
%.m文件的命名不能是mkdir,否则会报错
  2、在每个对应的文件夹中新建文本文档用于存放每类失真图片的主观评分,然后将mos_with_names.txt文本中的文本按要求分割到每一个文本文档中,对应的代码如下:

%filename = ‘.\mos_with_names.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(’.\disimage_fenkai#1#1.txt’,‘wt’); %必须要以wt的方式打开,不然不能换行
fid2=fopen(’.\disimage_fenkai#2#2.txt’,‘wt’);fid3=fopen(’.\disimage_fenkai#3#3.txt’,‘wt’);
fid4=fopen(’.\disimage_fenkai#4#4.txt’,‘wt’);fid5=fopen(’.\disimage_fenkai#5#5.txt’,‘wt’);
fid6=fopen(’.\disimage_fenkai#6#6.txt’,‘wt’);fid7=fopen(’.\disimage_fenkai#7#7.txt’,‘wt’);
fid8=fopen(’.\disimage_fenkai#8#8.txt’,‘wt’);fid9=fopen(’.\disimage_fenkai#9#9.txt’,‘wt’);
fid10=fopen(’.\disimage_fenkai#10#10.txt’,‘wt’);fid11=fopen(’.\disimage_fenkai#11#11.txt’,‘wt’);
fid12=fopen(’.\disimage_fenkai#12#12.txt’,‘wt’);fid13=fopen(’.\disimage_fenkai#13#13.txt’,‘wt’);
fid14=fopen(’.\disimage_fenkai#14#14.txt’,‘wt’);fid15=fopen(’.\disimage_fenkai#15#15.txt’,‘wt’);
fid16=fopen(’.\disimage_fenkai#16#16.txt’,‘wt’);fid17=fopen(’.\disimage_fenkai#17#17.txt’,‘wt’);
fid18=fopen(’.\disimage_fenkai#18#18.txt’,‘wt’);fid19=fopen(’.\disimage_fenkai#19#19.txt’,‘wt’);
fid20=fopen(’.\disimage_fenkai#20#20.txt’,‘wt’);fid21=fopen(’.\disimage_fenkai#21#21.txt’,‘wt’);
fid22=fopen(’.\disimage_fenkai#22#22.txt’,‘wt’);fid23=fopen(’.\disimage_fenkai#23#23.txt’,‘wt’);
fid24=fopen(’.\disimage_fenkai#24#24.txt’,‘wt’);

while ~feof(fid)
linenumber = linenumber + 1;
line = fgetl(fid);
if(line(12:15) == ‘01’) %跟之前的失真类型的位置不一样,因为TID2013的主观评分的精度要高一位。
%disp([num2str(linenumber),’:’,line]);
fprintf(fid1,[line,’\n’]);
elseif(line(12:15) == ‘02’)
fprintf(fid2,[line,’\n’]);
elseif(line(12:15) == ‘03’)
fprintf(fid3,[line,’\n’]);
elseif(line(12:15) == ‘04’)
fprintf(fid4,[line,’\n’]);
elseif(line(12:15) == ‘05’)
fprintf(fid5,[line,’\n’]);
elseif(line(12:15) == ‘06’)
fprintf(fid6,[line,’\n’]);
elseif(line(12:15) == ‘07’)
fprintf(fid7,[line,’\n’]);
elseif(line(12:15) == ‘08’)
fprintf(fid8,[line,’\n’]);
elseif(line(12:15) == ‘09’)
fprintf(fid9,[line,’\n’]);
elseif(line(12:15) == ‘10’)
fprintf(fid10,[line,’\n’]);
elseif(line(12:15) == ‘11’)
fprintf(fid11,[line,’\n’]);
elseif(line(12:15) == ‘12’)
fprintf(fid12,[line,’\n’]);
elseif(line(12:15) == ‘13’)
fprintf(fid13,[line,’\n’]);
elseif(line(12:15) == ‘14’)
fprintf(fid14,[line,’\n’]);
elseif(line(12:15) == ‘15’)
fprintf(fid15,[line,’\n’]);
elseif(line(12:15) == ‘16’)
fprintf(fid16,[line,’\n’]);
elseif(line(12:15) == ‘17’)
fprintf(fid17,[line,’\n’]);
elseif(line(12:15) == ‘18’)
fprintf(fid18,[line,’\n’]);
elseif(line(12:15) == ‘19’)
fprintf(fid19,[line,’\n’]);
elseif(line(12:15) == ‘20’)
fprintf(fid20,[line,’\n’]);
elseif(line(12:15) == ‘21’)
fprintf(fid21,[line,’\n’]);
elseif(line(12:15) == ‘22’)
fprintf(fid22,[line,’\n’]);
elseif(line(12:15) == ‘23’)
fprintf(fid23,[line,’\n’]);
elseif(line(12:15) == ‘24’)
fprintf(fid24,[line,’\n’]);

end

end

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(fid18);fclose(fid19);fclose(fid20);
fclose(fid21);fclose(fid22);fclose(fid23);fclose(fid24);fclose(fid);
 结果如下:
 在这里插入图片描述
 3、根据文本中的数据将文件distorted_images中的3000张失真图片进行相应的分类,将分类的图片存到对应的失真类型文件夹中,代码如下:

for i =1:24
file = [’.\disimage_fenkai#’,int2str(i),’#’,int2str(i),’.txt’];
fid = fopen(file,‘r’);
disp(['Reading file: ',file]);
while ~feof(fid)

    line = fgetl(fid); 
    filename = line(9:20); %取出图片名,注意现在的图片名要往后移动一位(跟TID2008相比),因为TID2013的主观评分精度高一位
    A=imread(['.\distorted_images\',filename]);  %按照图片名读取图片 
    %mkdir('.\disimage_fenkai\#1\');
    imwrite(A,['.\disimage_fenkai\#',int2str(i),'\',filename]); %将图片按原名字存在#i中
end
fclose(fid);

end
 分割的最后结果显示如下:
 在这里插入图片描述
 所有代码的.m文件放到跟下载的失真数据集distorted_images文件夹同一路径下即可运行。如:
 在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值