我正在进行基于直方图的图像检索项目,我需要比较一组图像的学习算法。因此,在MATLAB中,我将图像(256x256像素)转换为HSV,将其量化为8(H),3(S),3(V)并创建加权和,即256x256矩阵。
我想使用这个矩阵(数据集中的所有图像)来创建一个ARFF文件,而我现在陷入困境。任何人都可以帮我解决这个问题吗?
答案 0 :(得分: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