数字图像处理第十一章

2023-11-16

表示和描述

由于本章注重于如何存储,以后学习过程中多半不会用到该章节的知识,因此本章只做大概介绍,不再使用代码进一步说明。

将一幅图像分割成多个区域后,分割后的像素集需要以一种合适于计算机进一步处理的形式来表示和描述。

  • 表示

    • 表示一个区域的两种选择:根据区域外部特征(如边界)来表示区域或者根据内部特征(如组成该区域的像素)来表示区域。当关注的重点是形状特征时,可选择外部表示;当关注的重点是内部属性(如颜色和纹理)时,可选择内部表示。
    • 表示是直接具体地表示目标,好的表示方法应具有节省存储空间易于特征计算等优点。
    • 表示的下一步工作是描述。表示方式的选择要使数据有利于描述工作的展开。
  • 描述
    描述是较抽象地表示目标。好的描绘子都应尽可能对目标的大小、平移、旋转等不敏感,这样的描绘子比较通用。

表示

边界追踪

边界追踪就是一种找边界的方法,它的输出是排序过的边界点的序列。

后续讨论均基于以下准则:

  1. 二值图像,目标为1,背景为0
  2. 图像已用值为0的边界填充,避免与边界相连
  3. 所有讨论均针对于单个区域

该算法是在当前点的8邻域(摩尔邻域)内顺时针找黑色像素,找到则递归进行下一步。
在这里插入图片描述

链码

链码通过具有指定长度和方向的直线段的顺次连接来表示边界。该表示基于线段的4连接或8连接。每个线段的方向用数字编码方案编码。也称为佛雷曼链码。
在这里插入图片描述
算法:给每个线段一个方向编码(4方向和8方向两种),从起点开始,沿边界进行编码,至起点被重新碰到,一个对象的编码完成。
但是,上述算法会对每个线段的方向进行编码,这样可能会导致链码过长的问题。于是就有了另一种解决方法:将图像分为一个个小的网格(如下图所示),仅有边界穿越网格时才对方向编码。这样一来,就可以在损失一定精度的情况下得到边界的近似表示(如果每个像素一个网格则没有损失精度)。
在这里插入图片描述

使用最小周长多边形的多边形近似

数字边界可以用多边形以任意精度来近似。对一条闭合边界,当多边形的边数等于边界上的点数时,该近似就会很精确,此时每对相邻点定义了多边形的一条边。多边形近似的目的是用尽可能少的线段获取给定边界的基本形状。实际中,很有效的近似技术是用最小周长多边形(MPP)来表示边界。

所有MPP的顶点与多边形边界的内墙或外墙(图中的浅灰色边界)的角点一致。边界由4连接的直线段组成。多边形的凸顶点和凹顶点分别用白点和黑点表示。只有内墙的凸顶点和外墙的凹顶点才能成为MPP的顶点。
在这里插入图片描述

标记图

前述均是以直角坐标来存储边界,标记图则使用极坐标来存储边界,如下图:
在这里插入图片描述
无论如何生成标记,基本思想都是将边界表示简化为比原始二维边界更简单的一维函数。

边界线段

通过将边界分段以简化描述过程。以进入和离开一个凸缺为依据,对边界分段。
在这里插入图片描述

一个任意集合S的凸壳H是包含S的最小凸集,H-S称为集合S的凸缺D.标记加入或离开一个凸缺的转变点。

骨架

表示平面内结构形状的一种重要方法是将它简化为图形。通过骨架化(细化)算法得到该区域的骨架来实现。

一个区域的骨架可以用中轴变换(MAT)来定义:R是一个区域,B为其边界,对R中的每个点p,寻找p最邻近B的点,若这样的点多于一个,则称这样的点的集合构成区域R的骨架。可以用“草原之火”来形象化:大火从边界开始以相同的速度向中心燃烧,它们集合的地方就是骨架。鉴于前面的章节已介绍过,此处略去不表。

边界描绘子

描绘子可以简单的理解为,存储某个特征的东西。在此处,即为描述边界的某些特征的东西。

一些简单的描绘子

  • 长度:即边界长度
  • 直径:边界上的两个点的距离
  • 偏心率:长轴和短轴的比率
    • 长轴:连接边界最远点对的线段
    • 短轴:与长轴垂直的线段
  • 曲率:斜率的变化率

形状数

  • 形状数:最小的链码差分码
    • 差分码:链码的一种改进,只有变换方向时才改变编码,否则为0。

形状数的阶定义为其表示的数字个数。例如8阶形状数表示为其最多可以表示8个数字。显然阶数越高,表示的边界越精确。

傅里叶描绘子

图像中边界上的每个点都可以由坐标 ( x , y ) (x,y) (x,y)表示,如果把这个坐标的x当作实数,y当作虚数,那么可以一维化为 x + y i x+yi x+yi。再然后,我们可以对这一组复数做傅里叶变换,就能得到一个傅里叶描绘子。

统计矩

这里的统计矩就是概率论中学到的一阶矩二阶矩等,此处略去不表。
该描绘子时这样的到的:将一段边界旋转并表示为函数,参见下图:
在这里插入图片描述
然后统计其直方图(也就是 P ( g ( r ) = K ) P(g(r)=K) P(g(r)=K)意思是 g ( r ) g(r) g(r) K K K的概率)。对这个随机事件统计其n阶矩阵。

通常而言,低阶矩描述图像的整体特征:

  • 零阶矩反映了目标的面积、一阶矩反映目标的质心位置、二阶矩反映了目标的主轴、辅轴的长短和主轴的方向角。

高阶矩主要描述了图像的细节:

  • 如目标的扭曲度和峰态的分布等。

区域描绘子

主要讨论区域的纹理描述、不变矩描述和其他简单描述

简单的描绘子

  1. 面积:区域中像素的数量。
  2. 周长:区域边界的长度。
  3. 致密性: 周 长 2 / 面积 周长^2/面积 2/面积
  4. 圆度率:区域面积 / 具有相同周长的圆的面积(之所以采取圆是因为圆的致密度是最高的,这一点可以由相同周长的图形中圆的面积最大这一点得知)

拓扑描绘子

拓扑是一种数学概念,用于描述物体之间的连接关系和空间结构。它关注的是物体之间的相对位置和如何通过形变而不改变其本质特征来进行连接。

可以将拓扑视为一种比较宽泛的关系,它忽略了具体的度量和形状,只关注物体之间的连接方式。可以想象拓扑是关于空间结构的一种抽象描述,它关注的是"是什么连接到了一起",而不是具体的距离或形状。

通常情况下,拓扑描绘子包括:

  • 孔洞数
  • 连通分量数
  • 欧拉数

其中欧拉数E可有下面的公式定义:
E = C − H E = C - H E=CH
其中C为孔洞数,H为连通分量数

纹理

纹理描述主要有三种方法:统计方法、结构方法、频谱方法。

  • 统计方法考察纹理的平滑、粗糙、粒状等特征;
  • 结构方法考察纹理的排列描述;处理图像像元的排列;
  • 频谱方法考察纹理的周期性。基于傅里叶频谱的特性。
统计法

该方法是基于灰度直方图的统计特性。令z表示灰度的一个随机变量,p(z)表示其概率,再进行一些计算,即可得到如下图所示的描绘子。
在这里插入图片描述

  • 灰度共生矩阵
    仅使用直方图计算得到的纹理测度不携带像素彼此间的相对位置信息,但在描述纹理时,这些很重要。因此引入灰度共生矩阵。这种方法不仅考虑灰度的分布,还考虑图像中像素的相对位置。
    灰度共生矩阵的生成方式:令Q是定义两个像素彼此相对位置的一个算子,并考虑一幅具有L个可能灰度级的图像f,令G为一个矩阵,其元素gij是灰度为zi 和zj的像素对出现在f中由Q所指定的位置处的次数,其中1 <= i,j<=L。按照这种方法形成的矩阵称为灰度共生矩阵
    在这里插入图片描述
    比如此处,定义算子Q为横向两个元素一组,那么(1,1)这个组合一共出现了一次,在共生矩阵(1,1)的位置填上1;(6,2)这个组合一共出现了3次,那么共生矩阵(6,2)的位置就填上3。
    此外,如果矩阵太大了,还可以划分灰阶,如将256阶矩阵划分为64阶这样子来降低复杂度。
    在后续计算过程中,需要将 g i j g_{ij} gij归一化,也就是:
    p i j = g i j / n p_{ij} = g_{ij}/n pij=gij/n
    其中n是原图像f中像素总数,这样一来就可以避免图像大小对于共生矩阵的干扰。
    最后,可以用如下图的公式来计算:
    在这里插入图片描述
结构法

一个简单的“纹理基元”可以借助一些规则用于形成更复杂的纹理模式,这些规则限制基元(或这些基元)的可能排列的数量。

频谱方法

非常适合描述图像中的二维周期或近似二维周期模式的方向性。

特点:

  1. 频谱中突出的尖峰给出纹理模式的主要方向
  2. 频谱中突出的尖峰的位置给出模式的基本空间周期
  3. 采用滤波方法消除任何周期分量而留下的非周期性图像元素

频谱是关于原点对称的,故只要考虑半个频率平面。
使用极坐标表示频谱所得到的函数 S ( r , θ ) S(r,\theta) S(r,θ)可以频谱特性的解释:S是频谱函数,r和θ是极坐标系中的变量。对每个方向θ, S ( r , θ ) S(r,\theta) S(r,θ)视为一个一维函数 S θ ( r ) S_\theta(r) Sθ(r)。类似的,对每个频率r, S r ( θ ) S_r(\theta) Sr(θ)也是一个一维函数。对固定值θ分析 S θ ( r ) S_\theta(r) Sθ(r),可得到从原点出发沿半径方向的频谱特性,对固定值r分析 S r ( θ ) S_r(\theta) Sr(θ),可得到以原点为圆心的一个圆上的频谱特性。

不变矩

具体理论不做介绍,因为这个东西后面多半是用不到的,只需要知道图像的二维(p+q)阶矩中有7个是不论平移、尺度变化、镜像(内部为负号)和旋转都是不变的。

使用主分量进行描绘

主分量描述适用于边界和区域。用在区域(图像)上可以抽取方差最大的分量(主分量),用在边界上可以对其做缩放、平移和旋转的归一化。
主分量变换,又叫霍特林变换。

主分量(PCA)一般用于数据降维,因为大特征值对应图像细节(高频)。

主分量变换简单描述为下列步骤:

  1. 将彩色图片的每个像素视作一个向量
  2. 求1中向量的均值向量 m x m_x mx和协方差矩阵 C x C_x Cx。其中 C x C_x Cx是一个实对称矩阵,总可以找到n个正交特征向量
  3. 进行主分量变换,其中A是 C x C_x Cx的特征矩阵,特征值由大到小排列: y = A ( x − m x ) y = A(x-m_x) y=A(xmx)
  4. 使用公式进行重建: x = A T y + m x x = A^Ty+m_x x=ATy+mx

值得注意的是,由于A中的特征值是从大到小排列,且越大的特征值对应着更加"主"的分量。因此,计算特征矩阵A的过程中可以只取较大的一些特征值,从而能够在后续丢弃掉一些不太重要的分量。

关系描绘子

挖掘各个成分之间的结构关系,旨在用一套模式来描述边界或区域。

简而言之,就是构建一套规则,这套规则将二维关系映射为一组符号。然后通过这组符号将二维的关系转化成字符串

  • 阶梯关系编码在这里插入图片描述
  • 骨架关系编码在这里插入图片描述
  • 树形结构编码在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字图像处理第十一章 的相关文章

随机推荐

  • 服务器内存信息,查看linux服务器内存信息

    查看服务器内存信息 dmidecode grep P A5 Memory s Device grep Size email protected home dmidecode grep P A5 Memory s Device grep Si
  • shell 脚本中数字判断

    数字的判断 int1 eq int2 两数相等为真 int1 ne int2 两数不等为真 int1 gt int2 int1大于int2为真 int1 ge int2 int1大于等于int2为真 int1 lt int2 int1小于i
  • 代码随想录 - Day35 - 回溯:重新安排行程,棋盘问题

    代码随想录 Day35 回溯 重新安排行程 棋盘问题 332 重新安排行程 输入 tickets JFK SFO JFK ATL SFO ATL ATL JFK ATL SFO 输出 JFK ATL JFK SFO ATL SFO 解释 另
  • 什么是「穷人思维」?

    https www zhihu com question 26980862
  • forEach

    function sum args let s 0 args forEach item gt s item
  • 四种解决”Argument list too long”参数列表过长的办法

    四种解决 Argument list too long 参数列表过长的办法 转自 http hi baidu com cpuramdisk item 5aa49ce00c0757aecf2d4f24 在linux中删除大量文件时 直接用rm
  • 调试web项目时Chrome浏览器发送两次请求

    最近调试web项目时 项目有时候会因为接收到空值而报错 之后我发现是因为Chrome浏览器会连续发送2次请求导致 在使用Edge浏览器则没有出现这个问题 遂搜索了一些解决方案如下 https blog csdn net weixin 390
  • Relational Knowledge Distillation解读

    Relational Knowledge Distillation解读 Relational Knowledge Distillation Title Summary Research Objective Problem Statement
  • 图形学相关期刊和会议的基本信息

    目录 期刊 A类 ACM TOG A类 IEEE TIP A类 IEEE TVCG B类 TOMCCAP B类 CAGD B类 CGF B类 CAD B类 GM B类 TCSVT B类 TMM B类 SIIMS C类 CGTA C类 CAV
  • GDB -- 多线程堆栈

    1 死机后 输入 info threads 查看所有thread信息 2 thread apply all bt 显示所有的线程堆栈 示例 gdb info threads Id Target Id Frame 3 Thread 0xb77
  • html写了外部样式表,外部样式表怎么写

    1 css内部样式表怎么写 1 创建使用css样式表有三种 分别是外部样式表 内部样式表和内联样式 下面通过一个小demo演示它们的用法 首先新建一个html文件 放入3个button按钮 给前两个按钮分百别设置class属性为btn1和b
  • spring中的设计模式

    转自 http ylsun1113 iteye com blog 828542 我对设计模式的理解 应该说设计模式是我们在写代码时候的一种被承认的较好的模式 就像一种宗教信仰一样 大多数人承认的时候 你就要跟随 如果你想当一个社会存在的话
  • 11. Container With Most Water

    Given n non negative integers a1 a2 an where each represents a point at coordinate i ai n vertical lines are drawn such
  • ESP32C3解锁使用IO11

    目录 1 使用pip安装esptool 2 安装idf开发命令行环境 可参考 3 将开发板插入电脑 4 打开IDF CMD命令行 5 打开命令行窗口 源自官方wiki 本篇介绍如何给ESP32C3多释放一个io ESP32C3的GPIO11
  • 如何从JavaScript数组中获取多个随机唯一元素?

    The JavaScript is a very versatile language and it has a function almost everything that you want JavaScript是一种非常通用的语言 它
  • Everything使用攻略和技巧

    Everything使用技巧 www hi channel com出品本文为H4海畅智慧原创文章 未经允许不得进行商业盈利性转载 非盈利性商业转载请注明出处www hi channel com 1 Everything下载地址 http w
  • access和tagware_通信缩略语

    英文缩写 英文名称 中文名称 3G The third generation mobile communications 第 3 代 移动通信 3GPP2 3rd Generation Partnership Project 2 3G 协作
  • 在论文开题报告中,研究目的和研究意义两者之间有什么区别吗?

    相信很多同学在接触论文的时候 会分不清研究目的和研究意义两者之间有什么区别 别着急 通过对大量文献的分析并根据数位研究生导师的讲解 这里总结出一篇针对二者区别的详细解读 全文大约有2000字 利用理论和实例全方位为大家解惑 选题的目的和意义
  • 【Spring Boot 集成应用】Spring Boot Admin的集成配置使用

    1 Spring Boot Admin 简介 Spring Boot Admin是一个开源社区项目 用于管理和监控SpringBoot应用程序 每个应用都认为是一个客户端 通过 HTTP 或者使用 Eureka 注册到 admin serv
  • 数字图像处理第十一章

    表示和描述 由于本章注重于如何存储 以后学习过程中多半不会用到该章节的知识 因此本章只做大概介绍 不再使用代码进一步说明 将一幅图像分割成多个区域后 分割后的像素集需要以一种合适于计算机进一步处理的形式来表示和描述 表示 表示一个区域的两种