当前位置: 首页 > article >正文

06_Machine Vision_图像分割

图像分割 Segmentation

图像分割是将图像划分成多个有意义的区域,当已经成功提取出感兴趣的对象时,分割过程就应该停止。

传统的图像分割算法主要基于像素的相似性(阈值定义相似区域)和不连续性(像素突变)来划分。

基于阈值的分割可表示为:
g ( x , y ) = { 1 , if  f ( x , y ) > T 0 , if  f ( x , y ) ≤ T g(x,y) = \begin{cases} 1, & \text{if } f(x,y) > T \\ 0, & \text{if } f(x,y) \leq T \end{cases} g(x,y)={1,0,if f(x,y)>Tif f(x,y)T

( T ) 作为门槛值,可表示为:

T = T [ x , y , p ( x , y ) , f ( x , y ) ] T = T[x,y,p(x,y),f(x,y)] T=T[x,y,p(x,y),f(x,y)]
其中 ( T ) 可选择为:

  • 全局阈值
    基于全图的灰度值决定,适用于光照均匀的图像,比如黑白文本识别
  • 局部阈值
    依赖于像素点和邻域点的灰度值,适用于光照不均匀的图像
  • 自适应阈值
    每个区域岁为止变化值不一样,适用于复杂的图像

启发式确定全局阈值:

  • 选择一个初始估计值 𝑇
  • 使用 𝑇 对图像进行分割,这将产生两个像素组:
    • G 1 G_1 G1:所有灰度值 > T T T 的像素
    • G 2 G_2 G2:所有灰度值 ≤ T T T 的像素
  • 计算这两个区域的像素的平均灰度值 μ 1 \mu_1 μ1 μ 2 \mu_2 μ2
  • 计算新的阈值,公式如下:
    T = 0.5 × ( μ 1 + μ 2 ) T = 0.5 \times (\mu_1 + \mu_2) T=0.5×(μ1+μ2)
  • 重复步骤 2 到 4,直到连续迭代中的阈值 T T T 小于与设定参数

    自适应局部阈值
  • 将原始图像划分为小区域
    • 初步分割后,可以通过直方图分析确定那个区域错误分割后,进一步分割
  • 对不同的子区域选择不同的阈值进行分割

不连续性检测

最简单的方式是用一个卷积滤波器来检测图像中的不连续性。设计不同的滤波器。

三种不连续检测的方法:

  • 点检测
    [ − 1 − 1 − 1 − 1 8 − 1 − 1 − 1 − 1 ] \begin{bmatrix} -1 & -1 & -1 \\ -1 & 8 & -1 \\ -1 & -1 & -1 \end{bmatrix} 111181111

    R = ∑ i = 1 9 w i z i R = \sum_{i=1}^{9} w_i z_i R=i=19wizi

    可识别出孤立的中心点。

  • 线检测

    • Horizontal Edge Detection Kernel
      [ − 1 − 1 − 1 2 2 2 − 1 − 1 − 1 ] \begin{bmatrix} -1 & -1 & -1 \\ 2 & 2 & 2 \\ -1 & -1 & -1 \end{bmatrix} 121121121

    • +45° Edge Detection Kernel
      [ − 1 − 1 2 − 1 2 − 1 2 − 1 − 1 ] \begin{bmatrix} -1 & -1 & 2 \\ -1 & 2 & -1 \\ 2 & -1 & -1 \end{bmatrix} 112121211

    • Vertical Edge Detection Kernel
      [ − 1 2 − 1 − 1 2 − 1 − 1 2 − 1 ] \begin{bmatrix} -1 & 2 & -1 \\ -1 & 2 & -1 \\ -1 & 2 & -1 \end{bmatrix} 111222111

    • -45° Edge Detection Kernel
      [ 2 − 1 − 1 − 1 2 − 1 − 1 − 1 2 ] \begin{bmatrix} 2 & -1 & -1 \\ -1 & 2 & -1 \\ -1 & -1 & 2 \end{bmatrix} 211121112


http://www.kler.cn/a/550336.html

相关文章:

  • string类详解(上)
  • Redis日志分析
  • git在工作流程中的使用
  • 箭头函数的this指向谁
  • 用React实现一个登录界面
  • 文档处理控件TX Text Control系列教程:使用 .NET C# 从 PDF 文档中提取基于模板的文本
  • android 自定义view时钟显示
  • 以 Serverless 低成本的⽅式 快速在亚马逊云科技上部署 DeepSeek
  • DeepSeek 实用万能提问模板
  • USB2.03.0接口区分usb top工具使用
  • Swift - 引用计数
  • Pipeline 获取 Jenkins参数
  • 通过小型语言模型尽可能简单地解释 Transformer
  • Linux自学day21-拷贝图片,统计字符,文件IO,目录IO
  • 鸿蒙开发 当前app 拉起支付宝app
  • 算法基础 -- Fenwick树的实现原理
  • 如何使用OPENAI的Whisper功能进行音频字母提取功能
  • 情书网源码 情书大全帝国cms7.5模板
  • matlab齿轮传动
  • idea 2019.3常用插件