这是一张灵异事件图。。。开个玩笑,这就是一张普通的图片。

毫无疑问,上面的那副图画看起来像一幅电脑背景图片。这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球。然而,我们生活在数字图片的年代,我们也很少去想这些图片是在怎么存储在存储器上的或者去想这些图片是如何通过各种变化生成的。

在这篇文章中,我将带着你了解一些基本的图片特征处理。data massaging 依然是一样的:特征提取,但是这里我们还需要对跟多的密集数据进行处理,但同时数据清理是在数据库、表、文本等中进行。这是如何对图片进行处理的呢?我们将看到图片是怎么存储在硬盘中的,同时我们可以通过使用基本的操作来处理图片。

导入图片

在python中导入图片是非常容易的。下面的代码就是python如何导入代码的:

代码解释:

这幅图片有一些颜色和许多像素组成,为了形象这幅图片是如何存储的,把每一个像素想象成矩阵中的每一个元素。现在这些元素包含三个不同的密度信息,分别为颜色红、绿、蓝(RGB)。所以一个RGB的图片就变成了三维的矩阵。每一个数字就是颜色的密度(RGB)

让我们来看看一些转化:

就像你在上面看到的一样,我们对三个颜色维度进行了一些操作转变。黄色不是一种直接表示的颜色,它是红色和绿色的组合色。我们通过设置其他颜色密度值为零而得到了这些变化。

将图像转换为二维矩阵

处理图像的三维色有时可能是很复杂和冗余的。如果我们压缩图像为二维矩阵,在特征提取后,它将变得更简单。这是通过灰度图像或二值化(Binarizing)图像。当图片显示为不同灰色强度组合时灰度图像比二值化(Binarizing)图像颜色更加饱满,而二值化(binarzing)只是简单的构建一个充满0和1的二维矩阵而已。

这里将叫你如何将RGB图片转变成灰度图像:

就如你所见,图片的维度已经降为了两种灰度值了,然而图片的特征在两幅图片中依然清晰可见。这就是为什么灰色图像在硬盘上存贮更加节约空间。

现在让我们来二值化灰色图像,这是通过找到阀值和灰色度像素标志(flagging the pixels of Grayscale)。在这篇文章中我已经通过Otsu‘s方法来找到阀值的,Otsu‘s方法是通过最大化两类不同像素点之间的距离来计算最优阀值的,也就是说这个阀值最小化了同类间的变量值。

模糊化图片

本文最后部分我们将介绍更多有关特征提取的内容:图像模糊。灰度或二值图像有时需要捕获更多的图像而模糊图像在这样的场景下是非常方便的。例如,在这张图片如果铁路轨道比鞋子更加重要,模糊处理将会添加跟多的值。从这个例子中我们对模糊处理变得更清晰。模糊算法需要将邻近像素的加权平均值加到周围每个颜色像素中。下面是一个模糊处理的例子:

对上面的照片模糊处理后,我们清楚地看到鞋已经与铁路轨道具有相同的密度等级。因此,在许多场景中这种技术非常方便。

让我们看一个实际例子。我们想在一个小镇的照片上统计的人数。但是照片上还有一些建筑图像。现在建筑背后的人的颜色强度会低于建筑本身。因此,这些人我们就难以计数。模糊处理场景后才能平衡建筑和人在图像中的颜色强度。

完整的代码:

image = imread(r"C:\Users\Tavish\Desktop\7.jpg")

show_img(image)

red, yellow = image.copy(), image.copy()

red[:,:,(1,2)] = 0

yellow[:,:,2]=0

show_images(images=[red,yellow], titles=['Red Intensity','Yellow Intensity'])

from skimage.color import rgb2gray

gray_image = rgb2gray(image)

show_images(images=[image,gray_image],titles=["Color","Grayscale"])

print "Colored image shape:", image.shape

print "Grayscale image shape:", gray_image.shape

from skimage.filter import threshold_otsu

thresh = threshold_otsu(gray_image)

binary = gray_image > thresh

show_images(images=[gray_image,binary_image,binary],titles=["Grayscale","Otsu Binary"])

from skimage.filter import gaussian_filter

blurred_image = gaussian_filter(gray_image,sigma=20)

show_images(images=[gray_image,blurred_image],titles=["Gray Image","20 Sigma Blur"])

总结

以上就是本文关于python实现图片处理和特征提取详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

python图像特征提取进行分割_python实现图片处理和特征提取详解相关推荐

  1. python图像转字符画_Python实现图片转字符画的代码实例

    如何利用Python实现图片转字符画详解 如何用python将图片转为字符画给小编你的心作纪念,小编的梦有你的祝福才能够完全,风浪再大,小编也会勇往直前,小编们的爱,镶在青春的纪念册. # codin ...

  2. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  3. python类初始化导入库_Python中optparser库用法实例详解

    本文研究的主要是Python中optparser库的相关内容,具体如下. 一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库.当然了,不敢说理解的很到位,但是足以应付正常 ...

  4. python动态类型的坑_python进阶教程之动态类型详解

    动态类型(dynamic typing)是Python另一个重要的核心概念.我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值.这些都与动态类型的概念 ...

  5. python中exchange函数使用_python基于exchange函数发送邮件过程详解

    python基于exchange函数发送邮件过程详解 作者: shuzihua 更新时间:2020-11-06 10:40:35 原文链接 1.Python hasattr() 函数 描述 hasat ...

  6. python对文件的处理_python文件处理fileinput使用方法详解

    这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 fileinput模块 ...

  7. python是基于什么原理_Python基于class()实现面向对象原理详解

    首先,类是一个集合,包含了数据,操作描述的一个抽象集合 你可以首先只把类当做一个容器来使用 class Cycle: def __init__(self,r): self.pi=3.14 self.r ...

  8. python的类和对象_Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象.分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态): 属性一般是一个个变量:方法是一个个函数: #类的属性 ...

  9. python怎样快速下载库_Python如何急速下载第三方库详解

    前言 pip 是一个现代的,通用的 Python 包管理工具 ,是一个安装第三方 库必备的工具,提供了对Python 包的查找.下载.安装.卸载的功能.但是在国内使用有很多因素的限制,一个3.4M的库 ...

最新文章

  1. 重塑云上的 Java 语言
  2. Oracle 自己主动诊断资料档案库 (ADR)、自己主动诊断工作流、ADRCI工具
  3. 你的网页加载太慢了怎么办?
  4. 面对不同的业务场景,选择零码还是低码?
  5. 只用一个marker 替换 高德_关于高德地图添加Marker遇到的一些坑
  6. 【OpenStack】【Keystone】安装与配置详解
  7. rust如何加好友steam_《Rust》加入女性建模 角色性别将由STEAM账号决定
  8. 远程连接(加密验证问题解决)
  9. 数学分析 复合函数求导法则
  10. nginx从入门到精通:第一阶段快速入门
  11. 最全企业级数仓建设迭代版
  12. 整流四 -三相PWM整流器的工作原理分析
  13. 使用PS制作背景透明的png图片
  14. 【调试工具】【tc】Linux流量控制原理【转】
  15. 华为手机提示更新包与已安装应用的签名不一致
  16. 【spring事务管理】
  17. python图片提取文字软件_这款Python 库 4行代码提取图片中的文字
  18. VMware虚拟机如何开启雷电模拟器的VT?
  19. (程序员/软件工程师/开发者)编程——计算机专业英语学习指引
  20. 本地maven仓库配置

热门文章

  1. 【Proxyee-down】一款比IDM还强大的下载器!
  2. 观点丨李飞飞:我们怎么教计算机理解图片
  3. yb3防爆电机型号含义_防爆电机型号分类、用途及含义解析
  4. Electron教程1_Electron介绍
  5. 坦克世界计算机中丢失d3,坦克世界输入法【处理措施】
  6. eventlet并发读写socket出现Second simultaneous问题
  7. 《临江仙·梦后楼台高锁》——[宋]晏几道
  8. 使用 Cocos2d-x 和粒子编辑器实现“天天爱消除”场景特效
  9. word打印A4纸翻页小册子设置
  10. android传递socket对象,Android Socket通信详解