我正在尝试在MATLAB中为彩色图像创建基于内容的图像检索系统(CBIR),并使用k-means算法来提取数据库中图像的特征向量。每个图像有四个簇,每个簇有关于颜色(R,G,B)和位置(X,Y)的信息。
我现在正在尝试为我的群集添加纹理特征,并且需要使用灰度级共生矩阵(GLCM)。我知道GLCM只是某个灰度级别出现在另一个灰度级旁边的可能性的指标,并为我的图像创建了GLCM。
我不清楚如何将GLCM映射到原始图像(以及它的簇),因为GLCM讨论像素对,我希望每个X,Y位置都有纹理信息。如何将GLCM转换为像素?
答案 0 :(得分:3)
GLCM的输出似乎是T-by-T矩阵,其中T是图像中不同灰度级的数量。因此,此矩阵的大小并不真正取决于图像的大小。矩阵还描述了整个图像的纹理,因此将GLCM数据与单个像素相关联并不是特别有意义。
听起来您可以为各个群集计算GLCM,因为这会描述该群集中的纹理?我认为graycomatrix需要一个矩形图像,但您可以找到每个聚类的边界框并分别从它们中提取GLCM。
如果您想从GLCM矩阵中获取一些更有意义的信息(即适合作为“特征”的东西),您可以使用graycoprops返回4个汇总统计信息。