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

时间:2012-04-30 11:42:20

标签: c++ matlab opencv matrix glcm

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

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

[编辑]

我试过这段代码,但是与matlab结果相比,它提供了错误的值,OpenCV中是否存在更好的解决方案/功能,或者我在GLCM流程中是否有任何错误?

            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");
            }

2 个答案:

答案 0 :(得分:0)

有一个名为CvGLCM的课程:

OpenCV-2.3.1a documentation

我从未使用它。

答案 1 :(得分:-1)

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