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)
opencv中16位的矩阵保存成图像,最大灰度值只有32768