#定义最大灰度级数
gray_level = 16

def maxGrayLevel(img):
    max_gray_level=0
    max_gray_level = np.max(img)                                       
    return max_gray_level+1

def getGlcm(input,d_x,d_y):
    srcdata=input.copy()
    gray_level_array=np.ones(input.shape)*gray_level
    
    ret=np.zeros((gray_level,gray_level)).tolist()
    (height,width) = input.shape
    
    max_gray_level = maxGrayLevel(input)
    max_gray_level_array=np.ones(input.shape)*max_gray_level
    
    #若灰度级数大于gray_level,则将图像的灰度级缩小至gray_level,减小灰度共生矩阵的大小
    if max_gray_level > gray_level:
        srcdata = (srcdata * gray_level_array / max_gray_level_array).astype(int)
        
    for j in range(height-d_y):
        for i in range(width-np.abs(d_x)):
            rows = srcdata[j][i]
            cols = srcdata[j + d_y][i+d_x]
            ret[rows][cols]+=1.0

height_width_array=np.ones(np.array(ret).shape)*float(height*width)
    ret/=height_width_array
    return ret

def feature_computer(p1):
    p=np.array(p1)
    Eng=0.0
    Eng = np.sum((p+1e-12)*np.log(p+1e-12))           
    return -Eng

def test(image_name):
    img = image_name
    img1 = image_name
    try:
        img_shape=img.shape
    except:
        print ('imread error')
        return

img=cv2.resize(img,(int(img_shape[1]/2),int(img_shape[0]/2)),interpolation=cv2.INTER_CUBIC)

if img1.shape[2] == 3 :
        img_gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    else:
        img_gray = img

glcm_0=getGlcm(img_gray, 1,0)
    eng =feature_computer(glcm_0)

return eng

参考文献:Haralick R M, Shanmugam K, Dinstein I. Textural Features for Image Classification[J]. Systems Man & Cybernetics IEEE Transactions on, 1973, smc-3(6):610-621

灰度共生矩阵(GLCM)计算速度快很多,用numpy写的相关推荐

  1. 灰度共生矩阵GLCM及其matlab实现

    Prerequisites 概念 计算方式 对于精度要求高且纹理细密的纹理分布,我们取像素间距为d=1d = 1,以下是方向的说明: 我们来看,matlab内置工具箱中的灰度共生矩阵的生成函数gray ...

  2. 灰度共生矩阵(GLCM)

    灰度共生矩阵(GLCM) 算法简介 灰度共生矩阵法(GLCM, Gray - level co - occurrence matrix),就是通过计算灰度图像得到它的共生矩阵,然后透过计算该共生矩阵得 ...

  3. matlab 灰度共生矩阵熵,图像的灰度共生矩阵GLCM(matlab 函数帮助).

    Gray-level co-occurrence matrix from an image 图像的灰度共生矩阵 灰度共生矩阵是像素距离和角度的矩阵函数,它穿越计算图像中定然距离和定然方向的两点灰度之间 ...

  4. 计算灰度共生矩阵GLCM

    灰度共生矩阵 灰度共生矩阵定义为像素对的联合分布概率,是一个对称矩阵,它不仅反映图像灰度在相邻的方向.相邻间隔.变化幅度的综合信息,但也反映了相同的灰度级像素之间的位置分布特征,是计算纹理特征的基础. ...

  5. 基于灰度共生矩阵(GLCM)的图像纹理分析与提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 灰度共生矩阵 灰度共生矩阵(Gray Level CO-Occur ...

  6. 【OpenCV 例程 300篇】231. 特征描述之灰度共生矩阵(GLCM)

    『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]231. 特征描述之灰度共生矩阵(GLCM) 4.2.4 灰度共生矩阵(GLCM) ...

  7. 二维特征分类的基础_纹理特征1:灰度共生矩阵(GLCM)

    GLCM复习备用: 纹理分析是对图像灰度(浓淡)空间分布模式的提取和分析.纹理分析在遥感图像.X射线照片.细胞图像判读和处理方面有广泛的应用.关于纹理,还没有一个统一的数学模型.它起源于表征纺织品表面 ...

  8. 纹理特征分析的灰度共生矩阵(GLCM)

    纹理分析是对图像灰度(浓淡)空间分布模式的提取和分析.纹理分析在遥感图像.X射线照片.细胞图像判读和处理方面有广泛的应用.关于纹理,还没有一个统一的数学模型.它起源于表征纺织品表面性质的纹理概念,可以 ...

  9. Python计算图像纹理-灰度共生矩阵

    基于Python探究灰度共生矩阵(GLCM)那点事儿 - 知乎一.什么是灰度共生矩阵? 灰度共生矩阵(Gray-level co-occurrence matrix:GLCM)和相关的纹理特征计算是图 ...

  10. python 计算灰度共生矩阵

    纹理特征:灰度共生矩阵 纹理特征分为四大类:统计方法(灰度共生矩阵.局部二进制)信号处理方法(小波变换.Gabor变换)模型方法(分形 SAR 自相关)结构方法(数学形态学.句法纹理分析) 灰度共生矩 ...

最新文章

  1. Android 录音功能直接拿去用
  2. 推荐6个HTML5编辑器
  3. 编码和解码、调制与解调
  4. web.xml 中的filter
  5. 客户端证书错误避坑指南
  6. windows启动管理器怎么修复计算机,如果启动管理器丢失怎么办
  7. Hadoop1.x HDFS系统架构
  8. 自动驾驶仿真:Carsim、NI和VTD联合仿真课题一
  9. Weighing Features of Lung and Heart Regions forThoracic Disease Classification
  10. 苹果新专利:紧急情况下可用指纹或特定输入操作悄悄呼救
  11. 三维地图之cesium轨迹回放(有代码)
  12. C语言与C++常见问答题
  13. csdn的粉丝老铁及技术小伙伴们拜年
  14. thinkphp(2)
  15. 【论文笔记】DRL safety专题经典论文6篇
  16. 敏捷开发 如何设计好看板?:敏捷看板成功实施的关键?如何通过看板实现项目可视化?
  17. matlab检验协方差阵是否相等,matlab协方差矩阵
  18. 盘点30种磁芯结构图汇总
  19. 在我们睡觉的时候,程序能不能自动查 bug?
  20. tcl电视服务器显示异常怎么办,42寸TCL电视常见的八个故障与解决案例分享!

热门文章

  1. 荣耀4a刷android 6,荣耀4A全网通(SCL-AL00)一键救砖教程,轻松刷回官方系统
  2. maven 编译出现错误
  3. gazebo设置_gazebo的学习与使用
  4. Golang 获取月初和月底日期
  5. 微信支付查询订单V2 接口
  6. 一个免费识别验证码的接口
  7. ERROR in ./node_modules/element-plus/es/components/menu-item-group/style/css2.mjs 2:0-54
  8. 零基础学图形学(9) 几何知识——行向量和列向量
  9. 小丁带你走进git的世界二-工作区暂存区分支
  10. 保送清华计算机,2018年北大、清华五大学科竞赛集训队保送生争夺战结果