GLCM

作者: 风清云淡Python | 来源:发表于2020-05-12 23:19 被阅读0次

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

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

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

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

    [图片上传中...(image-6d351-1589296727210-17)]

    image.gif

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

    image image.gif

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

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

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

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

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

    image image.gif

    第五步:转化到[0,7]即8位无符号整数

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

    相关文章

      网友评论

          本文标题:GLCM

          本文链接:https://www.haomeiwen.com/subject/tauwnhtx.html