问题标签 [glcm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
399 浏览

python - 如何比较两个 GLCM 以找到相似之处?

我想在两个纹理之间进行比较以确定相似性。我使用以下代码获得了 GLCM 的功能:

现在我有两个图像和它们的 GLCM。怎么比较呢?我的目标实际上是识别打印和扫描效果。

0 投票
1 回答
853 浏览

image-processing - Sentinel-1 SNAP 工具箱中的 GLCM 纹理分析输出纹理的最小和最大像素值不在 0 和 1 之间

我已经对 Sentinel-1 SAR 图像实施了 GLCM 纹理分析。图像是高分辨率的。GLCM纹理分析的参数是:

窗口尺寸:5x5

量化器:概率量化器

量化:64位

角度:0度

排量:1

输出是 10 个不同的纹理图像。但是像素值的范围不在 0 和 1 之间。每个纹理的范围都在不同的最小值和最大值之间。我相信这应该在 0 和 1 之间,因为它是针对每个像素计算的 GLCM 概率分析。

我错过了一步吗?

0 投票
1 回答
2543 浏览

python - 从 GLCM 中提取 Haralick 特征。为什么我会为每个功能获得多个值?

我昨天看到了这篇论文。在本文中,特征被视为对比度局部均匀性能量,它们都是单个值(据我所知),但根据 skimage 函数greycomatrix,传递给这些的参数是distancesangles(可能不止一个)。

这是我的代码:

让我困惑的是,如果我生成一个 glcm 的对比度属性,它将是 3x4 大小,但根据论文,它是一个值,即使我将所有属性的所有 3x4 值视为一个特征,我敢打赌它会有一个支持向量机模型的过拟合问题。

0 投票
1 回答
1150 浏览

java - 如何在 Java 中计算共现矩阵?

我有一个关于共现公式的问题。如何在 Java 中实现图像 GLCM 的计算?

具体来说,我试图弄清楚如何计算一个像素具有强度的次数,x并且其右侧的像素具有强度y。我还需要将获得的值存储在生成的共现矩阵的x第 - 行和y第 - 列中。

预期的行为如下所示:

GLCM算法

这是我到目前为止得到的:

代码(尚未完成)

输出(错误)

我宁愿不使用 OpenCV 或 jfeaturelib 等第三方库。

0 投票
1 回答
7420 浏览

image - 如何在python(opencv)中实现GLCM算法进行图像特征提取?

我需要在 python 中或使用 openCV 实现一个算法。一种有助于图像特征提取的算法。我将在这里使用的图像是皮肤图像。请指导我构建此代码。

0 投票
1 回答
432 浏览

python - 将图像裁剪到对象区域的区域

我打算将纹理识别应用于不同的花卉图片,并且正在考虑使用 GLCM 进行特征提取。在应用 GLCM 之前,我应该将 RGB 图像转换为灰色图像。我还想从灰色图像中减去背景信息,以仅应用 GLCM 花卉对象的像素来消除噪声。我正在考虑使用skimage。如何从灰色图像中减去背景像素以确保大多数像素属于花卉对象?

0 投票
1 回答
217 浏览

matlab - graycomatrix 的 NumLevels 和 GrayLimits 是一回事吗 MATLAB

我一直在考虑在 MATLAB 中使用graycomatrix. 我发现了两个论点(NumLevelsGrayLimits),但在我的研究和实施中,它们似乎达到了相同的结果。

GrayLimits范围集之间的指定箱[low high],导致一组受限的灰度级。

NumLevels声明图像中的灰度级数。

有人可以解释这两个论点之间的区别,因为我不明白为什么会有两个论点达到相同的结果。

0 投票
2 回答
852 浏览

matlab - 从 16 位图像创建灰度共生矩阵

我有一组 16 位的图像数据集,我想从中创建 GLCM 矩阵以提取 GLCM 特征。

但是,生成的矩阵显示一个值(如下图所示),我想知道为什么。

16glcm

我尝试使用相同的图像但转换为 8 位,结果 GLCM 显示几个值。

8glcm

注意:我使用了以下 Matlab 函数:

这是 16 位图像的裁剪示例:

rescaled_crop

注意:计算中使用的图像可以从这里下载。原始图像的对比度非常低,看起来很暗。上面显示的图像的对比度被拉伸,仅用于可视化目的。

编辑:

我用了

它给了我以下结果:

16glcm固定

0 投票
1 回答
875 浏览

python - 如何将图像的 HH 子带传递给 graycomatrix 函数?

我正在使用 scikit-images 的函数greycomatrix,我想将在 haar 滤波后从小波变换获得的分量之一作为输入。

如果我传递HHgreycomatrix我会收到此错误:

ValueError:greycomatrix 不支持浮动图像。将图像转换为无符号整数类型。

我尝试使用以下代码转换图像:

但我得到了这个错误:

raise ValueError("float 类型的图像必须介于 -1 和 1 之间。") ValueError:float 类型的图像必须介于 -1 和 1 之间。

0 投票
1 回答
1102 浏览

python - 如何在 python 中使用 scikit-image graycomatrix() -function?

我正在尝试从图像中计算灰度共现矩阵以进行特征提取。我正在使用greycomatrix该任务,但由于出现以下错误,我似乎对该过程不了解:

ValueError:缓冲区源数组是只读的

(完整的跟踪可以在下面找到)

所以这就是我所做的:

将(PIL)图像转换为具有 8 个量化级别的灰度:

然后计算 glcm 矩阵:

这导致了一个相当神秘的错误:

glcm = graycomatrix(img,距离=[1],角度=[0,np.pi/4,np.pi/2],级别=256,对称=真,规范=真)

_glcm_loop(图像,距离,角度,水平,P)

文件“skimage/feature/_texture.pyx”,第 18 行,在 skimage.feature._texture._glcm_loop

View.MemoryView.memoryview_cwrapper 中的文件“stringsource”,第 654 行

View.MemoryView.memoryview._cinit__ 中的文件“stringsource”,第 349 行 ValueError:缓冲区源数组是只读的

我一直试图对参数感到刺痛,但我似乎无法弄清楚,为什么会发生这种情况。计算 glcm 矩阵的正确方法是什么?

更新

问题在于灰度转换。需要进行以下更改: