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代码来解图片迷宫的方法整理
Apr 02 Python
python创建关联数组(字典)的方法
May 04 Python
Python设计模式之命令模式简单示例
Jan 10 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
Django 视图层(view)的使用
Nov 09 Python
python实现简易数码时钟
Feb 19 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Pyqt5实现英文学习词典
Jun 24 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
由php if 想到的些问题
2008/03/22 PHP
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
python实现QQ批量登录功能
2019/06/19 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
关于python中remove的一些坑小结
2021/01/04 Python
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
建筑管理专业求职信
2014/07/28 职场文书
党员评议个人总结
2014/10/20 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
Python入门之基础语法详解
2021/05/11 Python
python关于集合的知识案例详解
2021/05/30 Python
关于Python使用turtle库画任意图的问题
2022/04/01 Python
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python