阈值分割图像

阈值分割概念
阈值处理是指剔除图像内像素值高于一定值或者低于一定值的像素点。从而将一幅灰度图像处理为一幅二值图像,有效的实现前景和背景的分离。

二值化,顾名思义,就是将某张图像的像素改成只有两个值,其操作的图像也必须是灰度图。
阈值分割的常用技术

  1. 全局阈值分割

  2. 自适应局部阈值分割
    阈值分割的目的
    1、突出目标对象
    2、简化形态分析

3、增强对比
threshold函数
double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type);
src:输入图像。
dst:输出图像,与输入图像具有相同的大小和类型。
thresh:设定的阈值。
maxval:当 type 参数为 THRESH_BINARY 或 THRESH_BINARY_INV 时需要设定的最大值。
type:阈值分割的类型


**阈值法(**THRESH_BINARY)
阈值法就是通过设置一个阈值,将灰度图中的每一个像素值与该阈值进行比较,小于等于阈值的像素就 被设置为0(黑),大于阈值的像素就被设置为maxval,将原始图像处理为仅有两个值的二值图像。


反阈值法(THRESH_BINARY_INV)


**截断阈值法(**THRESH_TRUNC)
截断阈值法,指将灰度图中的所有像素与阈值进行比较,像素值大于阈值的部分将会被修改为阈值,小 于等于阈值的部分不变。换句话说,经过截断阈值法处理过的二值化图中的最大像素值就是阈值。


低阈值零处理(THRESH_TOZERO)
低阈值零处理,字面意思,就是像素值小于等于阈值的部分被置为0(也就是黑色),大于阈值的部分不变。


超阈值零处理(THRESH_TOZERO_INV)
超阈值零处理就是将灰度图中的每个像素与阈值进行比较,像素值大于阈值的部分置为0(也就是黑色),像素值小于等于阈值的部分不变。


OTSU****阈值法
OTSU算法是通过一个值将这张图分前景色和背景色(也就是灰度图中小于这个值的是一类,大于这个值的是一类)。
该方法使用的是聚类的思想,它把图像中所有像素点的像素值按灰度级分为两组。原则:
两组之间,灰度值差异最大。
每组之内,灰度值差异最小。
OTSU 阈值法通过以下步骤找到最佳阈值:

  1. 计算直方图:计算图像的灰度直方图。
  2. 计算类内方差和类间方差:对于每一个可能的阈值,计算分割后的两个类的方差。
  3. 选择最佳阈值:选择使类内方差最小(即类间方差最大)的阈值。
    参数type增加"cv2.THRESH_OTSU"参数。
    返回值ret是使用OTSU方法计算并得到的最优阈值。
    通过OTSU算法得到阈值之后,就可以结合上面的方法根据该阈值进行二值化,即使在计算出阈值后结合了阈值法和反阈值法。

注意:使用OTSU算法计算阈值时,组件中的thresh参数将不再有任何作用。


自适应局部阈值分割
与全局阈值法相比,自适应二值化更加适合处理亮度分布不均的图像。自适应二值化法能够根据图像的不同区域计算不同的阈值,从而更好地处理亮度不均匀的图像。这种方法的主要优势包括:

  1. 局部适应:自适应二值化法通过对每个小区域分别计算阈值,从而保留更多的细节。

  2. 细节保留:自适应二值化法通过计算局部区域的阈值,可以更好地保留图像中的细节。

  3. 灵活性:自适应二值化法提供了多种计算局部阈值的方法,例如均值法和高斯加权平均法等。
    adaptiveThreshold 函数
    adaptiveThreshold(src, dst, maxValue, adaptiveMethod, thresholdType, blockSize, C);
    src:输入图像,必须是单通道灰度图像。
    dst:输出图像,与输入图像 src 具有相同大小和类型。
    maxValue:阈值处理后最大值。
    adaptiveMethod:自适应阈值方法。可选择以下两种方法:
    ADAPTIVE_THRESH_MEAN_C`:在小区域内计算平均值作为阈值。
    ADAPTIVE_THRESH_GAUSSIAN_C :在小区域内计算高斯加权和作为阈值。
    thresholdType:阈值类型.
    THRESH_BINARY :大于阈值的像素值设置为 maxValue ,其余设置为 0。
    THRESH_BINARY_INV :大于阈值的像素值设置为 0,其余设置为 maxValue 。
    blockSize:指定计算阈值的邻域大小。

C:从计算得到的阈值中减去的常数值。用于微调二值化结果。
取均值**(ADAPTIVE_THRESH_MEAN_C)**
我们所用到的不断滑动的小区域被称之为核,比如3X3的小区域叫做3X3的核,并且核的大小都是奇数个,也就是3X3、5X5、7X7等。
加权求和**(ADAPTIVE_THRESH_GAUSSIAN_C)**
对小区域内的像素进行加权求和得到新的阈值,其权重值来自于高斯分布。
而在opencv里,当kernel(小区域)的尺寸为1、3、5、7并且用户没有设置sigma的时候(sigma <= 0),核值就会取固定的系数,这是一种默认的值是高斯函数的近似。

相关推荐
梦想不只是梦与想3 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
song150265372987 小时前
小型零部件外观检测难?AI机器视觉检测设备,适配全行业小件质检
人工智能·计算机视觉·视觉检测
xsd202411187 小时前
AI 智能美甲推荐系统技术全解析
人工智能·计算机视觉
原子延迟7 小时前
批量压缩视频会变大?HandBrake等3款(2026)
图像处理·人工智能·计算机视觉·音视频
奥惟斯8 小时前
GEO 上线前,先把这 3 类实体信号地基补上
人工智能·深度学习·机器学习·自然语言处理·数据挖掘·数据分析·知识图谱
apple_692658859 小时前
基于 Qwen-Image-2.1 的人物替换 LoRA 模型及部署工作流 人物替换的效果 吊打闭源
人工智能·计算机视觉
qq_25294131689 小时前
日本道路病害检测数据集 | 道路病害 裂缝检测 坑洼识别 市政巡检9287期
人工智能·深度学习·yolo·目标检测·计算机视觉·道路检测
Qianxueban9 小时前
如果卷积核大小固定,步长固定,那经过i次卷积,它一个像素的感受野是多大?
人工智能·深度学习·计算机视觉
qq_252941316810 小时前
伊蚊检测数据集 | 伊蚊检测 病媒生物 公共卫生 目标检测9304期
人工智能·yolo·目标检测·计算机视觉·蚊子·尹蚊
计算机毕业编程指导师11 小时前
基于深度学习的光伏组件红外图像缺陷识别系统设计与实现
人工智能·python·深度学习·目标检测·毕业设计·课程设计·光伏