【发布时间】:2020-10-31 10:28:11
【问题描述】:
如何在 MATLAB 中从 TID2013 数据集中读取特定图像?我编写了以下代码,但它从列表的第一个到末尾开始。图像格式如下:ixx.yy.z.bmp 表示 xx 是图像数量,yy 是噪声模型,z 是噪声水平。我只想在 4,5 级使用模型 1,2,但我不知道该怎么做。请有人帮助我!顺便说一下,我在 info1.txt 、 info2.txt 、 info3.txt 中分别写了 25 个参考图像、24 个噪声模型和每个噪声模型的 5 个级别。
clc; clear; close all;
% read Original images
cd 'C:\Users\Desktop'
for NO1 = 1:25
in1 = fopen('info1.txt');
xx = fgets(in1);
A = imread(strcat('C:\Users\Desktop\reference_images\',xx,'.bmp'));
A = rgb2gray(A);
end
% read distorted images
for NO1 = 1:25
in1 = fopen('info1.txt');
xx = fgets(in1);
for NO2 = 1:24
in2 = fopen('info2.txt');
yy = fgets(in2);
for NO3 = 1:5
in3 = fopen('info3.txt');
z = fgets(in3);
B = imread(strcat('C:\Users\Desktop\distorted_images\',xx,yy,z,'.bmp'));
B = rgb2gray(B);
C = imadjust(B);
% Write restored images
imwrite(C,['C:\Users\Desktop\restored_images\','i',sprintf('%02d',NO1),'_',sprintf('%02d',NO2),'_',num2str(NO3),'.bmp']);
end
end
end
【问题讨论】: