一、颜色矩
在图像处理和计算机视觉中,颜色矩(Color Moment)是一种用于描述和分析图像颜色特征的简便方法。颜色矩可以帮助我们提取图像中的颜色信息,从而在图像分类、物体识别等任务中起到重要作用。下面我们将逐步解释这段话的含义。
1. 什么是颜色矩?
颜色矩是通过对图像中的颜色分布进行统计计算而得到的一组特征值。通常情况下,一个图像会被表示为一个多维空间,其中每个维度代表一种颜色(例如,红色、绿色和蓝色)。颜色矩通过计算这些颜色的分布,提供关于图像的颜色特征信息。
2. HIS空间
HIS空间是颜色空间中一种表示方式,主要包括以下三个分量:
H(Hue):色相,表示颜色的类型(如红色、绿色等)。
I(Intensity):明度,表示颜色的亮度。
S(Saturation):饱和度,表示颜色的纯度或强度。
在图像处理中,HIS空间常用于替代RGB空间,因为HIS空间更符合人类的视觉感知。
3. H分量
在HIS空间中,H分量是表示颜色类型的重要指标。每个像素在HIS空间中的H值可以通过将RGB颜色空间的值转换为HIS空间的方式计算得到。
4. 中心矩
中心矩是一种描述数据分布特征的统计量,用于量化数据的形状和集中程度。对于图像的颜色特征,前三阶中心矩分别有以下含义:
- 零阶矩(0th Moment):表示图像中所有像素的总和,通常用来表示图像的总亮度或颜色总量。
- 第一阶矩(1st Moment):表示颜色的平均值。对于H分量,其计算公式为所有H值的加权平均,给出图像的主要颜色特征。
- 第二阶矩(2nd Moment):表示颜色的方差或分散程度,反映了颜色的变化和多样性。它可以帮助了解图像中色彩的变化程度。
- 第三阶矩(3rd Moment):描述颜色分布的偏态(Skewness),反映了颜色分布的对称性。这个特征可以用于识别图像中是否存在偏色现象。
5. 计算示例
假设图像P的每个像素的H分量用 Hi 表示,其中 i 代表图像中每个像素的位置。则前三阶颜色矩的计算公式如下:
零阶矩 :
(图像中所有像素的总数)
第一阶矩:
(所有H值的平均值)
第二阶矩 :
(H值与平均值的差的平方的平均值,表示方差)
第三阶矩:
(H值与平均值的差的立方,表示偏态)
总结:
通过计算图像每个像素的H分量的前三阶中心矩,可以有效地提取出图像的颜色特征。这些特征在图像分析、分类和识别中起到关键作用。颜色矩是一种简单而有效的方式来捕捉图像的颜色信息,为后续的图像处理步骤提供基础。
二、链码
这段话描述的是在计算机视觉和图像处理领域中,如何用链码(Chain Code)来表示目标的边界,以及如何通过一阶差分来解决旋转不变性的问题。我们来逐步解析这段话的内容。
1. 什么是链码?
链码是一种用来表示图像中物体边界的编码方式。链码将物体的边界分解为一系列沿着边界的线段,通常使用方向来表示这些线段。常见的链码有8方向链码,其中每个方向用一个数字表示,例如:
- 0:向右
- 1:右上
- 2:向上
- 3:左上
- 4:向左
- 5:左下
- 6:向下
- 7:右下
链码通过记录边界的方向变化,形成一个序列,例如“1, 2, 2, 3, 4”等,表示从一个方向转到另一个方向。
2. 平移和旋转的影响
平移:当目标图像平移时,链码的方向不变,因为边界的形状和方向没有改变,只是位置发生了变化。链码仍然可以准确表示边界。
旋转:当目标图像旋转时,链码的方向会改变。例如,如果对象顺时针旋转45度,原先的方向序列“0, 1, 2”可能会变为“7, 0, 1”。这使得链码不再能够唯一标识目标的边界,因为旋转后的链码与原始链码不同。
3. 解决旋转不变性的问题
为了使链码在旋转时保持一致性,可以使用一阶差分(First Difference)。一阶差分是一种通过计算相邻两个方向之间的变化来捕捉边界的变化。
一阶差分的计算
一阶差分是通过对相邻的两个方向数进行相减(后一个减去前一个)来计算的。公式如下:
差分码[i] = 链码[i+1] - 链码[i]
在链码的最后一个方向与第一个方向之间也要进行计算,即考虑链码是循环的。
4. 示例说明
假设有一个链码序列表示某个目标的边界,记为:
原链码:[2, 3, 3, 4]
通过计算相邻两项的差分,得到:
差分码:[3-2, 3-3, 4-3, 2-4] = [1, 0, 1, -2]
在这个例子中,如果目标进行逆时针旋转90度,原链码可能会变成:
旋转后的链码:[1, 2, 2, 3]
但是,经过一阶差分计算后,虽然原链码发生了变化,差分代码可能仍然保持不变,表示对象的边界特征保持一致。
5. 总结
通过使用链码和计算一阶差分的方式,可以有效地描述图像目标的边界,同时保持对旋转的鲁棒性。这样,即使目标旋转,差分码仍然能够反映目标的边界变化,提供了较好的方向一致性,使得后续的图像分析和识别更加准确。
三、链码归一化
1. 什么是链码归一化?
链码归一化(Chain Code Normalization)是用于处理链码的一种技术,旨在解决链码在不同旋转和位置下的变化问题,使得链码能够更好地表示图像中对象的形状特征,而不受姿态变化的影响。下面是对链码归一化的详细解释:
2. 问题所在
旋转影响:当对象在图像中旋转时,链码的值会发生变化。例如,一个向右的边界在旋转后可能变成向上,这样的变化使得直接比较链码变得困难。
平移影响:平移并不会改变链码,但在实际应用中,旋转和平移往往是同时发生的。
3. 归一化的目的
链码归一化的目的是:
消除旋转影响:使得无论目标如何旋转,链码都能保持一致性。
提高匹配准确性:在进行形状识别、物体检测等任务时,归一化后可以更有效地比较和匹配不同姿态的对象。
4. 如何进行链码归一化?
链码归一化通常包含以下步骤:
1. 计算一阶差分:如前述,一阶差分用于计算相邻方向之间的变化,以捕捉边界的形状信息。
2. 选择一个标准起始点:在归一化过程中,可以选择链码中的一个固定方向(通常是最小的或最大的一项)作为起点,通过旋转链码序列,确保归一化后的链码从这个标准方向开始。
3. 生成归一化的链码序列:通过从选择的起始点开始,重新排列链码的方向,形成一个新的链码序列,这个序列能够保持对旋转不变。
5. 示例
假设有两个链码表示同一对象,但由于旋转,链码表示方式不同:
- 链码A:[1, 2, 3, 4]
- 链码B(旋转后):[2, 3, 4, 5]
进行归一化时,可以选择链码A的最小值(1)作为起点,然后重新排列链码A和链码B,使得它们都从相同的方向开始。例如,可以将链码B的顺序调整为\[1, 2, 3, 4\],然后比较这两个链码。
6. 总结
链码归一化是一种重要的技术,可以使得链码在表示形状时具有更好的鲁棒性和一致性,适用于各种图像处理和计算机视觉任务。通过归一化,我们可以减少由于物体旋转带来的链码变化,从而提高形状识别和匹配的准确性。希望这个解释能够帮助您理解链码归一化的概念!如果您还有其他问题,请随时询问。
四、傅立叶描述子
1. 边界点的表示
假设我们有一个由K个点组成的边界,这些点在xy平面上分布。例如,一个简单的形状,如一个圆,或者更复杂的轮廓。在这个边界上,您可以选择任意一个点作为起始点,然后沿着边界的顺时针方向逐点连接,最终回到起始点,这样就形成了一个点序列:。其中每个点
可以用坐标表示为
。
2. 复数表示
为了方便使用傅立叶变换,我们将每个点 用复数形式表示:
。这里,j 是虚数单位,表示复数的虚部。
3. 傅立叶变换
接下来,对这一点序列 \(s(k)\) 应用傅立叶变换,计算傅立叶系数 \(S(u)\)。傅立叶变换会将时间(或空间)域的信号转化为频域表示。在频域中,低频分量通常对应于形状的基本特征(如整体轮廓),而高频分量则对应于细节(如边缘和纹理)。
4. 选择傅立叶系数
在傅立叶描述子的应用中,我们通常只使用前M个傅立叶系数来重建形状。这样做的好处是:
保持基本形状:前M个低频分量能够很好地表示形状的主要特征。
减少计算量:使用较少的系数可以简化计算,同时避免噪声影响。
近似形状重构:
通过选择前M个系数,可以得到近似的形状表示:
在这个表达式中,u 的范围被限制为前M个频率项,而\(k\) 的范围仍然是从0到K-1。这意味着在近似重构的过程中,边界上的点数保持不变,但用于重建的频率项减少了。
五、“隙码表示”和“链码表示”
1. 隙码表示
概念
隙码表示是处理图像中的区域和背景的一种方式。在图像中,像素可以看作是一个个小方块(单位面积),这些小方块可以组成不同的形状或区域。
在这种表示中,区域指的是图像中某个特定的对象(如一个数字或一个形状),而背景则是指周围的空白部分。
区域和背景的关系
当我们观察这个图像时,可以将区域和背景想象成由小方块组成的拼图。区域的边界就是区域和背景之间的“缝隙”,这条缝隙的长度被称为**周长**。
周长的计算
在隙码表示中,周长是区域与背景交界的缝隙长度的总和。由于交界线只沿着水平和垂直两种方向,计算周长相对简单。
2. 链码表示
概念
链码表示是一种更为细致的图像边界描述方法。当我们将图像中的像素看作独立的点,周长被定义为区域边界上像素的**8链码**的长度之和。
8链码
- 8链码是用来表示边界上像素的方向信息的,方向分为8个:
- 0:向上
- 1:右上
- 2:向右
- 3:右下
- 4:向下
- 5:左下
- 6:向左
- 7:左上
六、矩
1.什么是矩?从物理学偷来的“神器”
想象一下,你在玩跷跷板,跷跷板的平衡取决于两边的人有多重(质量)和他们离支点有多远(力臂)。物理学里,这个“质量 × 力臂”的计算就叫“矩”。图像处理里,我们把这个概念偷过来,把图像看成一张布满小颗粒的平面,每个像素就像一个小质点,亮度(灰度值)是它的“重量”,坐标是它的“位置”。通过计算这些“质点”的各种“矩”,我们就能抓住图像的形状特征。
简单说,矩就是用数学的方式,把图像的像素分布“称重”并“测量距离”,然后总结成一堆数字,用来描述图像长啥样。
2.为什么矩能描述图像?唯一性定理的“魔法”
有个叫帕普利斯(Papoulis)的大牛在1965年证明了一个定理:只要图像不是乱七八糟的(比如在有限区域内有值,不是到处无限大),它的所有“矩”(从低阶到高阶)就能像指纹一样,唯一地代表这张图像。反过来,这些“矩”也能把图像重新“画”出来。这就像你用一串数字密码锁定了图像的“灵魂”,别人拿不到原图也能知道它长啥样。
比如:
- 零阶矩 M00:把所有像素的灰度加起来,像算一块木板的总重量。如果图像是二值图(只有0和1),这就直接是面积。
- 一阶矩 M10 和 M01:分别算像素灰度乘以横坐标和纵坐标的总和,除以 M00 就得到图像的“重心”(质心),就像找到木板的平衡点。
- 二阶矩 M20 和 M02:类似物理里的“惯性矩”,告诉你图像的灰度分布有多“扁平”或“细长”。比如 M20 大于 M02,说明图像可能横着拉长,像根扁平的棍子。
3.中心矩:从“重心”看世界
普通矩是基于坐标原点(0,0)算的,但图像位置一变,矩就变了,太不稳定。所以我们改用“中心矩”,把坐标原点挪到图像的灰度重心。这样,中心矩描述的是灰度相对于重心的分布,像是在重心视角下重新审视图像。
举个例子:
- m20 和 m02:围绕重心的水平和垂直“惯性矩”。如果 m20 > m02,图像可能是个横条;反过来可能是竖条。
- m30 和 m03:三阶中心矩,衡量图像对称性。如果图像左右对称或上下对称,这俩值会是零。比如一个圆,m30 和 m03 都是 0,因为它完美对称。
4.不变矩:形状的“万能钥匙”
普通矩和中心矩有个问题:图像平移、缩放、旋转后,值就变了,认不出来。为了解决这个,聪明人发明了“归一化中心矩”和“不变矩”。通过一些数学魔法(归一化和组合),算出了 7 个特殊的“矩不变量”,它们不管图像怎么平移、缩放、旋转,值都不变,像一把能打开任何变形锁的钥匙。
这 7 个不变矩就像图像的“DNA”,抓住形状的本质。比如:
- 一个圆,不管放大缩小还是旋转,它的不变矩永远一样。
- 一个飞机轮廓,不管怎么摆拍,照样能被认出来。
5.数字图像的“瑕疵”:离散化的影响
现实中,图像不是连续的,而是由一个个像素点组成的(比如 M×N 的网格)。这种“点阵化”会让矩计算有点失真,尤其是高阶矩(像 m30、m03 这种)。为什么?
- 低阶矩(如 M00、M10)主要看整体,比如面积、重心,受像素化影响小。
- 高阶矩(如 m30、m03)关注细节,比如边缘的小弯曲,但像素化会让边缘变“锯齿”,算出来的值就不准。
就好比你用粗糙的乐高块拼一个圆,整体形状还行,但细看边缘全是方块,细节丢了。
6.不变矩有啥用?从字符到染色体
这些不变矩很牛,因为它们能抓住形状的“灵魂”,而且抗干扰(平移、缩放、旋转都不怕)。所以被用在很多地方:
- 字符识别:印刷体的“A”和“B”,不管字体大小、位置咋变,不变矩都能区分。
- 飞机形状区分:雷达拍到的飞机轮廓,角度不同也能认出来。
- 景物匹配:两张照片里的山,角度不同也能对上号。
- 染色体分析:显微镜下的染色体形状,用不变矩来分类。
7.用公式“画”出来:(p+q)阶矩
- 比如:
- M00=∑f(i,j):总灰度(面积)。
- M10=∑if(i,j):横坐标加权和。
- M01=∑jf(i,j):纵坐标加权和。
中心矩则是把 i 和 j 换成相对于重心的偏移量,归一化和不变矩再加点数学处理,就成了“万能钥匙”。
8.总结:不变矩的深刻之处
不变矩就像给图像拍了个“灵魂照”,不管它怎么变形(平移、缩放、旋转),都能认出来。它从物理学的“矩”借来灵感,用数学锁住形状特征,虽然细节上有点小瑕疵(离散化影响),但整体上非常强大。无论是认字、找飞机,还是分析染色体,它都像个万能侦探,抓住本质不放手。
在计算不变矩之前,我们先要搞清楚中心矩和归一化中心矩:
- 中心矩 :基于图像灰度重心(质心)计算的矩
- 归一化中心矩 :为了消除缩放的影响,用零阶矩 μ00(面积)归一化
七个不变矩(记为 ϕ1到 ϕ7)就是用这些 ηpq(主要是二阶和三阶)组合出来的,具体公式和含义如下。
9.七个不变矩的含义
1. ϕ1=η20+η02
- 含义:描述图像形状的“整体分散程度”或“扁平度”。
- 通俗解释:这是二阶中心矩的简单加和,类似物理里物体的“总惯性矩”。它告诉你图像的灰度分布有多“散”——值越大,形状越“摊开”;值越小,形状越“紧凑”。比如一个圆和一个细长条,圆的 ϕ1更小,因为它更集中。
- 几何直觉:像在问:“这张图的像素分布是胖乎乎的还是瘦长长的?”
2. ϕ2=(η20−η02)^2+4η11^2
- 含义:反映形状的“方向性”或“拉伸不对称性”。
- 通俗解释:这个值看的是图像在水平(η20)和垂直(η02)方向的惯性矩差异,再加上交叉项 η11(斜向分布)的贡献。如果 η20 和 η02 差不多(比如圆),ϕ2就小;如果差别大(比如长条),ϕ2 就大。4η1124η112 则加上了对角线方向的“扭力”。
- 几何直觉:像在问:“这张图是横着拉长、竖着拉长,还是有点歪斜?” 一个正方形和一个矩形,矩形的 ϕ2更大。
3. ϕ3=(η30−3η12)^2+(3η21−η03)^2
- 含义:衡量形状的“三阶不对称性”(偏斜程度)。
- 通俗解释:三阶矩(如 η30、η03)反映形状相对于重心的偏斜,比如图像是不是“头重脚轻”。ϕ3把水平方向(η30−3η12)和垂直方向(3η21−η03)的偏斜组合起来。如果形状完全对称(像圆或正方形),这些三阶项会互相抵消,ϕ3接近 0。
- 几何直觉:像在问:“这张图是不是有点歪,像个不规则的三角形?” 一个对称的圆 ϕ3 是 0,一个歪斜的“L”形会很大。
4. ϕ4=(η30+η12)^2+(η21+η03)^2
- 含义:另一种“三阶不对称性”,关注不同方向的偏斜组合。
- 通俗解释:和 ϕ3类似,但它用的是加法组合(η30+η12η30+η12 和 η21+η03η21+η03),而不是减法。反映的是另一种偏斜模式,强调三阶矩的“协同效应”。值越大,说明形状在某些方向上更“扭曲”。
- 几何直觉:像在问:“这张图的偏斜是不是有点复杂,像个不规则四边形?” 和 ϕ3ϕ3 一起,能更全面地描述不对称性。
5. ϕ5=(η30−3η12)(η30+η12)[(η30+η12)^2−3(η21+η03)^2]+(3η21−η03)(η21+η03)[3(η30+η12)^2−(η21+η03)^2]
- 含义:结合三阶矩的“偏斜”与“方向性”的复杂特征。
- 通俗解释:这个公式看着吓人,其实是 ϕ3和 ϕ4 的“高级混合版”。它不仅看偏斜(η30−3η12η30−3η12 等),还看这些偏斜如何与整体形状的“拉伸”交互。值的大小和正负反映了形状的复杂不对称性。
- 几何直觉:像在问:“这张图的歪斜和拉伸是不是互相影响,像个扭来扭去的怪形?” 它能区分更复杂的形状,比如一个旋转的“S”形。
6. ϕ6=(η20−η02)[(η30+η12)^2−(η21+η03)^2]+4η11(η30+η12)(η21+η03)
- 含义:结合二阶“方向性”和三阶“偏斜”的交互。
- 通俗解释:这里把二阶的“扁平度差异”(η20−η02)和三阶的“偏斜组合”混在一起,再加上 η11 的斜向影响。它描述的是形状在拉伸和偏斜上的“耦合效应”。比如一个拉长的形状如果还歪了,ϕ6会捕捉这种特性。
- 几何直觉:像在问:“这张图是扁平的还是细长的,同时还歪不歪?” 一个歪斜的长条和一个对称的长条,ϕ6 会不同。
7. ϕ7=(3η21−η03)(η30+η12)[(η30+η12)^2−3(η21+η03)^2]−(η30−3η12)(η21+η03)[3(η30+η12)^2−(η21+η03)^2]
- 含义:最高级的“不对称性与方向性”综合指标。
- 通俗解释:这是 ϕ5的“镜像版”,通过改变正负号组合,进一步挖掘三阶矩的复杂特性。它特别敏感于形状的细微不对称和旋转方向,能区分镜像对称但方向相反的形状(比如顺时针和逆时针的螺旋)。
- 几何直觉:像在问:“这张图的复杂歪斜有没有方向性,像个旋涡还是反旋涡?” 它能区分一个“左撇子”和“右撇子”的形状。
总结:七个不变矩的“分工”
- ϕ1:整体分散度,像个“胖瘦探测器”。
- ϕ2:方向性拉伸,像个“扁长测量仪”。
- ϕ3 和 ϕ4:偏斜程度,像“歪斜侦探”,从不同角度看不对称。
- ϕ5 和 ϕ6:复杂交互,像“形状分析师”,看偏斜和拉伸的组合。
- ϕ7:方向敏感性,像“旋转裁判”,分辨镜像和方向。
为什么这么牛?
这七个不变矩厉害的地方在于,它们把图像的形状特征浓缩成 7 个数字,不管图像怎么平移、缩放、旋转,这些值都不变。就像给形状拍了个“全家福”,从整体到细节一网打尽。比如:
- 一个圆和一个椭圆,ϕ1 和 ϕ2 就能区分。
- 一个三角形和一个歪斜的四边形,ϕ3到 ϕ7 会告诉你更多细节。
实际应用
在字符识别里,ϕ1 到 ϕ7 能区分“A”和“B”;在飞机识别里,能认出不同角度的机型。它们就像形状的“身份证”,简单却深刻。
七、纹理
什么是纹理?从生活聊起
想象一下你摸着一块粗糙的木头,手指划过那些细密的年轮和坑坑洼洼的表面;再想想你踩在鹅卵石小路上,脚底感受到的石头排列的规律和缝隙间的随意。这种“摸得着”的感觉,放到图像里,就是“纹理”。它不是一个孤立的点或线,而是图像里那些重复出现、有点规律又有点随机的视觉模式。比如草地的杂乱却均匀,砖墙的整齐却带点瑕疵,甚至你家窗帘上花花绿绿的图案——这些都是纹理。
简单说,纹理就是图像里“局部有点乱、整体有规律”的特性。它不像颜色那么直白,也不像形状那么明确,但它能让人一眼认出“这是啥东西”。比如你看一张照片,凭直觉就能分出那是森林还是沙漠,那种“感觉”很大程度上就来自纹理。
纹理的两种“性格”:人工和天然
纹理有两种大类,就像人的性格分“外向”和“内向”一样。
1. 人工纹理:这是“规矩派”。想想超市里卖的格子衬衫,横竖线条整齐得像数学课本;或者墙上的瓷砖,一块块排列得像军队站队。这种纹理是人设计出来的,点、线、图案重复得很有章法,看着就“秩序感”满满。
2. 天然纹理:这是“自由派”。比如树皮上的裂纹,沙滩上的波浪痕,甚至云朵在天上的形状——它们也有重复,但绝不死板。你盯着看,局部乱糟糟的,但退远一点,又觉得“好像有点规律”。这种自然界的“随性美”,就是天然纹理的魅力。
纹理的“灵魂”:基元和排列
纹理不是随便乱来的,它有两个核心要素,就像做菜得有“食材”和“摆盘”。
1. 纹理基元:这是纹理的“基本零件”。比如一块花布上的小花朵、一片草地上的草丛、一张木头上的年轮,这些都是基元。基元有形状、大小、颜色,就像乐高积木里的小块儿,单独看很简单,但组合起来就变复杂了。
2. 基元的排列组合:光有零件还不行,怎么摆放才是关键。基元是密密麻麻挤在一起,还是稀稀拉拉散开?是横着排还是斜着走?有没有固定的周期性?这些排列方式决定了纹理的“气质”。比如同样是草地,平原上的草稀疏平坦,像个懒散的家伙;山坡上的草密实倾斜,像个努力向上的奋斗者。排列一变,感觉就完全不同。
纹理分析有啥用?从天上到显微镜
纹理分析可不是纸上谈兵,它在现实世界里超级实用,覆盖了从宇宙到细胞的各种场景。
1. 看天上的云:天气预报里,气象学家盯着红外云图,能看出卷云像羽毛一样轻薄,积雨云像棉花糖一样厚实。这些不同的“纹理性格”帮机器自动识别云的类型,预测下雨还是晴天。
2. 看地球的皮肤:卫星拍的遥感图像里,山脉像皱巴巴的老人脸,森林像毛茸茸的地毯,城市像密密麻麻的格子。通过分析这些纹理,科学家能判断哪里适合种树、哪里要防沙漠化,甚至规划城市扩张。
3. 看微观世界:显微镜下的细胞像迷宫,金相材料像抽象画,催化剂表面像月球坑。纹理分析能挖出这些“微观纹路”的秘密,比如细胞是不是健康的,材料能不能扛得住压力,催化剂能不能高效工作。
怎么分析纹理?拆解它的“密码”
纹理分析就是要把图像里的“感觉”变成数字或描述,让机器也能“看懂”。这过程分两步:
1. 找基元:先把那些重复的小单位揪出来。比如一张布上的花纹,一片森林里的树冠,这些都是基元。找到它们,就像破案时找到关键线索。
2. 看排列:再研究这些基元怎么分布的。是整齐得像军队,还是乱得像菜市场?是横着走还是竖着来?有没有固定的节奏?这些信息凑在一起,就成了纹理的“身份证”。
分析的“两大流派”:统计和结构
纹理分析有两种主流方法,就像武侠小说里的“南派”和“北派”,各有绝招。
1. 统计方法:这是“细腻派”,适合对付那些乱中有序的天然纹理,比如木纹、草地、山脉。它不关心具体的形状,而是看灰度值(亮暗变化)的统计规律。比如某个区域里亮暗跳来跳去的频率高不高,变化是不是很剧烈。这种方法像是在“摸脉”,通过数字抓住纹理的“脾气”。
2. 结构方法:这是“规矩派”,专攻人工纹理,比如布料图案、砖墙花样。它先找基元,再分析基元的排列规则,比如“每隔5厘米重复一次”或者“45度斜着排”。这种方法像是在“画图纸”,把纹理的结构拆得清清楚楚。
举个栗子:从生活到技术
假设你在看一张航拍的农田照片。统计方法会告诉你:“这片田的纹理很粗糙,亮暗变化大,可能是庄稼长得稀疏。”结构方法会说:“田里有规则的条纹,每隔10米重复一次,可能是人工种植的痕迹。”两种方法一结合,你就知道这片田的作物种类、种植方式,甚至收成好不好。
再比如看一张细胞显微图。统计方法发现纹理细腻均匀,可能是健康细胞;结构方法发现基元排列紊乱,可能是癌细胞在捣乱。结合起来,医生就能判断病情。
为什么纹理分析这么牛?
因为它抓住了图像的“灵魂”。颜色可能骗人,形状可能模糊,但纹理是那种“一眼认出老朋友”的直觉。它把人类的感觉变成了机器的语言,让科技能帮我们看云、种地、治病,甚至探索宇宙。
所以下次你看到一片草地、一块木头,或者天上的云,不妨多想想:它们的纹理在诉说啥故事?而纹理分析,就是解开这些故事的钥匙。
从“感觉”到“数字”:纹理分析的进阶之旅
之前我们聊了纹理是什么、长什么样、有什么用,现在咱们深入一步:怎么把这“模模糊糊的感觉”变成机器能懂的数字?这就像要把“风吹过树叶的声音”翻译成乐谱,得有点技术活儿。纹理分析的核心,就是找到那些藏在图像里的“密码”,用数学工具把它们破解出来。
纹理的“节奏感”:自相关函数
想象你在听一首歌,有的歌节奏快,鼓点密集,像小雨滴噼里啪啦;有的歌节奏慢,低音悠长,像大浪拍岸。纹理也有类似的“节奏感”,而自相关函数就是测这节奏的“节拍器”。
通俗理解
自相关函数有点像拿着一张透明的“模板”(就是图像自己),在原图上滑动,看看滑动后重叠的部分有多少。比如一张布满大圆点的图,你滑动一点点,圆点还能对得上,重叠面积就大;滑动多了,对不上了,重叠就少。再换成小圆点的图,滑动同样的距离,重叠掉得更快。这种“重叠面积下降的速度”,就反映了纹理的粗细。
- 粗纹理:大圆点像慢节奏的鼓点,滑动一段距离还能重叠,说明像素间的联系(相关性)散得慢。
- 细纹理:小圆点像快节奏的雨滴,稍微一动就对不上了,相关性散得快。
更深刻一点
用数学说,自相关函数是算图像里每个像素跟它周围像素的“相似度”。窗口大小(比如(2w+1)×(2w+1))定了以后,滑动距离(偏移量)不同,重叠的“灰度值乘积”就变。偏移量小的时候,粗纹理的重叠多,细纹理的重叠少;偏移量大了,粗纹理还能撑一会儿,细纹理早就“散架”了。所以,自相关函数的“散布宽度”就是纹理粗细的“身份证”。
生活例子
想想看沙滩上的波浪纹,浪花间隔大(粗纹理),你挪动几步还能看出相似的痕迹,自相关函数下降慢;再看细沙的涟漪,挪一点就完全变样,自相关下降快。这就是为啥自相关函数能用来分析卫星图像里的沙漠纹理,或者云图里的云层粗细。
纹理的“关系网”:灰度共生矩阵(GLCM)
如果说自相关函数是测节奏,那灰度共生矩阵就是画“关系网”。它不只看像素自己,还看像素跟邻居的“相处模式”。
设置场景
- 图像 A:水平条纹纹理,像砖墙。
- 图像 B:随机分布纹理,像草地。
- 规则:
- 距离 Δ = 1(相邻像素)。
- 方向:0°(水平右)、45°(右下)、90°(垂直上)、135°(左下)。
- 灰度级:0 到 3(4级)。
- GLCM 是 4×4 矩阵,元素 P(i,j) 表示灰度 i 和 j 在指定方向和距离下同时出现的概率。
图像 A:水平条纹纹理
假设图像 A 是一个 4×4 的小图像,灰度值如下:
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
- 特点:水平方向上灰度一致(全是 0 或全是 1),垂直方向上 0 和 1 交替,像水平条纹。
1. 0°(水平右)
- 检查水平相邻像素对:
- 第1行:(0,0), (0,0), (0,0) → 3 个 (0,0)。
- 第2行:(1,1), (1,1), (1,1) → 3 个 (1,1)。
- 第3行:(0,0), (0,0), (0,0) → 3 个 (0,0)。
- 第4行:(1,1), (1,1), (1,1) → 3 个 (1,1)。
- 总像素对数:12(每行3对,4行)。
- 计数:
- (0,0):6 次。
- (1,1):6 次。
- 概率:
- P(0,0)=6/12=0.5P(0,0)=6/12=0.5
- P(1,1)=6/12=0.5P(1,1)=6/12=0.5
- GLCM:
0.5 0 0 0 0 0.5 0 0 0 0 0 0 0 0 0 0
2. 90°(垂直上)
- 检查垂直相邻像素对:
- 第1-2列:(0,1), (0,1), (0,1), (0,1) → 4 个 (0,1)。
- 第2-3列:(1,0), (1,0), (1,0), (1,0) → 4 个 (1,0)。
- 第3-4列:(0,1), (0,1), (0,1), (0,1) → 4 个 (0,1)。
- 总像素对数:12(每列3对,4列)。
- 计数:
- (0,1):8 次。
- (1,0):4 次。
- 概率:
- P(0,1)=8/12=0.667P(0,1)=8/12=0.667
- P(1,0)=4/12=0.333P(1,0)=4/12=0.333
- GLCM:
0 0.667 0 0 0.333 0 0 0 0 0 0 0 0 0 0 0
3. 45°(右下)
- 检查右下相邻像素对:
- 从 (0,0) 到 (1,1):(0,1)。
- 从 (0,1) 到 (1,2):(0,1)。
- 从 (0,2) 到 (1,3):(0,1)。
- 从 (1,0) 到 (2,1):(1,0)。
- 从 (1,1) 到 (2,2):(1,0)。
- 从 (1,2) 到 (2,3):(1,0)。
- 从 (2,0) 到 (3,1):(0,1)。
- 从 (2,1) 到 (3,2):(0,1)。
- 从 (2,2) 到 (3,3):(0,1)。
- 总像素对数:9(3×3对角线)。
- 计数:
- (0,1):6 次。
- (1,0):3 次。
- 概率:
- P(0,1)=6/9=0.667P(0,1)=6/9=0.667
- P(1,0)=3/9=0.333P(1,0)=3/9=0.333
- GLCM:
0 0.667 0 0 0.333 0 0 0 0 0 0 0 0 0 0 0
4. 135°(左下)
- 检查左下相邻像素对:
- 从 (0,3) 到 (1,2):(0,1)。
- 从 (0,2) 到 (1,1):(0,1)。
- 从 (0,1) 到 (1,0):(0,1)。
- 从 (1,3) 到 (2,2):(1,0)。
- 从 (1,2) 到 (2,1):(1,0)。
- 从 (1,1) 到 (2,0):(1,0)。
- 从 (2,3) 到 (3,2):(0,1)。
- 从 (2,2) 到 (3,1):(0,1)。
- 从 (2,1) 到 (3,0):(0,1)。
- 总像素对数:9。
- 计数:
- (0,1):6 次。
- (1,0):3 次。
- 概率:
- P(0,1)=0.667
- P(1,0)=0.333
- GLCM:
0 0.667 0 0 0.333 0 0 0 0 0 0 0 0 0 0 0
图像 A 的特点
- 0°方向:(0,0) 和 (1,1) 占主导,说明水平方向灰度一致,条纹强。
- 90°、45°、135°:(0,1) 和 (1,0) 活跃,说明垂直和斜向有灰度跳变,符合条纹交替。
图像 B:随机分布纹理
假设图像 B 是一个 4×4 的小图像,灰度值如下:
0 1 0 2 3 2 1 0 1 0 3 2 2 3 1 0
- 特点:灰度值随机分布,像草地,没有明显方向性。
1. 0°(水平右)
- 检查水平相邻像素对:
- 第1行:(0,1), (1,0), (0,2) → 1 个 (0,1), 1 个 (1,0), 1 个 (0,2)。
- 第2行:(3,2), (2,1), (1,0) → 1 个 (3,2), 1 个 (2,1), 1 个 (1,0)。
- 第3行:(1,0), (0,3), (3,2) → 1 个 (1,0), 1 个 (0,3), 1 个 (3,2)。
- 第4行:(2,3), (3,1), (1,0) → 1 个 (2,3), 1 个 (3,1), 1 个 (1,0)。
- 总像素对数:12。
- 计数:
- (0,1):1,(0,2):1,(0,3):1,(1,0):4,(2,1):1,(2,3):1,(3,1):1,(3,2):2。
- 概率:
- P(0,1)=1/12=0.083, P(0,2)=0.083, P(0,3)=0.083, P(1,0)=4/12=0.333, P(2,1)=0.083P(2,1)=0.083, P(2,3)=0.083, P(3,1)=0.083, P(3,2)=2/12=0.167。
- GLCM:
0 0.083 0.083 0.083 0.333 0 0 0 0 0.083 0 0.083 0 0.083 0.167 0
2. 90°(垂直上)
- 检查垂直相邻像素对:
- 第1列:(0,3), (3,1), (1,2) → 1 个 (0,3), 1 个 (3,1), 1 个 (1,2)。
- 第2列:(1,2), (2,0), (0,3) → 1 个 (1,2), 1 个 (2,0), 1 个 (0,3)。
- 第3列:(0,1), (1,3), (3,1) → 1 个 (0,1), 1 个 (1,3), 1 个 (3,1)。
- 第4列:(2,0), (0,2), (2,0) → 1 个 (2,0), 1 个 (0,2), 1 个 (2,0)。
- 总像素对数:12。
- 计数:
- (0,1):1,(0,2):1,(0,3):2,(1,2):2,(1,3):1,(2,0):2,(3,1):2。
- 概率:
- P(0,1)=0.083, P(0,2)=0.083, P(0,3)=0.167, P(1,2)=0.167, P(1,3)=0.083, P(2,0)=0.167, P(3,1)=0.167。
- GLCM:
0 0.083 0.083 0.167 0 0 0.167 0.083 0.167 0 0 0 0 0.167 0 0
3. 45°(右下)
- 检查右下相邻像素对:
- (0,0) 到 (1,1):(0,2)。
- (0,1) 到 (1,2):(1,1)。
- (0,2) 到 (1,3):(0,0)。
- (1,0) 到 (2,1):(3,0)。
- (1,1) 到 (2,2):(2,3)。
- (1,2) 到 (2,3):(1,2)。
- (2,0) 到 (3,1):(1,3)。
- (2,1) 到 (3,2):(0,1)。
- (2,2) 到 (3,3):(3,0)。
- 总像素对数:9。
- 计数:
- (0,0):1,(0,1):1,(0,2):1,(1,1):1,(1,2):1,(1,3):1,(2,3):1,(3,0):2。
- 概率:
- P(0,0)=0.111, P(0,1)=0.111, P(0,2)=0.111, P(1,1)=0.111, P(1,2)=0.111, P(1,3)=0.111, P(2,3)=0.111, P(3,0)=0.222。
- GLCM:
0.111 0.111 0.111 0 0 0.111 0.111 0.111 0 0 0 0.111 0.222 0 0 0
4. 135°(左下)
- 检查左下相邻像素对:
- (0,3) 到 (1,2):(2,1)。
- (0,2) 到 (1,1):(0,2)。
- (0,1) 到 (1,0):(1,3)。
- (1,3) 到 (2,2):(0,3)。
- (1,2) 到 (2,1):(1,0)。
- (1,1) 到 (2,0):(2,1)。
- (2,3) 到 (3,2):(2,1)。
- (2,2) 到 (3,1):(3,3)。
- (2,1) 到 (3,0):(0,2)。
- 总像素对数:9。
- 计数:
- (0,2):2,(0,3):1,(1,0):1,(1,3):1,(2,1):3,(3,3):1。
- 概率:
- P(0,2)=0.222,P(0,3)=0.111, P(1,0)=0.111, P(1,3)=0.111, P(2,1)=0.333, P(3,3)=0.111。
- GLCM:
0 0 0.222 0.111 0.111 0 0 0.111 0 0.333 0 0 0 0 0 0.111
图像 B 的特点
- 四个方向的 GLCM 值分布都比较散,没有明显集中,说明灰度变化随机,方向性弱,像草地。
对比分析
- 图像 A(水平条纹):
- 0°:值集中在 (0,0) 和 (1,1),水平纹理强。
- 90°、45°、135°:值集中在 (0,1) 和 (1,0),垂直和斜向有灰度跳变。
- 图像 B(随机分布):
- 四个方向:值分布均匀,无明显模式,反映随机性。
这正是 GLCM 的威力:图像 A 的矩阵突出方向性,图像 B 的矩阵显示无序性。通过这些 4×4 的概率矩阵,你能直观看到纹理的“关系网”差异。
和自相关的“双人舞”再深化
- 自相关:像独奏,盯着图像的“节奏感”。它算的是像素和自己偏移后的相似度,适合快速判断纹理粗细。比如木纹的年轮间隔,自相关能测出来。
- GLCM:像合唱,关注像素间的“和声”。它挖出了方向性、对比度、复杂度的细节。比如木纹的年轮边界锐不锐、走向直不直,GLCM能告诉你。
两者配合,就像一个看整体,一个查细节。拿癌细胞举例:
- 自相关说:“纹理乱,散得快”,说明细胞排列没规律。
- GLCM说:“边界强,方向杂”,说明细胞边缘突出但方向不一,可能是异常信号。
哲学再延伸:纹理是“混沌与秩序”的缩影
纹理分析为什么迷人?因为它不只是技术,而是对自然规律的窥探。纹理是随机和规则的交织:局部看,像素灰度乱七八糟;整体看,却有方向、粗细、对称的美感。这不正是宇宙的写照吗?从云的流动到细胞的排列,从人工织物到自然山川,GLCM把这些“混沌中的美”量化出来,让机器也能“看懂”人类的直觉。
大栗子再细化
- 云图:
- 自相关:纹理粗,节奏慢 → 云块大而平缓。
- GLCM:方向乱,对比低 → 灰度变化小,可能是厚层云,要下雨。
- 农田:
- 自相关:纹理细,变化快 → 作物密密麻麻。
- GLCM:水平条纹多 → 田垄横着排,可能是麦田。
- 癌细胞:
- 自相关:纹理乱,散得快 → 排列无序。
- GLCM:边界强,方向杂 → 边缘突出但不规则,提示异常。
八、角二阶矩、对比度、相关性、熵值、频谱法与傅立叶变换、极坐标
1. 角二阶矩
定义及作用:
- 角二阶矩(f1)是用来衡量图像中灰度(亮度)分布均匀性的一个指标。它是从“灰度共生矩阵”中计算出来的。
- 灰度共生矩阵是一个统计矩阵,用于表示图像中不同灰度级别之间的关系。简单来说,它记录了在图像中,相同或不同灰度像素相邻的次数。
分析:
- 当灰度共生矩阵的元素主要集中在主对角线上时,说明该图像的灰度分布较均匀。这意味着在某个局部区域中,像素值较为一致。
- 这种情况下,图像的纹理看起来“粗”,角二阶矩的值(f1)就会比较大。
- 反之,如果灰度分布较为分散,角二阶矩的值就会较小。
能量的概念:
- 角二阶矩也被称为“能量”,因为它是灰度共生矩阵中所有元素平方和的结果。粗纹理意味着图像中存在较多的能量,而细纹理则意味着能量较少。
2. 图像的对比度
- 对比度可以理解为图像的清晰度。对比度越高,图像看起来越清晰。
- 图像中纹理的深度(沟纹越深)意味着对比度越大,视觉效果就越清晰。
3. 相关性
- 相关是用来衡量灰度共生矩阵中元素在行或列方向上的相似程度。
- 例如,如果一幅图像有明显的水平方向纹理,它在水平方向的灰度共生矩阵的相关值(f3)往往会高于垂直或其他角度的相关值。
4. 熵值
- 熵值是用来度量图像包含的信息量的指标,纹理信息也是信息的一个方面。
- 如果图像没有任何纹理,灰度共生矩阵几乎为零,熵值(f4)接近零。
- 如果图像中有很多细纹理,则灰度值的数量接近,熵值最大。相反,若图像中纹理较少,灰度值之间差别较大,则熵值较小。
5. 频谱法与傅立叶变换
- 频谱法利用傅立叶变换的特性来描述图像中周期性或接近周期性的模式和方向。
- 具体特性包括:
- 峰值:傅立叶频谱中明显的峰值表示纹理模式的主方向。
- 位置:这些峰在频域中的位置代表模式的基本周期。
- 非周期性部分:如果将周期性成分滤除,剩下的部分可以用统计方法进行描述。
6.极坐标描述
- 在实际应用中,为了简化分析,频谱可以转换到极坐标系中,这样可以更方便地对每个方向和频率进行分析。
- 在极坐标系中,频谱可以用函数 S(r,θ)S(r,θ) 表示,通过分析不同方向和频率的表现,能够更全面地描述图像的特征。
九、标记
1. 标记(Signature)的基本思想
定义:
- 标记是一种方法,用来将二维物体的边界表示为一维的函数。这种方法的主要理念是通过简化复杂形状的描述,使得后续的分析和处理变得更容易。
如何产生标记:
- 产生标记的最简单方法是先找到物体的重心(即物体的中心点),然后计算边界上的每个点到重心的距离,并将这些距离与相应的角度关联起来。通过这种方式,就能生成一个一维的标记函数,这个函数包含了物体的形状信息。
示例:
- 比如,假设我们有一个不规则的图形,我们可以从重心出发,记录每个边界点的距离并将其映射到一个特定的角度上。这样我们就将二维的边界转化为一维的波形,使得后续的分析更为简单。
2. 标记的特点与问题
不受平移影响:
- 这种标记方法的一个优点是它不受物体在平面上移动(平移)的影响。换句话说,即使物体的位置有所改变,标记仍然保持不变。
受尺度和旋转影响:
- 然而,这种标记会受到尺度变换(例如放大或缩小)和旋转的影响。比如,放大物体会使标记的距离值变大。
解决方案:
- 为了解决这些问题,可以采取以下方法:
- 尺度归一化:将标记的最大幅值归一化到1,以消除尺度变化带来的影响。
- 旋转归一化:选择离重心最远的点作为标记的起点,或者通过计算边界的主轴来选取起点。这样可以使得标记对于旋转更具稳定性。
3. 拓扑学(Topology)
定义:
- 拓扑学是研究图形在不发生撕裂或粘贴等畸变的情况下性质的数学分支,主要关注物体形状的基本特性。
拓扑性质:
- 拓扑性质是区域的某些特征,这些特征不依赖于具体的距离或测量方式,这就意味着即使物体被变形(如拉伸、压缩),这些性质仍然保持不变。
孔洞数 H:
- 一个重要的拓扑描述子是区域中的孔洞数(H)。孔洞的数量是不受物体伸长或旋转影响的,但如果物体被撕裂或折叠,孔洞的数量就可能会变化。
连通部分 C:
- 另一个拓扑特性是区域的连通部分数量(C)。连通部分是指区域中可以用一条曲线连接的最大子集。比如,一个图形中有几个部分相互不连通。
4. 欧拉数(Euler Number)
定义:
- 欧拉数(E)是一个重要的拓扑描述符,它可以通过以下公式计算:
E=C−H
其中,C是连接部分的数量,H是孔洞的数量。
示例:
- 以字母“B”为例,它有1个连接部分和2个孔洞,因此它的欧拉数为:
E=1−2=−1
总结
通过以上分析,我们可以看到,标记方法通过将复杂的二维边界转化为简单的一维函数,使得形状分析变得更加高效。而拓扑学则提供了一种无视细节变形,关注形状基本特征的方法,从而帮助我们更全面地理解形状的性质。这些概念在计算机视觉、图像分析等领域中都有重要应用。