python实现图片处理和特征提取详解


Posted in Python onNovember 13, 2017

python实现图片处理和特征提取详解

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

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

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

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

python实现图片处理和特征提取详解

代码解释:

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

让我们来看看一些转化:

python实现图片处理和特征提取详解

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

将图像转换为二维矩阵

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

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

python实现图片处理和特征提取详解

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

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

python实现图片处理和特征提取详解

模糊化图片

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

python实现图片处理和特征提取详解

对上面的照片模糊处理后,我们清楚地看到鞋已经与铁路轨道具有相同的密度等级。因此,在许多场景中这种技术非常方便。
让我们看一个实际例子。我们想在一个小镇的照片上统计的人数。但是照片上还有一些建筑图像。现在建筑背后的人的颜色强度会低于建筑本身。因此,这些人我们就难以计数。模糊处理场景后才能平衡建筑和人在图像中的颜色强度。

完整的代码:

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 代码效率的方法
Jul 03 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
基于python实现在excel中读取与生成随机数写入excel中
Jan 04 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
Python 一句话生成字母表的方法
Jan 02 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
Python中22个万用公式的小结
Jul 21 Python
Python实现为PDF去除水印的示例代码
Apr 03 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 #Python
python图像常规操作
Nov 11 #Python
python中实现k-means聚类算法详解
Nov 11 #Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 #Python
Python内存管理方式和垃圾回收算法解析
Nov 11 #Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 #Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 #Python
You might like
一些星际专用术语解释
2020/03/04 星际争霸
BBS(php & mysql)完整版(一)
2006/10/09 PHP
杏林同学录(一)
2006/10/09 PHP
php中的MVC模式运用技巧
2007/05/03 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
详解python with 上下文管理器
2020/09/02 Python
python字典与json转换的方法总结
2020/12/28 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
小学四年级学生评语
2014/12/26 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
大学感恩节活动总结
2015/05/05 职场文书
被委托人身份证明
2015/08/07 职场文书
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL