图像块之间的纹理匹配

信息处理 图像处理 计算机视觉 图片 opencv 局部特征
2022-02-14 21:15:31

我有一个图像A,我将其划分为4 x 4子带图像。P1对于图像中的给定补丁A,我需要P2 在同一图像A中找到另一个补丁,即most similar: have same texture.

到目前为止,我的方法是Fi为所有i补丁创建特征向量,并使用欧几里德的距离公式找出哪个补丁的特征向量最接近给定补丁 P1 的特征向量。

目前我添加了以下功能:

  1. 亮度的平均值和标准偏差(使用 LAB 颜色空间的 L 通道)
  2. LAB颜色空间A通道颜色值的均值和标准差
  3. LAB颜色空间B通道颜色值的均值和标准差

虽然我得到了类似的补丁,但我仍然认为如果我加入更多突出的功能(我不知道),匹配可以得到改善。

以下是我的查询:

  1. 我怀疑这是否是比较两个补丁之间颜色的好方法。

  2. 请提出一些更好的功能,这些功能有助于获得适当的差异化。

  3. 尽管我的大多数图像都是正确的,但是如果图像暗和/或嘈杂,该方法是否有任何限制/缺点?如果是,是否有很好的替代方法或功能?

请帮忙!

2个回答

均值和标准差是分布的两个测量值。您还可以使用其他高阶矩,例如“偏度”(分布的偏斜程度)和“峰度”(分布的“峰值”程度)。

但是,我会尝试的是每个通道的值的直方图例如,如果您使用具有 16 个 bin 的直方图,您将得到一个具有 48 个值的特征向量。直方图 bin 值可以被认为是分布的描述符。

要考虑亮度的变化,您需要引入一些光照不变性。LAB 色彩空间已经将图像分成亮度 (L) 和颜色 (AB) 通道。为了实现照明不变性,我将使用您使用的任何度量的范数对 L 通道直方图值进行归一化(在这种情况下,欧几里得距离,它将是 l2 范数)。标准化 A 或 B 通道可能没有必要。归一化解释了亮度的任何线性变化。

根据图像,您还可以添加矢量,例如:

  • 定向梯度直方图 (HOG)
  • 连接组件的直方图(制作黑白然后计算 8 个连接的邻居中有多少像素是白色的)
  • k-means 对 LAB 值进行聚类以获得 k 个中心 LAB 值,您可以将其与其他图像进行比较。

等等。

关于LAB,如果您对人类感知的差异感兴趣,这是一个好方法。

关于纹理,我建议看一些专有的纹理描述符:

  1. 灰度共生矩阵。
  2. 对小波的响应