当前位置: 代码迷 >> 综合 >> 用MATLAB进行灰度图像灰度值的处理
  详细解决方案

用MATLAB进行灰度图像灰度值的处理

热度:44   发布时间:2024-02-19 22:23:03.0

        在处理数据集时,需要将图像的灰度值进行替换,例如将图像中灰度值为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

 

  相关解决方案