Python-Image-feature-extraction

Python实现提取图像的纹理、颜色特征,包含快速灰度共现矩阵(GLCM)、LBP特征、颜色矩、颜色直方图。1044197988/Python-Image-feature-extraction​github.com

原始图片

这里拿高光谱影像图片作为示例,图片大小为512*512。原始图片

一、纹理特征

1、GLCM

灰度共生矩阵法(GLCM, Gray-level co-occurrence matrix),就是通过计算灰度图像得到它的共生矩阵,然后透过计算该共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度等综合信息,它是分析图像的局部模式和它们排列规则的基础。

numpy的快速灰度共现矩阵(GLCM)。

import fast_glcm

from skimage import data

if __name__ == '__main__':

img = data.camera()

glcm_mean = fast_glcm.fast_glcm_mean(img)

以上图片标题代表的含义:

(1)均值(Mean)

(2)标准差(Std)

(3)对比度(Contrast)对比度反应了图像的清晰度和纹理的沟纹深浅。度量矩阵的值是如何分布和图像中局部变化的多少,反应了图像的清晰度和纹理的沟纹深浅。纹理的沟纹越深,反差越大,效果清晰;反之,对比值小,则沟纹浅,效果模糊。

反应某像素值及其领域像素值亮度的对比情况,图像亮度值变化快,换句话说纹理较深,它的对比度就越大,也就是它的纹理越清晰。

(4)相异性(Dissimilarity)计算对比度时,权重随矩阵元素与对角线的距离以指数方式增长,如果改为线性增长,则得到相异性。

(5)同质性/逆差距(Homogeneity)测量图像的局部均匀性,非均匀图像的值较低,均匀图像的值较高。与对比度或相异性相反,同质性的权重随着元素值与对角线的距离而减小,其减小方式是指数形式的。

(6) 角二阶矩 / 能量( ASM)灰度共生矩阵( grey level co-occurrence matrix,GLCM)用来描述图像灰度分布的均匀程度和纹理的粗细程度。

如果 GLCM 的所有值都非常接近,则 ASM 值较小; 如果矩阵元素取值差别较大,则 ASM 值较大。当 ASM 值较大时,纹理粗,能量大; 反之,当 ASM 值小时,纹理细,能量小。

(7)能量(Energy)是灰度共生矩阵各元素值的平方和,是对图像纹理的灰度变化稳定程度的度量,反应了图像灰度分布均匀程度和纹理粗细度。能量值大表明当前纹理是一种规则变化较为稳定的纹理。更高的值==纹理均匀性。

(8)熵(Entropy)测量图像纹理的随机性(强度分布)。熵是图像包含信息量的随机性度量,表现了图像的复杂程度。当共生矩阵中所有值均相等或者像素值表现出最大的随机性时,熵最大;因此熵值表明了图像灰度分布的复杂程度,熵值越大,图像越复杂。

表示矩阵中元素的分散程度,也表示图像纹理的复杂程度。

(9)最大概率(Maximum probability)表示图像中出现次数最多的纹理特征。

2、LBP

LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子,具有多分辨率、灰度尺度不变、旋转不变等特性。主要用于特征提取中的纹理提取。

获取图像的LBP特征:对图像的原始LBP模式、等价LBP模式、旋转不变LBP模式,以及等价旋转不变LBP模式的LBP特征进行提取以及显示。

get_LBP_from_Image.py 主要文件 获取图像的LBP特征。

get_resolve_map.py和get_uniform_map.py主要是做降维后新的像素值的映射。已经将求出的结果写入了get_LBP_from_Image.py中,这两个主要是帮助理解算法降维后新的像素值怎么得到的。LBP

二、颜色特征

1、颜色矩

颜色是彩色图像最重要的内容之一,被广泛用于图像检索中。但从图像中提取颜色特征时,很多算法都先要对图像进行量化处理。量化处理容易导致误检,并且产生的图像特征维数较高,不利于检索。AMA Stricker和M Orengo提出了颜色矩的方法,颜色矩是一种简单有效的颜色特征表示方法,有一阶矩(均值,mean)、二阶矩(方差, variance)和三阶矩(斜度,skewness)等,由于颜色信息主要分布于低阶矩中,所以用一阶矩,二阶矩和三阶矩足以表达图像的颜色分布,颜色矩已证明可有效地表示图像中的颜色分布,该方法的优点在于:不需要颜色空间量化,特征向量维数低;但实验发现该方法的检索效率比较低,因而在实际应用中往往用来过滤图像以缩小检索范围。

2、颜色直方图

颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。

细分:

颜色直方图可以是基于不同的颜色空间和坐标系。最常用的颜色空间是RGB颜色空间,原因在于大部分的数字图像都是用这种颜色空间表达的。然而,RGB空间结构并不符合人们对颜色相似性的主观判断。因此,有人提出了基于HSV空间、Luv空间和Lab空间的颜色直方图,因为它们更接近于人们对颜色的主观认识。其中HSV空间是直方图最常用的颜色空间。它的三个分量分别代表色彩(Hue)、饱和度(Saturation)和值(Value)。

参考文献:https://blog.csdn.net/lovebyz/article/details/84032927​blog.csdn.net

python图像纹理提取_提取图像的颜色、纹理特征(传统算法)相关推荐

  1. android摄像头矩形框提取_视频图像摄像头跟踪的上位机系统设计

    ​背景介绍 视频序列中的目标进行跟踪是计算机视觉的热门研究领域之一,其主要过程是首先在视频序列的第一帧图像中选定跟踪目标,之后运行跟踪算法,实现在后续帧中预测跟踪目标的位置.本系统设计了一个集成视觉目 ...

  2. python简历数据提取_提取python简介

    书籍:掌握Python的网络和安全 Mastering Python for Networking and Security - 2018.pdf 简介 掌握Python的网络和安全 掌握Python ...

  3. python 输出纯音频_提取视频中的音频python三行程序搞定

    写在开头 身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外.我们可以使用 python 来提取视频中的音频,而这仅仅需要安装一个体量很小的python包,然后执行三行程序! 语音数据 ...

  4. python绘制指数函数图像及性质_指数函数图像及其性质正式版

    教学设计方案 课题名称: 指数函数图像及其性质 姓名: 安翠青 工作单 位: 滦 县 第 六 中 学 学科年级: 高一年级 教材版 本: 人教 A 版 一. 教学内容分析 指数函数是重要的基本初等函数 ...

  5. python取省边界_提取行政区边界经纬度坐标(高德+百度)

    前言 近来由于工作需要,需要提取某些城市的经纬度坐标,稍微搜索了一下,发现百度地图和高德地图都提供了相关的函数和例子.那么剩余的工作也就比较简单了,保存坐标,然后转换为WGS坐标,这样才能和现有的GP ...

  6. python两点画线_在图像python matplotlib的两点之间画一条线

    我有一个图像,我正在使用pyfits加载到2D数组中.我想在图像上画一条穿过两个像素的线,并用添加的新线保存它(不是绘图).在这之后,我想用不同的颜色画一条垂直于前一条线的线.使用matplotlib ...

  7. python图片镜像翻转_翻转图像/镜像图像

    你混淆了基于0和基于1的索引.x范围从0到org.size[0]-1.但是a的范围从org.size[0]到1,因为您从a=org.size[0]开始使用它,而不需要首先减去. 最有可能的错误来自这一 ...

  8. python图像隐写_在图像中隐藏数据:用 Python 来完成图像隐写术

    什么叫"隐写术"? 隐写术是将保密信息掩藏在更大的信息内容中,使他人没法了解掩藏信息内容的存有及其掩藏信息的全过程.隐写术的目地是确保彼此中间的商业秘密沟通交流.与掩藏保密信息內容 ...

  9. 用python制作词频图_提取词频,制作词频云图

    [python]代码库import jieba import matplotlib as mpl import matplotlib.pyplot as plt from wordcloud impo ...

最新文章

  1. FreeSql与SqlSugar性能测试对比
  2. 为网格布局图片打造的超炫 CSS 加载动画
  3. 18、java中的泛型
  4. 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)
  5. Reactor和Proactor对比以及优缺点 (netty的底层原理reactor模型)
  6. tcp socket编程 java_JAVA TCP Socket编程 计算题
  7. 添加鼠标右键菜单项(EditPlus为例)
  8. contentType,charset和pageEncoding的区别
  9. vue实现简单的日历
  10. c语言中用中文转化数字,用C语言写中文数字字符串转数值变量
  11. 快手-开眼快创 Flutter 实践
  12. Linux中安装IE和Office等软件(转)
  13. 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型
  14. Hander创建消息
  15. 2023最值得推荐的5款零编程数据可视化软件
  16. 在计算机控制系统中 常常需要设计,微型计算机控制技术第4章习题答案
  17. 豪斯医生改名换姓上演《我的“钱”半生》?
  18. 刚开始做淘宝运营应该怎么入手?
  19. 【通信学习】一些5G基本概念
  20. 文件批量重命名教程-批量重命名软件推荐

热门文章

  1. elementUI v-loading不显示问题
  2. GE Proficy CIMPLICITY如何实现跨版本升级操作?
  3. 使用ICAP原语实现SPI-Multiboot加载
  4. R数据可视化手册pdf
  5. Libgdx slg游戏进程记录
  6. Oracle收款核销了怎么撤销,21应收收款-核销取消或核销调整
  7. python HTMLParser
  8. android线刷软件,android线刷一般用什么软件?哪一个好用一些?
  9. 全国地图省份联动效果
  10. html 表格点击塌陷,HTML解决高度塌陷