Pergunta

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");
            }
Foi útil?

Solução

There is a class called CvGLCM:

OpenCV-2.3.1a documentation

I have never used it though.

Outras dicas

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top