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 09 Python
python实现的一个火车票转让信息采集器
Jul 09 Python
使用graphics.py实现2048小游戏
Mar 10 Python
python实现按行切分文本文件的方法
Apr 18 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Puppeteer使用示例详解
Jun 20 Python
查看端口并杀进程python脚本代码
Dec 17 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
python 带时区的日期格式化操作
Oct 23 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
PHP安全编程之加密功能
2006/10/09 PHP
一个高ai的分页函数和一个url函数
2006/10/09 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python for和else语句趣谈
2019/07/02 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
python文件编写好后如何实践
2020/07/07 Python
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
一些PHP的面试题
2015/05/06 面试题
童装店创业计划书
2014/01/09 职场文书
音乐器材管理制度
2014/01/31 职场文书
实习公司领导推荐函
2014/05/21 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
受伤赔偿协议书
2014/09/24 职场文书
实验心得体会范文
2016/01/25 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书