使用GLCM灰度共生矩阵前的处理操作

本文介绍了一种结合灰度共生矩阵(GLCM)和局部二值模式(LBP)进行纹理特征提取的方法。首先将图像转换为灰度图,并通过直方图均衡化增强对比度,随后进行量化处理,最后利用GLCM提取多角度的纹理特征,适用于多种数据集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GLCM提取纹理特征还是很厉害的!尤其是和LBP相结合来使用

GLCM中有很多属性可以选择,大家可以选择适合自己数据集的最优的属性组合。

第一步:获取图像的灰度图

"files[i]为输入的图像路径"
"as_grey = True表示转换为灰度图"
"返回图像数组,其中每个值的类型为float64,范围为[0,1],分布不均匀"
image = skimage.data.load(files[i], as_grey = True)

获取图像的灰度图
第二步:图像有可能相同像素值的点很多,为了增加图像的对比度和清晰度,需要直方图均衡化。
直方图均衡化

"image 为输入的图像数组"
"nbins = 256表示像素值的柱数,可使得图形数组中的数值可在[0,1]之间有256个间隙可选"
"返回图像数组,其中每个值的类型为float64,范围为[0,1],分布均匀"
window = skimage.exposure.equalize_hist(image , nbins = 256)

window
第三步:float转8位无符号整数,可表示的范围就是[0,255]

"输入:float类型的图像数组,范围为[0,1]"
"输出:图像数组,范围[0,255]"
window = skimage.util.img_as_ubyte(skimage.exposure.equalize_hist(window, 256))

float转8位无符号整数

第四步:转化到[1,8]

"window为输入的图像数组,范围[0,255]"
"bins = np.arange(0, 256, 32)为一维单调数组"
"返回值:x在bins中的位置"
np.digitize(window, bins = np.arange(0, 256, 32))

bins
在这里插入图片描述
第五步:转化到[0,7]即8位无符号整数

wt = (np.digitize(window, np.arange(0, 256, 32))) - 1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值