在进行图像领域的深度学习的时候经常需要对图片进行处理,包括图像的翻转,压缩,截取等,一般都是用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)
<matplotlib.image.AxesImage at 0x7fb195078b10>

In[7]


# 垂直方向翻转
# 这里使用数组切片的方式来完成,
# 相当于将图片最后一行挪到第一行,
# 倒数第二行挪到第二行,...,
# 第一行挪到倒数第一行
# 对于行指标,使用::-1来表示切片,
# 负数步长表示以最后一个元素为起点,向左走寻找下一个点
# 对于列指标和RGB通道,仅使用:表示该维度不改变
image2 = image[::-1, :, :]
plt.imshow(image2)
<matplotlib.image.AxesImage at 0x7fecfbfd15d0>

In[8]


# 水平方向翻转
image3 = image[:, ::-1, :]
plt.imshow(image3)
<matplotlib.image.AxesImage at 0x7fecfbf3aa10>

In[5]

# 180度方向翻转
image31 = image[::-1, ::-1, :]
plt.imshow(image31)
<matplotlib.image.AxesImage at 0x7fb194faaf10>

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)
<matplotlib.image.AxesImage at 0x7fecfbeac6d0>

In[11]


#  宽度方向裁剪
W1 = W//6
W2 = W//3 * 2
image5 = image[:, W1:W2, :]
plt.imshow(image5)
<matplotlib.image.AxesImage at 0x7fecfbe90390>

In[13]


# 两个方向同时裁剪
image5 = image[H1:H2, \W1:W2, :]
plt.imshow(image5)
<matplotlib.image.AxesImage at 0x7fecfbd5c810>

In[14]


# 调整亮度
image6 = image * 0.5
plt.imshow(image6.astype('uint8'))
<matplotlib.image.AxesImage at 0x7fecfbd47d10>

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'))
<matplotlib.image.AxesImage at 0x7fecfbcbb510>

In[16]


#高度方向每隔一行取像素点
image8 = image[::2, :, :]
plt.imshow(image8)
<matplotlib.image.AxesImage at 0x7fecfbc25850>

In[17]


#宽度方向每隔一列取像素点
image9 = image[:, ::2, :]
plt.imshow(image9)
<matplotlib.image.AxesImage at 0x7fecfbc08710>

In[18]


#间隔行列采样,图像尺寸会减半,清晰度变差
image10 = image[::2, ::2, :]
plt.imshow(image10)
image10.shape
(219, 350, 3)

Numpy处理图片方法相关推荐

  1. 十四、去年写的Numpy使用方法梳理,2020年5月13日整理

    @Author : By Runsen @Written Date:2019/06/09 @modified Date:2020/5/13 这篇2019/06/09写的,因为要写成专栏挣钱,在今日20 ...

  2. pythoninterp error_Python numpy.interp方法代码示例

    本文整理汇总了Python中numpy.interp方法的典型用法代码示例.如果您正苦于以下问题:Python numpy.interp方法的具体用法?Python numpy.interp怎么用?P ...

  3. numpy中方法参数axis取值理解

    numpy中方法参数axis取值理解 首先不要使用什么横纵轴去理解,因为时间长了就忘记了,而且如果a是一个三维数组就没法解释了. axis等于0时,在shape中表示的是二维数组.那么np.amin( ...

  4. python中np zeros_Python numpy.zeros方法代码示例

    本文整理汇总了Python中numpy.zeros方法的典型用法代码示例.如果您正苦于以下问题:Python numpy.zeros方法的具体用法?Python numpy.zeros怎么用?Pyth ...

  5. fmod函数python_python fmod函数_Python numpy.fmod方法代码示例

    本文整理汇总了Python中numpy.fmod方法的典型用法代码示例.如果您正苦于以下问题:Python numpy.fmod方法的具体用法?Python numpy.fmod怎么用?Python ...

  6. 有关pycharm安装numpy简便方法

    有关pycharm安装numpy简便方法 写调用numpy代码:import numpy as np 然后你会得到一个报错,说你没有numpy包,然后点击下载,不用管能不能下载成功,基本上都是下载失败 ...

  7. python fmod函数_Python numpy.fmod方法代码示例

    本文整理汇总了Python中numpy.fmod方法的典型用法代码示例.如果您正苦于以下问题:Python numpy.fmod方法的具体用法?Python numpy.fmod怎么用?Python ...

  8. Python数据分析之初识numpy常见方法使用案例

    声明与简介 numpy是python数据科学计算的基础包,这个包有多维数据对象ndarray,以及诸多它的派生对象(如:掩码数组.矩阵),同时这些对象还提供了数学,逻辑,形状处理,排序,选择,离散傅立 ...

  9. 掌握这些 NumPy Pandas 方法,快速提升数据处理效率!

    Pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的.pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.pandas提供了大量能使我们快速 ...

最新文章

  1. ROS系统中实现点云聚类(realsense数据源)
  2. 设计模式——命令模式(Command Pattern)
  3. 南岸焊接机器人厂_焊接技术的发展历史,世界焊接发展200年回顾,你了解焊接吗?...
  4. 自测之Lesson6:文件I/O
  5. Geoff Hinton:我反对谷歌军事项目,论文评审机制正在阻碍创新
  6. Windows驱动开发 - 设备对象初步学习
  7. Linux命令之tar等
  8. html5 canvas移动位置,HTML5 Canvas 移动
  9. DMA(2) S3C2410 DMA详解(其它的其实类似)
  10. OpenShift 4 之获取版本升级路径图
  11. Mac node js环境的安装与测试
  12. 【原创】搭建spark环境二
  13. linux 内核网络,数据接收流程图
  14. Ubuntu安装tftp服务器
  15. google 浏览器离线安装包下载
  16. 6.1 PyTorch简单二分类模型
  17. 浅谈CTP期货行情交易API
  18. win10 文件夹设置区分大小写
  19. “简单证明GUID(全局唯一标识符)并不唯一”
  20. 2019年中国研究生数学建模竞赛D题 汽车行驶工况构建

热门文章

  1. C语言编写车票管理系统
  2. 三对角矩阵原理及C++实现
  3. Vue中v-for指令
  4. CPU一级缓存、二级缓存、缓存命中率
  5. 【windows脚本】开启启动注册表位置
  6. 利用百度API Store接口进行火车票查询
  7. JSON中数据特殊字符的处理
  8. Dungelot游戏思考
  9. Windows API一日一练 55 FlushFileBuffers和SetFilePointer函数
  10. DIY 攒机MINI ITX小机箱选购指南