【问题标题】:How to get the GLCM images to show in Matlab如何让 GLCM 图像在 Matlab 中显示
【发布时间】:2017-07-07 06:05:56
【问题描述】:
我想在 Matlab 中显示图像的 GLCM。到目前为止,我已经尝试过并且只能获得统计数据。
I = imread('cameraman.tif');
glcm1 = graycomatrix(I);
Stats = graycoprops(glcm1);
它会产生统计数据。
统计 =
Contrast: 0.5006
Correlation: 0.9269
Energy: 0.1636
Homogeneity: 0.8925
我想要在这里展示这 4 个 GLCM 的图像。
输出该图像应该很简单,但我对这件事很陌生,不知道我错过了什么。
【问题讨论】:
-
-
这确实返回了图像的一个非常小的像素。不知道那是什么。 Example Images 按照链接找到“2. 实施的各种 GLCM 纹理措施”部分。我想将原始图像处理为 GLCM 并像这样显示它们。对比度、同质性、熵等……有可能吗?
标签:
matlab
image-processing
matlab-figure
feature-extraction
glcm
【解决方案1】:
GLCM 不是图像矩阵,它显示矩阵中的像素对,如下图所示
【讨论】:
-
Example Images 我认为 GLCM 可以返回图像。点击链接并找到“2. 实施的各种 GLCM 纹理措施”部分。我想将原始图像处理为 GLCM 并像这样显示它们。对比度、同质性、熵等……有可能吗?
【解决方案2】:
可以通过imagesc展示一张图片的灰度共生矩阵:
I = imread('https://raw.github.com/antimatter15/cameraman/master/cameraman.png');
imshow(I)
M = graycomatrix(I, 'GrayLimits', [0, 255], 'NumLevels', 256, 'Offset', [0 1], 'Symmetric', true);
figure
imagesc(M)
colormap(gray)
graycoprops(M)
显示的 GLCM 对应于“向右一个像素”的偏移量。这个矩阵很大程度上是对角的,这意味着像素的强度是高度相关的。
从上面的GLCM中提取的特征如下:
Contrast: 518.6036
Correlation: 0.9335
Energy: 0.0015
Homogeneity: 0.3772