当前位置:首页>科技 >内容

图像二值化属于什么处理,一文搞懂图像二值化算法

2023-10-26 12:39:02科技漂亮的斑马

很多朋友对图像二值化属于什么处理,一文搞懂图像二值化算法不是很了解,六月小编刚好整理了这方面的知识,今天就来带大家一探究竟。传统的

图像二值化属于什么处理,一文搞懂图像二值化算法

很多朋友对图像二值化属于什么处理,一文搞懂图像二值化算法不是很了解,六月小编刚好整理了这方面的知识,今天就来带大家一探究竟。

传统的机器视觉通常包括预处理和目标检测两个步骤。它们之间的桥梁是图像分割。图像分割通过简化或改变图像的表示使图像更容易分析。例如,食品加工厂新进口了一批肉鸡,它想通过视觉检测它们的美味。机器在对图像进行预处理和优化后,首先要将图像中的鸡肉从背景中分离出来,单独对感兴趣的区域进行分析,从而做出快速准确的判断。

食品加工厂的视觉处理然而,图像分割对于愚蠢的AI来说并不容易。聪明的人类一眼就能看出下图什么能吃什么不能吃。但是计算机要把这些东西分开需要做很多工作。原始图像分割结果最简单的图像分割方法是二值化。

图像二值化是将图像上像素的灰度值设置为0或255的过程,也就是说整个图像呈现明显的黑白效果。二值图像的每个像素只有两个值:纯黑或纯白。彩色图像、灰度图像和二值图像的比较

因为二进制图像数据足够简单,所以许多视觉算法依赖于二进制图像。通过二值图像,可以更好地分析物体的形状和轮廓。二值图像也经常被用作原始图像的蒙版(也叫蒙版):它就像一张被部分挖空的纸,掩盖了我们不感兴趣的区域。进行二值化的方法有很多种,其中最常用的方法是阈值法。

在计算机视觉中,图像一般用矩阵来表示。换句话说,你的图看起来再好吃,对电脑来说也只是个矩阵。在这个矩阵中,每个像素是矩阵中的一个元素。在三通道彩色图像中,该元素是由三个数字组成的元组。彩色三通道图像

对于单通道灰度图像,此元素是一个数字。这个数字代表此时图像的亮度。数字越大,像素越亮。在常见的八位单通道颜色空间中,0代表全黑,255代表全白。单通道灰度阈值法是指选择一个数,大于它就认为是全白,小于它就认为是全黑。就像教室里的电灯开关,我们轻轻一推,如果突然超过某个阈值,灯就会弹出来。

根据阈值选取方法的不同,可以分为全局阈值和局部阈值。全局阈值是指为整个图像中的每个像素选择相同的阈值。我们可以在Photoshop的图像-调整-阈值中体验这个操作:Photoshop中的阈值可以看到,在阈值色阶从1到255的移动过程中,图像越来越多的区域变黑。当阈值数在一定范围内时,红米香肠的轮廓清晰可辨。正确的二值化使得红米香肠的轮廓清晰可辨。

在生产线环境中,照度是已知的,并且通常设置一个固定的数字作为全局阈值。但在室外或机器人比赛中,光照条件往往更加复杂。也是奥利奥冰淇淋。白天和晚上,摄像头看到的图像可能不一样,恒定的阈值无法适应两种情况。不同的明暗图片

对于漆黑的夜晚,我们需要一个更低的阈值,比如将阈值设置为50,可以在晚上清晰的分出黑白两种颜色,但是白天是白色(左);如果我们把阈值设得高一点,比如说172,白天可以平滑划分,但是到了晚上就黑了(右边)。我们需要能够适应复杂环境的算法。左阈值=50,右阈值=172。

其实稍微分析一下就能发现,这张图的色差还是挺明显的,只有两种颜色:亮和暗。所以无论在白天还是夜晚,它的颜色直方图都应该是两个明显的峰值,分别代表暗区和亮区。只是白天色阶直方图向右偏移,晚上向左偏移。图像的颜色直方图

如果选择两个波峰之间的波谷作为阈值,则两种类型的像素可以容易地分开。但是图像的直方图往往是不连续的,峰值多,抖动大,很难找到准确的极值点。

日本工程师大津展(Otsu Zhan)为这种波谷找到了合适的数学表达式,并于1979年发表[2]。这种二值化方法称为Otsu法。Otsu算法类似于一维Fisher判别分析的离散模拟。用穷举法找到一个阈值数,将这些像素分为两类,使这两类像素的亮度类内方差最小。类内方差是指两类像素的方差的加权和,其中权重是指这类像素的个数与整幅图像中像素个数的比值。

也许你的图片不会只有两种不同的颜色,比如这个冰淇淋有三个波峰。三色冰淇淋(取冰淇淋部分的直方图)此时只需稍微扩展Otsu算法即可完成。Otsu算法的多级推广成为多Otsu法[3]。局部方法也称为自适应阈值处理。在比赛中,经常会有聚光灯照射在特定区域,导致画面部分被照亮,部分未被照亮。

如果对局部光照的图像进行全局阈值化,可能会出现“无论设置什么阈值参数,都无法满足整幅图像的要求”的尴尬。例如,在上面的图像中,当直接应用全局阈值时,左上半部分的寿司完全暴露,右下半部分仍然是黑色的。局部照明图像的全局阈值处理

这时,我们将使用局部阈值来处理它。其实人的眼睛也有这一步操作。我们判断一个事物的颜色深浅,往往会受到物体周围颜色的影响,这也是黑牙看起来更白的原因。

局部阈值法假设图像在某一区域的光照是接近的。它用滑动窗口扫描一幅图像,将滑动窗口中心的亮度与滑动窗口中其他区域(称为邻域)的亮度进行比较。如果中心的亮度高于邻域的亮度,则将中心点标记为白色,否则标记为黑色。滑动窗口局部阈值这里是局部阈值的基本方法。实际使用中常见的其他局部阈值法,请参考Chow-Kaneko自适应阈值法[4]。

局部阈值应用广泛,特别是黑白处理。光学字符识别(OCR)和二维码扫描的许多算法使用局部阈值操作。举个例子,下面这个二维码就是一个典型的部分光照图像:如果对这个图像使用全局阈值,无论如何都不能正确分割出部分光照的二维码(比如下图使用Otsu算法进行分割)。全局方法不能处理局部光接收图像。

而采用局部阈值方法就能很好地分割图像。从图片里可以明显观察到,局部阈值方法对于一大片干净区域的细节比较敏感,所以纸面上多出了很多我们原本注意不到的斑点。

局部方法分割二维码

实际运用中,我们要根据需求选择不同的二值化方法,没有哪个方法是绝对完美的。

例如,在识别敌方机器人时,由于装甲片灯条是自发光物体,受环境光影响较小,为了提高程序运行效率,我们采用固定数字作为全局阈值:

基地自动反击

在能量机关的识别中,由于能量机关只有黑白两种颜色,我们采用了大津算法及其多种变体:

大能量机关各区域的二值图

而在空中机器人读取基地区二维码的时候又用到了局部阈值方法:

空中机器人识别基地

除了基于阈值的图像分割方法外,常用的分割方法还可以基于边缘(如Yanowitz-Bruckstein自适应阈值方法[5])、区域(如区域生长算法[6])等,它们在卫星图像处理、交通控制系统、工业生产监控、医疗影像等领域发挥着巨大的作用。

脑部组织图像分割

本文所述阈值方法的OpenCV实现,请参见博客:Python+OpenCV图像处理实验

项目效果

以上就是关于图像二值化属于什么处理,一文搞懂图像二值化算法的知识,希望能够帮助到大家!

声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们

Top