Image Feature
图像本身的特征
Overview
Color
颜色直方图
一般颜色直方图:某个色彩通道的直方图。

全局累加直方图:当图像中的特征并不能取遍所有可取值时,统计直方图中会出现一些零值。这些零值的出现会对相似性度量的计算带来影响,从而使得相似性度量并不能正确反映图像之间的颜色差别。

主色调直方图
在一幅图像中,不同颜色值出现的概率不尽相同,且通常情况下少数几种颜色就能涵盖整幅图像的主色调。基于该思想,主色调直方图法会计算出图像中每种颜色出现的频率,选择出现频率最高的几种颜色并将其作为主色调。使用主色调直方图并不会降低颜色直方图匹配的效果,反而会抑制图像非主要成分的噪声,降低噪声对图像匹配的影响。
全局累加直方图与主色调直方图在 google 都搜不到!也没有别人的代码实现,这两个特征的真实性有待考察!
颜色矩
一阶矩可以表征该颜色通道的平均响应强度
二阶矩可以表示该颜色通道的响应方差
三阶矩可以表征该颜色通道数据分布的偏移度
颜色集
颜色集又可以称为颜色索引集,其是对图像颜色直方图的一种近似。
方案一:通过颜色直方图
将图像从RGB颜色空间转换到HSV颜色空间等视觉均衡的颜色空间,并将颜色空间量化为若干个边长均等的小立方体;
使用基于色彩的自动分割技术将图像划分为若干个子区域;
使用颜色量化空间中的某个颜色分类索引每个子区域,以将图像表示为一个二进制的颜色索引集。
最简单的颜色集可以通过在颜色直方图的基础上设置阈值形成。如给定某一颜色值m,给定其阈值τm,由颜色直方图生成颜色集c可表示为:
方案二:通过色彩空间变换再量化来减少颜色
像素矢量表示对于RGB空间中的任意图像,它的每个像素均可表示为一个矢量[插图]=(r,g,b),其中r、g、b分别代表红、绿、蓝颜色分量。
颜色空间转换通过变换运算T将图像变换到一个与人视觉一致的颜色空间[插图],即[插图]。
颜色集索引采用量化器(QM)对[插图]重新量化,使得视觉上明显不同的颜色对应不同的颜色集,并将颜色集映射成索引m。
颜色集表示设BM是M维的二值空间,在该空间中每个轴对应唯一的索引m。一个颜色集就是BM二值空间中的一个二维矢量,它表示对颜色{m}的选择,即颜色m出现时,c[m]=1,否则c[m]=0。
颜色聚合向量
颜色聚合向量是在颜色直方图的基础之上做的进一步运算。其核心思想是将属于颜色直方图的每个颜色量化区间的像素分为两部分,如果该颜色量化区间中的某些像素占据的连续区域的面积大于指定阈值,则将该区域内的像素作为聚合像素,否则作为非聚合像素。
颜色聚合向量可表示为<(α1,β1),,(αn,βn)>,其中αi与βi分别代表颜色直方图的第i个颜色量化区间中的聚合像素和非聚合像素的数量。颜色聚合向量除了包含颜色频率信息外,也包含颜色的部分空间分布信息,因此其可以获得比颜色直方图更好的表示效果。颜色聚合向量算法的步骤如下。
1. 量化:颜色聚合向量算法的第一步与求普通的颜色直方图类似,即对图像进行量化处理。一般采用均匀量化处理方法,量化的目标是使图像中只保留有限个颜色区间。
2. 连通区域划分针对重新量化后的像素值矩阵,根据像素间的连通性把图像划分成若干个连通区域。
3. 判断聚合性统计每个连通区域中的像素数目,根据设定的阈值判断该区域中的像素是聚合的,还是非聚合,得出每个颜色区间中聚合像素和非聚合像素的数量αi和βi。
4. 聚合向量形成图像的聚合向量可以表示为〈(α1,β1),,(αn,βn)〉。
颜色相关图
颜色相关图是图像颜色分布的另外一种表达方式。颜色相关图不仅可以显示像素在图像中的占比,也可以反映不同颜色对间的空间位置的相关性。颜色相关图利用颜色对间的相对距离分布来描述空间位置信息。

Texture
统计纹理分析方法
AutoCorrelation Function(自相关函数)
要理解 2D 的自相关函数还是先看看一维的自相关函数。自相关函数代表了一个信号移动一些距离,和自己是相像的程度!

接下来就是图像的自相关函数:
x≥0, y≥0
[1, Ni-x]
[1, Nj-y]
x≥0, y<0
[1, Ni-x]
[1-y, Nj]
x<0, y≥0
[1-x, Ni]
[1, Nj-y]
x<0, y<0
[1-x, Ni]
[1-y, Nj]

Histogram of gradient magnitudes(边界频率)
计算梯度幅度的直方图。不同的纹理的图片对应的梯度幅度直方图比较稳定,因为取的幅度,所以不受方向影响。

论文[6]的计算方法:
通过 Sobel 算子计算梯度的幅度
直方图的 bins=16
灰度共生矩阵 / 联合概率矩阵法
该方法的本质是使用条件概率表征纹理特征。
一般采用 0,45,90,135 四个角度的方向来计算距离为 n 的灰度共生矩阵。下面是方向为0,距离 n 为 1 的案例:

另外灰度共生矩阵(GLDM)可以进一步计算的到很多统计量。
论文中提出了 14 种:角二阶矩(能量)、对比度、熵、相关性、均匀性、逆差矩、和平均、和方差、和熵、差方差(变异差异)、差熵、局部平稳性、相关信息测度1、相关信息测度2。

Laws纹理能量测量法
主要思路:图像 -> 各种卷积 -> 卷积结果加起来得到所谓能量。
简单的“卷积核”是下面的五个一维向量互相进行矩阵乘法得到:
Level L5 = [1 4 6 4 1]
Edge E5 = [-1 -2 0 2 1]
Spot S5 = [-1 0 2 0 -1]
Wave W5 = [-1 2 0 -2 1]
Ripple R5 = [1 -4 6 -4 1]
具体内容可以看网页[8][9]。

Gabor变换
Babor kernel 是高斯乘正弦波。
具体方案就是图像和Babor kernel分别变换到频率域,然后做乘法,再变回来。

局部二值模式
(Local Binary Pattern, BLP)
基本的LBP算子:3×3的矩形块,有1个中心像素和8个邻域像素分别对应9个灰度值。以中心像素的灰度值为阈值,将其邻域的8个灰度值与阈值比较,大于中心灰度值的像素用1表示,反之用0表示。
根据顺时针方向读出8个二进制值。每个位置有自己的权重。求出这个 3 x 3 的块的值。(下图 为 25)

因为人类视觉系统对纹理的感知与平均灰度(亮度)无关,而局部二值模式方法注重像素灰度的变化,所以它符合人类视觉对图像纹理的感知特点。LBP计算过程如图5-6所示。



Shape
形状特征的表示方法可以分为两类:
一是基于轮廓特征,典型方法是傅里叶描述符方法;
二是基于区域特征,典型方法是形状无关矩方法。
轮廓特征中只用到物体的边界,而区域特征则需要考虑到整个形状区域。下文将详细介绍这两类方法,另外也会简要介绍一些简单形状特征。
基于轮廓特征
傅里叶描述子
参考:
[11] 基于傅里叶描述子的物体形状识别的研究
[12] https://blog.csdn.net/Lemon_jay/article/details/89349006
我的理解是,其实有了很多的备选的边界,然后精髓是把图像的 xy 轴当成实轴虚轴,进行傅里叶变换,取前几项进行近似(这样就平滑了)

基于区域特征
图像区域的某些矩对于平移、旋转、尺度等几何变换具有一些不变的特性
预先准备
(j+k)阶矩:
为了描述物体的形状,假设f(x,y)的目标物体取值为1,背景为0:
质心坐标与中心距
当j=1,k=0时,对二值图像来讲就是物体上所有点的x坐标的总和
类似,就是物体上所有点的y坐标的总和
所以 , 就是二值图像中一个物体的质心坐标。
为了获得矩的不变特征,往往采用中心矩以及归一化的中心距。 (,是物体的质心。中心矩以质心作为原点进行计算,因此它具有位置无关性。)
主轴
使二阶中心距变得最小的旋转角:
将x、y轴分别旋转角得坐标轴x和y',x'、y称为该物体的主轴。如果物体在计算矩之前旋转角,或相对于x', y轴计算短,那么计算后得出的矩具有旋转不变性。
Edge
一阶边缘检测
Robert
Sobel
Prewitt
二阶边缘检测
Laplace
LoG = Gaussian + Laplace = 平滑 + 边缘
Point
一是基于模板的角点检测算法;二是基于边缘的角点检测算法;三是基于图像灰度变化的角点检测算法
SUSAN算法:
SUSAN以及后续研究:[13] https://core.ac.uk/download/41438484.pdf
用圆形模板,根据亮度值是否相似于核心点亮度的,把区域分成核值相似区USAN与核值不相似区
模板在图像上移动时
当圆形模板完全在背景或者目标区域时 ,其 USAN区域最大
当核心在边缘时 , USAN 区域减少一半
当核心在角点时 , USAN 区域最小
可以通过计算每 1 个像素的 USAN 值,并与设定的门限值进行比较, 如果该像素的 USAN 值小于门限 值,则该点可以认为是 1 个边缘点
Reference
[1] https://blog.51cto.com/u_13984132/5477443
[2] https://hal.science/hal-02126655v1/file/Texture_Feature_Extraction_Methods_A_Survey.pdf
[3] https://github.com/cgreen259/Texture-Toolbox
[4] M. Petrou and P. G. Sevilla, Image Processing: Dealing With Texture, vol. 1. Chichester, U.K.: Wiley, 2006.
[5] https://medium.com/@krzysztofdrelczuk/acf-autocorrelation-function-simple-explanation-with-python-example-492484c32711
[6] M. Sharma and H. Ghosh, ‘‘Histogram of gradient magnitudes: A rotation invariant texture-descriptor,’’ in Proc. IEEE Int. Conf. Image Process. (ICIP), Sep. 2015, pp. 4614–4618.
[7] http://matlab.izmiran.ru/help/toolbox/images/enhanc15.html
[8] https://ojskrede.github.io/inf4300/notes/week_02/
[9] https://courses.cs.washington.edu/courses/cse576/book/ch7.pdf
[10] https://aihalapathirana.medium.com/understanding-the-local-binary-pattern-lbp-a-powerful-method-for-texture-analysis-in-computer-4fb55b3ed8b8
[11] https://www.doc88.com/p-7176387138708.html
[12] https://blog.csdn.net/Lemon_jay/article/details/89349006
[13] https://core.ac.uk/download/41438484.pdf
[14] https://baike.baidu.com/item/susan%E7%AE%97%E5%AD%90/5532045
最后更新于
这有帮助吗?
![数字图像处理—图像纹理特征[1]](https://gitbook.charlesshan.top/~gitbook/image?url=https%3A%2F%2F1488494774-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKl4nxyG9ydQA5nlDhVGm%252Fuploads%252Fgit-blob-d3f69dd38e34a325a825019c52d94d1dbfc4948a%252Fimage.png%3Falt%3Dmedia&width=300&dpr=4&quality=100&sign=c224a6e6&sv=2)
![综述[2]](https://gitbook.charlesshan.top/~gitbook/image?url=https%3A%2F%2F1488494774-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKl4nxyG9ydQA5nlDhVGm%252Fuploads%252Fgit-blob-0cdbd0d88dab08f9abb515f3dbc669ff9f970446%252Fimage.png%3Falt%3Dmedia&width=300&dpr=4&quality=100&sign=c9a353d4&sv=2)


