数字图像二值化处理

文章介绍了图像二值化的基本概念,它是通过设定阈值将像素点转化为黑白两种状态,简化图像以便于计算机处理。在MATLAB中,可以使用graythresh函数自动确定阈值,或通过计算中位数手动设定阈值。二值化在文本识别、边缘检测等领域有广泛应用,并能减少图像文件大小。
摘要由CSDN通过智能技术生成

二值化(Binarization)是最简单的图像分割方法。

图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。二值图像每个像素只有两种取值:要么纯黑,要么纯白。

而对于单通道的灰度图像来说,这个元素就是一个数字。这个数字代表了图像在这个点的亮度,数字越大像素点也就越亮,在常见的八位单通道色彩空间中,0代表全黑,255代表全白。

实现数字图像二值化处理一个重要的方法就是阈值法。也就是选取一个数字,大于它就视为全白,小于它就视为全黑,该数字便是阈值。类似声控灯,当我们声音的大小超过某个分贝,就能使灯亮。不同的阈值对数字图像二值化的结果也有区别。

这里我们用MATLAB实现。在MATLAB中十分简单,只需使用两个函数便可实现:

thresh=graythresh(img);%自动确定图像阈值
img = im2bw(img,thresh); %自动对图像进行二值化处理

使用该函数求得的阈值为全局阈值。

当然我们也可以自己编程实现二值化处理,可以任意指定阈值。

例如:要求二值化后0和255值像素点数目约各占一半。此时使用全局阈值便无法满足要求。

关键在于如何求图像的阈值,此种情况求图像像素点的中位数即可满足要求。

以刘德华图像为例:

 

代码实现如下:

img=imread('Andy Law.jpg');
%求二值化阈值
temp=reshape(img,1,644*800);
thresh=median(temp); %要保证 0,255 的像素点各占一半,求像素灰度值的中位数即为阈值
X=['二值化阈值=',num2str(thresh)];
disp(X)

运行结果为:

二值化阈值=14

[m,n]=size(img);
%二值化处理
for i=1:m 
 for j=1:n 
 if img(i,j)>thresh
 img(i,j)=255;
 else
 img(i,j)=0;
 end
 end
end
imshow(img)
title('二值化处理结果')

运行结果为:

二值化处理是图像分割中一个非常重要的方法,图像二值化的目的是简化图像,使其易于计算机处理。例如,在文本识别、边缘检测、图像分割等应用中,二值化图像可以帮助算法更准确地识别图像中的边缘和特征。

此外,图像二值化还可以帮助减小图像的文件大小,这对于存储和传输图像是很有帮助的。

总的来说,图像二值化是一种非常有用的图像处理技术,它可以简化图像,使其更容易被计算机处理,并且可以帮助减小图像的文件大小。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值