Matlab实现批量化图像二值化

本文通过Matlab实现了批量化图像二值化,可以从一个文件夹中读取所有文件并进行二值化处理,再二值化处理之后,可以将处理后的图像重新命名并保存入指定文件夹。

function [] = GetFiles (SamplePath)
SamplePath = 'D:\Image Binarization\test image\original image\';
files = dir(SamplePath); % 列出指定目录下所有子文件夹和文件
size0 = size(files);
length = size0(1);

for i=3:length
   fileName = strcat(SamplePath,files(i,1).name); 
   
   % 读取图像并显示
   original_picture = imread(fileName);
   figure(1);
   imshow(original_picture);
   title('原始RGB图像')

   % 对图像进行二值化处理
   % graythresh为自动确定二值化阈值函数,大于该阈值的就变成白色,小于该阈值的就变成黑色,所以阈值越大越黑,阈值越小越白
   thresh = graythresh(original_picture);
   % 如果想要自己设定阈值,那么就可以这样写Pic2=im2bw(original_picture,value);,value=[0,1]中间的任何数值
   Pic2 = im2bw(original_picture,thresh);
   % Pic2=im2bw(original_picture,0.5); % 自设定阈值
   figure(2);
   imshow(Pic2);
   title('RGB图像转化为二值化图像')

   currentPath=pwd; % 保存当前⼯作⽬录
   cd('D:\Image Binarization\test image\result') % 把当前⼯作⽬录切换到指定⽂件夹
   picname = strcat('result',num2str(i - 2));
   % imwrite(Pic2,picname,"jpg")
   saveas(2,picname,"jpg")
   cd(currentPath) % 切回原⼯作⽬录   

   close;

end
end

上述代码的二值化部分通过原始图像直接二值化进行,除此之外,我们也可以通过先将原始图像进行灰度处理,再将灰度图像进行二值化处理,下面给出这部分功能的实现:

%把图像转换成灰度图像
GrayPic=rgb2gray(original_picture);%把RGB图像转化成灰度图像
figure(2)
imshow(GrayPic);
title('RGB图像转化为灰度图像')

% 灰度图像转化为二值化图像
% thresh=graythresh(GrayPic);
Pic2_=im2bw(GrayPic,thresh);
figure(4);
imshow(Pic2_);
title('灰度图像转化为二值化图像')

效果示意如下:

原始图像文件夹

结果文件夹:

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年5月21日
下一篇 2022年5月21日

相关推荐