在处理数据集时,需要将图像的灰度值进行替换,例如将图像中灰度值为5的像素转化为灰度值为1,将所有大于0的灰度值的像素都变成灰度值为1的图像,MATLAB代码转换如下:
单张图像的处理:
pred_res = imread('000002_label.png'); #要处理的图像
pred_res_upsample = imresize(pred_res,[480,640],'nearest'); #要处理图像的尺寸
[m,n]=size( pred_res_upsample ); #用m,n表示图像的像素坐标
for i=1:m
for j=1:n #遍历每个像素
if pred_res_upsample(i,j)>0 #当像素的灰度值大于0时,将该灰度更改为0
pred_res_upsample(i,j)=1;
end
end
end
imshow(pred_res_upsample);
imwrite(pred_res_upsample,'2label.png') #将处理后的图像重新命名
遍历文件夹中所有图像,进行批量处理:
clear all;
clc;
OutputDir = 'new_label\'; #要保存处理后的图像的文件路径
files = dir(fullfile('label\','*.png')); #要处理的图像路径
lengthFiles = length(files) #要处理图像的数量
for n = 1:lengthFiles; #遍历图像
Img = imread(strcat('label\',files(n).name));
for i=1:1:480 #遍历图像的尺寸
for j=1:1:640
if(Img(i,j)>0)
Img(i,j)=1; #如果像素的灰度值大于0则改为1
end
end
end
imwrite(Img,[OutputDir,int2str(n),'_label.png']); #另存为到outputdir
end