Advertisement

灰度共生矩阵纹理特征提取_纹理特征提取

阅读量:

纹理通常被定义为图像的某种局部特征,或是对局部区域中像素之间关系的一种度量。

纹理的标志有三要素:①某种局部的序列性,在该序列更大的区域内不断重复;②序列是由基本部分非随机排列组成的;③各部分大致都是均匀的统一体,纹理区域内任何地方都有大致相同的结构尺寸。

纹理可分为人工纹理和自然纹理,如下图所示:
855b55693bdc51b62f4ed01df15ee16f.png

常用的纹理特征提取方法主要有:统计方法;几何法;模型法;信号处理法;结构分析法。



共生矩阵:灰度共生矩阵(GLCM)描述了图像中灰度为Ik的像素从(i,j)沿指定方向和距离d移动到(i',j')处灰度为Ie的概率。GLCM不但适用于纹理识别,而且用于图像分割时效果也很好。共生矩阵的本质是两个像素点的联合直方图,实验如下:

实验数据:(玻璃裂纹,如下图所示)
bd2f20b90a1b01d49fed39cd9ded7490.png

原始纹理图

灰度共生矩阵实验代码如下所示:

复制代码
    %{本实验用于灰度共生矩阵实验读取一张图像并将其灰度化获取预处理后灰度图像的共生矩阵并显示分析%}img = imread('1.jpg');    % 读取实验图像img_gray = rgb2gray(img); % 将图像转为灰度图[r,c,l] = size(img_gray); % 获取图像的大小a = 1;b = 0;              % 人为定义a和bGLCM = zeros(256,256);    % 预设与灰度级相当的共生矩阵% 遍历图像修正灰度共生矩阵for i = 1:1:r - a    for j = 1:1:c - b        f1 = img_gray(i,j);        f2 = img_gray(i + a,j + b);        GLCM(f1 + 1,f2 + 1) = GLCM(f1 + 1,f2 + 1) + 1;    end    endGLCM = GLCM/max(max(GLCM)); % 共生矩阵归一化 imshow(GLCM); % 共生矩阵可视化msgbox '完成!';
    
    AI写代码

设置a = 1,b = 0,生成的共生矩阵以图像的形式显示,如下图所示:
a6c34b5ccadb18914b4b91a7ae16e8fe.png

设置a = 1,b = 1,生成的共生矩阵以图像的形式显示,如下图所示:
4f8e47ea497839a0a018b05dda7746c2.png

设置a = 2,b = 0,生成的共生矩阵以图像的形式显示,如下图所示:
45a89f67cd1968848b18849c5cdb85dd.png

实验2:实验数据:(细小木纹的图像,如下图所示)
7f0e24f60f9f517082bc9170b744214f.png

设置a = 1,b = 0,生成的共生矩阵以图像的形式显示,如下图所示:
0463be76bac86d355790c9c4e776a066.png

设置a = 1,b = 1,生成的共生矩阵以图像的形式显示,如下图所示:
3b9ec1b131c33beb216951c96820583e.png

设置a = 2,b = 0,生成的共生矩阵以图像的形式显示,如下图所示:
01d420f4a9133cb4fa5ac9bd0a578f66.png

可见,距离(a,b)取值不同,灰度共生矩阵中的值不同。a和b的取值要根据纹理周期分布的特性来选择,对于较细的纹理,选(1,0),(1,1),(2,0)等这样的数值是必要的。a,b取值较小对应变化缓慢的纹理图像,其灰度共生矩阵对角线上的数值较大。纹理变化越快,则对角线上的数值越小,而对角线两侧数值增大。

如上两个实验,实验一,纹理变化缓慢,共生矩阵呈对角分布;实验二,纹理较细,共生矩阵呈中心分布,对角分布不明显。

全部评论 (0)

还没有任何评论哟~