2011-05-22 199 views
11

什么是量化图像的一部分纹理的方式?我试图在图像中检测纹理相似的区域,这就是“它们有多近似?”的一种度量。如何匹配图像中的纹理相似性?

所以问题是关于图像的哪些信息(边缘,像素值,渐变等)可以被视为包含其纹理信息。

请注意,这不是基于模板匹配。

Wikipedia没有给出实际实现任何纹理分析的更多细节。

回答

23

你想在图像中找到两个看起来相同(纹理相同)的独特区域,或者将图像中的纹理与另一个图像进行匹配? 由于不同的辐射测量,第二个更难。

这里是如何测量区域相似度的基本方案。

  1. 您可以编写一个函数,该函数根据输入获取图像中的一个区域并计算标量值。像平均亮度。这个标量被称为特征
  2. 您可以编写更多这样的函数来获得大约8-30个特征。形成共同编码该地区的信息图像中
  3. 计算这种载体,要比较
  4. 定义相似函数,它接受两个向量和输出多少,他们是完全一样的两个区域的向量。

你需要把重点放在步骤2和4

第2步:使用以下功能:亮度STD(),某种角点检测的,熵滤波,边缘方向直方图,直方图的FFT频率(x和y方向)。如果可用,使用颜色信息。

第4步。您可以使用余弦相似度,最小最大或加权余弦。

在执行了大约4-6个这样的功能和相似性功能后,开始运行测试。查看结果并尝试了解它无法工作的原因或位置。然后添加一个特定的功能来覆盖该主题。 例如,如果您看到具有大斑点的纹理被认为与具有小斑点的纹理相似,则添加形态滤波器计算的大小> 20sq像素的对象的密度。

迭代5次确定问题设计特定功能的过程,您将开始获得非常好的结果。

+0

感谢这看起来比在OpenCV中实现所有GLCM纹理度量更轻量级。你能否提供一些关于FFT直方图的更多信息,链接可能是什么?其他人很棒。 – AruniRC 2011-05-23 01:55:06

+0

什么是“FFT直方图”?在傅里叶变换之上建立直方图是否有意义?可以简单地从FT中选择一些与纹理概念相关的频率范围,并将该范围用作纹理特征。 – Andrey 2011-05-23 09:17:14

+0

通过FFT的直方图我的意思是首先应用FFT,然后使用一些信息作为特征。使用每个频率作为功能会产生太多不必要的信息。因此,您可以选择以下功能:X方向高频总和除以Y方向的比率,高频率除以低频率的比率(扫描:从不使用DC频率)等等 – DanielHsH 2011-05-27 12:04:07

4

我建议使用小波分析。小波在时间和频率上都是局部的,并且使用多分辨率分析比FT有更好的信号表示。

Thre是一个paper解释纹理描述的wavelete方法。还有一个比较方法。

您可能需要稍微修改一个算法以处理任意形状的图像。

+0

在Haar小波部分,“三个细节图像(LH,HL和HH)”是什么意思?小波水平是好的,我已经编码,但我不明白在Haar小波变换的背景下,LH,HL和HH图像是什么意思。如果你想解释这一点。 – AruniRC 2011-05-27 02:53:57

+0

它们是特定级别的图像的水平,垂直和对角线特征。您可以在互联网上轻松找到解释。例如链接http://www.ceremade.dauphine.fr/~peyre/numerical-tour/tours/wavelet_2_haar2d/ – Andrey 2011-05-27 14:13:01