在处理数据集时,需要将图像的灰度值进行替换,例如将图像中灰度值为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时,将该灰度更改为0pred_res_upsample(i,j)=1;endend
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:640if(Img(i,j)>0)Img(i,j)=1; #如果像素的灰度值大于0则改为1endendendimwrite(Img,[OutputDir,int2str(n),'_label.png']); #另存为到outputdir
end