在matlab中计算GLCM纹理特征
Compute GLCM texture feature in matlab
我想从我的 CBIR 系统中的图像中提取 GLCM 纹理特征....
我应用了以下代码:
S=imread('A1.jpg');
S=rgb2gray(S);
I= imresize (S, [350 350]);
glcm45=graycomatrix(I,'offset',[-1 1],'NumLevel', 8,'Symmetric',true);
% 45 engle degree
glcm135 = graycomatrix(I,'Offset',[-1 -1],'NumLevel', 8,'Symmetric', true ); % 135 engle degree
GLCM=glcm45+glcm135;
我得到 64(8*8) 维度的 GLCM 特征,我用它来检索相似图像,我得到了很好的结果....
我的问题是:我可以将这64个维度视为图像的GLCM特征向量的长度吗?
是的,您可以将其视为一项功能。甚至还有一篇关于此的研究文章——使用 GLCM 作为进行人脸检测的唯一特征:"Co-occurence Matrix and its Statistical Features as a New Approach for Face Recognition"。这是 link.
该论文还表明,使用 GLCM 作为特征比从 GLCM 派生的 Haralick 特征表现更好。此外,可以在几毫秒内计算出 GLCM(0.5 毫秒 - 2 毫秒;我自己的 C++ 实现,具有所有 0、45、90 和 135 度邻域对应的 256x256 GLCM),因此它是一个廉价且出色的功能。
我想从我的 CBIR 系统中的图像中提取 GLCM 纹理特征.... 我应用了以下代码:
S=imread('A1.jpg');
S=rgb2gray(S);
I= imresize (S, [350 350]);
glcm45=graycomatrix(I,'offset',[-1 1],'NumLevel', 8,'Symmetric',true);
% 45 engle degree
glcm135 = graycomatrix(I,'Offset',[-1 -1],'NumLevel', 8,'Symmetric', true ); % 135 engle degree
GLCM=glcm45+glcm135;
我得到 64(8*8) 维度的 GLCM 特征,我用它来检索相似图像,我得到了很好的结果....
我的问题是:我可以将这64个维度视为图像的GLCM特征向量的长度吗?
是的,您可以将其视为一项功能。甚至还有一篇关于此的研究文章——使用 GLCM 作为进行人脸检测的唯一特征:"Co-occurence Matrix and its Statistical Features as a New Approach for Face Recognition"。这是 link.
该论文还表明,使用 GLCM 作为特征比从 GLCM 派生的 Haralick 特征表现更好。此外,可以在几毫秒内计算出 GLCM(0.5 毫秒 - 2 毫秒;我自己的 C++ 实现,具有所有 0、45、90 和 135 度邻域对应的 256x256 GLCM),因此它是一个廉价且出色的功能。