OpenCV如何获取GLCM灰度共生矩阵

Posted

技术标签:

【中文标题】OpenCV如何获取GLCM灰度共生矩阵【英文标题】:OpenCV how to get GLCM gray-level co-occurrence matrix 【发布时间】:2012-04-30 11:42:19 【问题描述】:

我正在尝试在 OpenCV 中使用 GLCM(图像中的灰度共现矩阵 (GLCM))提取特征。

在 matlab 中我们有graycomatrix。我们在 openCV 中是否有任何用于相同目的的功能?如果没有,那么实现它的最佳解决方案是什么?是否有任何可行的示例?

[编辑]

我试过这段代码,但它给出的值与 matlab 结果相比是错误的

            char rawdata[4][4] =  0, 1, 2, 3,
           1, 1, 2, 3,
           1, 0, 2, 0,
           0, 0,0, 3;

           src->imageData = (char*)(&rawdata);

             CvGLCM* glcm;
            glcm = cvCreateGLCM(src, 2, NULL,4, CV_GLCM_OPTIMIZATION_NONE);
            cvCreateGLCMDescriptors(glcm, CV_GLCMDESC_OPTIMIZATION_ALLOWDOUBLENEST);

           for (int step=0; step<4; step++)
            
                 printf("%.3f,", cvGetGLCMDescriptor(glcm, step, CV_GLCMDESC_CONTRAST));
                  printf("\n");
            

【问题讨论】:

【参考方案1】:

有一个类叫CvGLCM:

OpenCV-2.3.1a documentation

不过我没用过。

【讨论】:

我以前用过这个,但没有给出正确的结果,知道为什么吗? 还有什么帮助吗???对我来说解决它真的很重要..我已经用我当前的 GLCM 代码编辑了这个问题,但仍然没有正确的信息。 帮不了你了,我只安装了一个旧版本的 opencv,它没有这个包。我建议你再问一个关于这个问题的编辑部分的问题,人们会更愿意帮助调试代码而不是回答理论问题【参考方案2】:

你必须安装 scipy,numpy,skimage。并且 skimage 有模块 skimage.feature 其中包括 skimage.feature.greycomatrix 和 skimage.feature.greycoprops 在那里我们可以计算 ndarray uint8 的 graycoimage 以及 greco 属性instructions

【讨论】:

以上是关于OpenCV如何获取GLCM灰度共生矩阵的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 例程200篇231. 特征描述之灰度共生矩阵(GLCM)

纹理特征提取方法:LBP, 灰度共生矩阵

关于灰度共生矩阵对纹理图像进行分割的问题

opencv中16位的矩阵保存成图像,最大灰度值只有32768

路面分类基于matlab灰度共生矩阵图形纹理检测+SVM路面状况分类含Matlab源码 1519期

数字图像处理 灰度共生矩阵特征分析法