MATLAB 中的灰度共生矩阵
在数字图像处理中,灰度共生矩阵,也称为GLCM,是一种用于保存数字图像中像素对之间的空间关系的统计方法。
灰度共生是一种表示图像中不同像素强度组合排列方式的方法。它主要用于指定图像的纹理属性,并提供有关图像空间区域内像素值中出现的模式、变化和结构的信息。
什么是灰度共生矩阵?
如上所述,灰度共生矩阵 (GLCM) 是一种统计方法,可提供有关图像指定局部区域中像素强度之间关系的信息。
灰度共生矩阵基本上是一个方阵,其元素表示图像中像素出现的频率。这种技术在图像处理应用中获取图像中存在的纹理和图案信息时非常有用。
如何在 MATLAB 中计算灰度共生矩阵?
MATLAB 提供了一个内置函数"geaycomatrix"来计算图像中的灰度共生矩阵。
此函数可以有以下三种语法:
glcm = graycomatrix(I) glcm = graycomatrix(I, Name, Value) [glcm, SI] = graycomatrix(___)
我们将在本文的后续部分介绍所有这些语法。在此之前,让我们了解一下使用 MATLAB 计算灰度共生矩阵的分步过程。
计算灰度共生矩阵的过程
使用 MATLAB 从图像计算灰度共生矩阵的分步过程如下:
步骤 (1) – 读取输入图像并将其转换为灰度版本。
步骤 (2) – 定义用于计算灰度共生矩阵的参数,例如像素对之间的距离、角度等。
步骤 (3) – 使用"graycomatrix"函数计算灰度共生矩阵。
然后可以使用此灰度共生矩阵来分析图像的纹理和图案属性。
现在,让我们实际了解如何在 MATLAB 中从图像创建灰度共生矩阵。
使用默认参数计算灰度共生矩阵
在 MATLAB 中,我们可以使用"graycomatrix"函数的以下语法,使用默认参数从图像创建灰度共生矩阵 (GLCM)。
glcm = graycomatrix(I);
其中,I 是输入的灰度图像。
示例
现在让我们考虑一个示例程序来演示此语法在 MATLAB 编程中的实现。
% MATLAB 程序使用默认参数创建 GLCM % 读取输入图像 img = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg'); % 将输入图像转换为灰度图像 I = rgb2gray(img); % 使用默认参数计算 GLCM glcm = graycomatrix(I); % 显示 GLCM disp('输入图像的 GLCM 是:'); disp(glcm);
输出
输入图像的 GLCM 为: 33 129 41 14 1 0 0 0 135 2874 778 223 84 24 3 0 31 791 22294 3199 329 125 35 1 15 174 3236 28009 3252 394 152 16 3 106 311 3128 14310 2148 317 74 1 42 140 485 1775 12637 2085 200 0 6 59 186 513 1594 24010 2485 0 0 6 40 155 484 2289 136872
使用指定参数计算灰度共生矩阵
在 MATLAB 中,使用以下语法的"graycomatrix"函数使用指定参数计算灰度共生矩阵。
glcm = graycomatrix(I, Name, Value, …);
在此语法中,我们使用名称-值对指定参数。
示例
以下示例演示了此语法在 MATLAB 编程中的实际实现。
% MATLAB 程序使用指定参数创建 GLCM % 读取输入图像 img = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg'); % 将输入图像转换为灰度图像 I = rgb2gray(img); % 使用默认参数计算 GLCM glcm = graycomatrix(I, 'Offset', [2 1], 'NumLevels', 7); % 显示 GLCM disp('输入图像的 GLCM 为:'); disp(glcm);
输出
输入图像的 GLCM 为: 53 193 33 26 34 53 54 206 4087 1611 406 243 190 283 26 1607 32291 5636 1006 486 352 24 413 5511 20083 3230 844 604 29 236 1051 2957 11465 2442 768 49 201 555 808 1938 20689 3416 57 284 410 811 1073 2974 139777
计算灰度共生矩阵并返回缩放后的图像
在 MATLAB 中,以下"graycomatrix"函数的语法用于计算返回缩放后的图像的灰度共生矩阵。
[glcm, SI] = graycomatrix(___);
此处,变量"SI"是缩放后的图像,基本上是归一化到范围 [1, NumLevels] 的输入图像。
示例
让我们看一个例子来了解此语法在 MATLAB 编程中的实现。
% MATLAB 程序创建 GLCM 返回缩放后的图像 % 读取输入图像 img = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg'); % 将输入图像转换为灰度图像 I = rgb2gray(img); % 使用默认参数计算 GLCM [glcm, SI] = graycomatrix(I); % 显示 GLCM 和缩放后的图像 disp('输入图像的 GLCM 为:'); disp(glcm); disp('缩放后的图像为:'); imshow(rescale(SI));
输出
输入图像的 GLCM 为:
The GLCM for the input image is: 33 129 41 14 1 0 0 0 135 2874 778 223 84 24 3 0 31 791 22294 3199 329 125 35 1 15 174 3236 28009 3252 394 152 16 3 106 311 3128 14310 2148 317 74 1 42 140 485 1775 12637 2085 200 0 6 59 186 513 1594 24010 2485 0 0 6 40 155 484 2289 136872
缩放后的图像为:
结论
这一切都是关于在 MATLAB 中创建灰度共生矩阵 (GLCM)。为此,MATLAB 提供了一个内置函数"graycomatrix",允许从图像中计算共生矩阵以分析图像的纹理特征。
在本教程中,我们解释了灰度共生矩阵的概念、它在图像处理中的重要性以及实际示例,以了解如何使用 MATLAB 计算图像的 GLCM。