Numpy处理图片方法
在进行图像领域的深度学习的时候经常需要对图片进行处理,包括图像的翻转,压缩,截取等,一般都是用Numpy来处理。处理起来也很方便。
In[3]
导入需要的包
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
读入图片
image = Image.open('./work/vehicle1.jpg')
image = np.array(image)
查看数据形状,其形状是[H, W, 3],
其中H代表高度, W是宽度,3代表RGB三个通道
image.shape
(437, 700, 3)
In[4]
原始图片
plt.imshow(image)
In[7]
垂直方向翻转
这里使用数组切片的方式来完成,
相当于将图片最后一行挪到第一行,
倒数第二行挪到第二行,...,
第一行挪到倒数第一行
对于行指标,使用::-1来表示切片,
负数步长表示以最后一个元素为起点,向左走寻找下一个点
对于列指标和RGB通道,仅使用:表示该维度不改变
image2 = image[::-1, :, :]
plt.imshow(image2)
In[8]
水平方向翻转
image3 = image[:, ::-1, :]
plt.imshow(image3)
In[5]
180度方向翻转
image31 = image[::-1, ::-1, :]
plt.imshow(image31)
In[9]
保存图片
im3 = Image.fromarray(image3)
im3.save('im3.jpg')
In[10]
高度方向裁剪
H, W = image.shape[0], image.shape[1]
注意此处用整除,H_start必须为整数
H1 = H // 2
H2 = H
image4 = image[H1:H2, :, :]
plt.imshow(image4)
In[11]
宽度方向裁剪
W1 = W//6
W2 = W//3 * 2
image5 = image[:, W1:W2, :]
plt.imshow(image5)
In[13]
两个方向同时裁剪
image5 = image[H1:H2, \
W1:W2, :]
plt.imshow(image5)
In[14]
调整亮度
image6 = image * 0.5
plt.imshow(image6.astype('uint8'))
In[15]
调整亮度
image7 = image * 2.0
由于图片的RGB像素值必须在0-255之间,
此处使用np.clip进行数值裁剪
image7 = np.clip(image7, \
a_min=None, a_max=255.)
plt.imshow(image7.astype('uint8'))
In[16]
高度方向每隔一行取像素点
image8 = image[::2, :, :]
plt.imshow(image8)
In[17]
宽度方向每隔一列取像素点
image9 = image[:, ::2, :]
plt.imshow(image9)
In[18]
间隔行列采样,图像尺寸会减半,清晰度变差
image10 = image[::2, ::2, :]
plt.imshow(image10)
image10.shape
(219, 350, 3)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
为什么 Python 不是未来的编程语言?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 编程社区花了几十年的时间才领略到 Python 迷人之处。但自 2010 年初以来,Python 就一直在蓬勃发展,并最终在受欢迎程度上超越了 C、C#、Java 和 JavaScript。 但这种趋势还会持续到什么时候呢?什么时候 Python 最终会被其他编程语言所取代?为什么会被取代? 预测这个时间点到底什么时候到来可能会像科幻小说一样充满各种可能性。我在本文中,将阐述 Python 那些受欢迎的优点,以及将来会打败它的弱点。 1.是什么让 Python 现在如此流行 Python 的成功体现在 Stack Overflow 趋势上,该趋势衡量平台上帖子中的标签数量。鉴于 Stack Overflow 的规模,因此它是编程语言受欢迎程度的一个很好的指标。 尽管 R 语言在过去几年里一直处于停滞不前的状态,而且许多其他编程语言也在稳步下降,但 Python 的增长似乎势不可挡。几乎所有 Stack Overflow 上的问题有 14% 被标记为“Python”,而且这一趋势还在上升。...
- 下一篇
我的天池比赛经验
我17年开始参加天池大赛,玩天池一半是为了练习机器学习,一半是消遣。因为工作、家庭的事情都很多,时间很难保证,为了不坑队友,所以到现在比赛都是SOLO,自娱自乐。因为可用时间少,又是一个人SOLO,所以闭门造车、走到沟里出不来也都是常有的事。 第一个比赛是IJCAI-17 口碑商家客流量预测,那个时候刚好看了时序的一些东西,觉得R语言的Auto.Arima很不错,于是就把R语言关于时序的包都调了一个遍,然后又是一顿乱七八糟的融合。我的笔记本配置不好,跑Arima温度都高的不行,正好我当时还有一个1C2G的ECS(半年试用送的),我决定就是它了。于是在这个虚机上装了R和Python的环境,在上面跑各种算法,很长一段时间这个虚机的CPU一直是100%。而且这个比赛,因为一直没有走到正路上,所以结果也就毫无悬念的扑街了。 第二个比赛是阿里聚安全算法挑战赛,因为是平台赛,不用自己的计算资源,而且主要的处理界面都是跑的SQL,所以玩的十分快乐,最后总成绩35名。 第三个好像是CIKM,当时在看了题目,并用Python把云图画出来之后,我觉得这个应该用卷积神经网络来做,可以先按照图像处理一下。可是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G