2012-02-07 38 views
2

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

我想使用这个矩阵(数据集中的所有图像)来创建一个ARFF文件,并且我坚持在这一点上。任何人都可以帮我解决这个问题吗?

+0

请描述什么是ARFF文件或提供链接。 – Oli 2012-02-07 18:40:02

+0

@Oli这里是解释什么是ARFF文件的链接:http://www.cs.waikato.ac.nz/ml/weka/arff.html – 2012-02-07 18:50:12

回答

1

如果我理解你做了什么,你将图像作为输入(256x256 RGB矩阵)并将其转换为256x256矩阵,其中每个位置是HSV值的加权和。但是,如果要提取颜色直方图(在这种情况下,它是Weka的适当输入),则应该有一个向量作为输出,其中每个条目是多少个像素具有给定的计数H,S和L值。由于H(0到7)有8个不同的值,S(0到2)有3个,L(0到2)有3个,所以你的向量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 
+0

如果我错了,请纠正我。据我所知,现在我必须忘记加权和,并且只考虑量化的H,S和V值的矩阵。然后为H(0-7),S(0-2)和V(0-2)的值创建一个具有14个元素的向量V,然后简单地计算每个这些值有多少像素并将其转换为ARFF? – vahissan 2012-02-08 05:09:11

+1

如果你想要的颜色直方图是正确的。您还可以检查是否可以通过在直方图中添加更多分箱来获得更好的分类准确性(即,使用更多的H,S,V值量化图像并创建具有14个以上元素的向量)。 – 2012-02-08 11:27:39