Python:获取非矩形区域的GLCM

Python:获取非矩形区域的GLCM,第1张

Python:获取非矩形区域的GLCM

尽管

mahotas
它也是一个出色的计算机视觉库,但无需停止使用
skimage
它。

什么
必要的,因为@Tonechas已经指出的那样,是那些NaN值设定为一个整数,由于

np.nan
具有类型
float
greycomatrix
功能需要的整数数组

最简单的选择是将那些设置

NaN
为零,但是,如果像素中已经有零值并且不想混合它们,则可以选择任何其他常数。之后,您要做的就是从GLCM中过滤出所选的值(再一次,通常为零)。

要了解这意味着什么,让我们看看是什么

skimage
告诉我们该
greycomatrix
函数的输出:

4维数组

值P
[i,j,d,theta]是灰度级j在距灰度级i的距离为d且角度为θ的角度出现的次数。如果normed为False,则输出为uint32类型,否则为float64。尺寸为:水平x水平x距离数x角度数。

换句话说,数组的前两个维定义一个矩阵,该矩阵告诉我们两个不同的值相隔一定距离多少次。请注意,GLCM并 没有
保留输入数组的形状。这些行和列告诉我们这些值之间的关系。

知道这一点,很容易过滤掉投资回报率之外的值(假设我们将那些NaN设置为零):

glcm = greycomatrix(img, [1], [0])  # Calculate the GLCM "one pixel to the right"filt_glcm = glcm[1:, 1:, :, :]# Filter out the first row and column

现在,您可以轻松计算过滤后的GLCM的Haralick属性。例如:

greycoprops(filt_glcm, prop='contrast')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存