量化图像部分纹理的方法有哪些?我试图检测图像中纹理相似的区域,这是一种衡量"它们有多相似?"
因此,问题是关于图像的哪些信息(边缘、像素值、梯度等)可以被视为包含其纹理信息。
请注意,这不是基于模板匹配。
维基百科没有提供太多关于实际实现任何纹理分析的细节。
您想在图像中找到两个看起来相同(相同纹理)的不同区域,还是将一个图像中的纹理与另一个匹配?由于不同的辐射测量法,第二个更难。
下面是一个如何测量区域相似性的基本方案。
- 您编写了一个函数,该函数作为输入获取图像中的一个区域并计算标量值。像平均亮度。这个标量称为特征
- 你写更多这样的函数可以获得大约8-30个特性。它们一起形成一个矢量,该矢量对关于图像中区域的信息进行编码
- 计算要比较的两个区域的矢量
- 定义相似性函数,该函数取两个向量并输出它们的相似程度
您需要专注于第2步和第4步。
步骤2.:使用以下功能:亮度的std(),某种角检测器,熵滤波器,边缘方向的直方图,FFT频率的直方图(x和y方向)。如果可用,请使用颜色信息。
步骤4。可以使用余弦相似性、最小-最大或加权余弦。
在您实现了大约4-6个这样的特性和相似性函数之后,开始运行测试。看看结果,试着理解为什么或在哪里不起作用。然后添加一个特定的功能来覆盖该主题。例如,如果你看到有大斑点的纹理被认为与有小斑点的纹理相似,那么添加形态学滤波器计算的大小>20sq像素的对象密度。
将识别问题设计特定功能的过程重复大约5次,您将开始获得非常好的结果。
我建议使用小波分析。小波在时间和频率上都是局部化的,并且使用多分辨率分析比FT提供更好的信号表示。
本文介绍了一种基于小波的纹理描述方法。还有一种比较方法。
您可能需要稍微修改一个算法来处理任意形状的图像。
一个有趣的方法是使用本地二进制模式。以下是一个基本示例和一些解释:http://hanzratech.in/2015/05/30/local-binary-patterns.html
将这种方法视为从图片中获取特征的多种不同方法之一。它对应于DanielHsH方法的第二步。