OpenCV how to get GLCM gray-level co-occurrence matrix

时光毁灭记忆、已成空白 提交于 2019-12-12 02:55:00

问题


I am trying to extract features using GLCM (gray-level co-occurrence matrix (GLCM) from image) in OpenCV.

In matlab we have graycomatrix. Does we have any function in openCV for the same purpose? If not, then what is the best solution to achieve it and is there any working example?

[EDIT]

I tried this code but it gives wrong values as compare to matlab result any better solution/function exist in OpenCV or am I doing any mistake in GLCM process?

            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:


There is a class called CvGLCM:

OpenCV-2.3.1a documentation

I have never used it though.




回答2:


You have to install scipy,numpy,skimage. and skimage has module skimage.feature which include skimage.feature.greycomatrix and skimage.feature.greycoprops there we can calculate greycoimage for ndarray uint8 and also greco properties instructions



来源:https://stackoverflow.com/questions/10383117/opencv-how-to-get-glcm-gray-level-co-occurrence-matrix

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!