2

我正在做一个基于直方图的图像检索项目,我需要比较一组图像的学习算法。因此,在 MATLAB 中,我将图像(256x256 像素)转换为 HSV,将其量化为 8(H)、3(S)、3(V) 并创建一个加权和,即 256x256 矩阵。

我想使用这个矩阵(数据集中的所有图像)来创建一个 ARFF 文件,我被困在这一点上。任何人都可以帮我解决它是如何完成的吗?

4

1 回答 1

1

如果我理解您所做的,您将图像作为输入(256x256 RGB 矩阵)并将其转换为 256x256 矩阵,其中每个位置都是 HSV 值的加权和。

但是,如果您想提取颜色直方图(在这种情况下,它是 Weka 的适当输入),您应该有一个向量作为输出,其中每个条目是具有给定 H、S 和L 值。

由于 H 有 8 个不同的值(0 到 7),S 有 3 个(0 到 2),L 有 3 个(0 到 2),所以向量 V 应该有 8+3+3=14 个条目。为了计算 V,请使用以下算法:

Input: quantized HSL image I
Output: histogram V

for each pixel p in I:
   V[p.H] = V[p.H] + 1             // Increment the count for the H component.
   V[7 + p.S] = V[7 + p.S] + 1     // Increment the count for the S component.
   V[10 + p.L] = V[10 + p.L] + 1   // Increment the count for the L component.

return V
于 2012-02-07T18:58:07.087 回答