Question

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");
            }
Was it helpful?

Solution

There is a class called CvGLCM:

OpenCV-2.3.1a documentation

I have never used it though.

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top