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