图像可以用 rotate()方法旋转,该方法返回旋转后的新 Image 对象,并保持原始
Image 对象不变。rotate()的参数是一个整数或浮点数,表示图像逆时针旋转的度数。在交互式环境中输入以下代码:
>>>  catIm.rotate(90).save('rotated90.png')
>>>  catIm.rotate(180).save('rotated180.png')
>>>  catIm.rotate(270).save('rotated270.png')
注意,可以连续调用方法,对 rotate()返回的 Image 对象直接调用 save()。第一个 rotate()和 save()调用得到一个逆时针旋转 90 度的新 Image 
对象,并将旋转后的图像存入 rotated90.png。第二和第三个调用做的事情一样,但旋转了 180 度和 270 度。
结果如图 17-7 所示。

注意,当图像旋转 90 度或 270 度时,宽度和高度会变化。如果旋转其他角度,图像的原始尺寸会保持。在Windows 上,使用黑色的背景来填补旋转造成的缝隙,如图 17-8 所示。在 OS X 
上,使用透明的像素来填补缝隙。rotate()方法有一个可选的 expand  关键字参数,如果设置为 True,就会放大图像的尺寸,以适应整个旋转后的新图像。例如,在交互式环境中输入以下代码:
>>>  catIm.rotate(6).save('rotated6.png')
>>>  catIm.rotate(6,  expand=True).save('rotated6_expanded.png')

第一次调用将图像旋转 6 度,并存入 rotate.png(参见图 17-8 的左边的图像)。第二次调用将图像旋转 6 度,expand 设置为 True,并存入 
rotate6_expanded.png(参见图 17-8 的右侧的图像)。

利用 transpose()方法,还可以得到图像的“镜像翻转”。必须向 transpose()方法传入 Image.FLIP_LEFT_RIGHT 或 
Image.FLIP_TOP_BOTTOM。在交互式环境中输入以下代码:
>>>  catIm.transpose(Image.FLIP_LEFT_RIGHT).save('horizontal_flip.png')
>>>  catIm.transpose(Image.FLIP_TOP_BOTTOM).save('vertical_flip.png')

像 rotate()一样,transpose()会创建一个新 Image  对象。这里我们传入 Image.FLIP_ LEFT_RIGHT,让图像水平翻转,然后存入 
horizontal_flip.png。要垂直翻转图像,传入Image.FLIP_TOP_BOTTOM,并存入 vertical_flip.png。结果如图 17-9 所示。

17.2.5 旋转和翻转图像相关推荐

  1. opencv 图像平移、缩放、旋转、翻转 图像仿射变换

    图像几何变换 图像几何变换从原理上看主要包括两种:基于2x3矩阵的仿射变换(平移.缩放.旋转.翻转).基于3x3矩阵的透视变换. 图像平移 opencv实现图像平移 实现图像平移,我们需要定义下面这样 ...

  2. 【python图像处理】图像的缩放、旋转与翻转

    图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图像的缩放 图像的缩放使用resize()成员函数 ...

  3. opencv图像旋转和翻转,cv2.flip,cv2.rotate

    目录 翻转图像 图像旋转 翻转图像 opencv中使用cv2.filp可以实现图像翻转 def flip(src, flipCode, dst=None) src:输入图像 flipCode:flip ...

  4. 基于opencv库对图像进行平移,旋转以及翻转

    1.平移: 在opencv中,通过warpAffine函数实现图像平移,格式为: # cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borde ...

  5. 深度学习数据增强方法,利用仿射变换实现图像进行各种操作如平移、缩放、旋转、翻转

    导读 在深度学习的数据增强中,我们经常需要对图像进行各种增强操作如平移.缩放.旋转.翻转等,这些其实都是图像的仿射变换.通过本篇文章,你能够知道它们的实现原理以及如何应用它们.本文讲述如何通过仿射变换 ...

  6. Python图像处理丨图像缩放、旋转、翻转与图像平移

    摘要:本篇文章主要讲解Python调用OpenCV实现图像位移操作.旋转和翻转效果,包括四部分知识:图像缩放.图像旋转.图像翻转.图像平移. 本文分享自华为云社区<[Python图像处理] 六. ...

  7. canvas 图像旋转与翻转姿势解锁

    多图预警,数学不好可直接跳至文末小结. 需求背景 从一个游戏需求说起: 技术选型:canvas 上图所展示的游戏场景,"可乐瓶"里有多个"气泡",需要设置不同的 ...

  8. 图像增广 || 通过仿射变换实现图像的平移、缩放、旋转、翻转、错切,及MATLAB实现与分析

    1.仿射变换理论 仿射变换(Affine Transformation或 Affine Map)是一种二维坐标(x,y)到二维坐标(u,v)之间的线性变换,它保持了二维图形的"平直性&quo ...

  9. Java 旋转、翻转图片工具类(附代码) | Java工具类

    目录 前言 Maven依赖 代码 总结 前言 本文提供java操作图片生成旋转.翻转后的图片工具类,拿来即用. Maven依赖 <dependency><groupId>com ...

最新文章

  1. python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据
  2. web项目启动时 初始化加载系统参数 获取无法自动注入的服务
  3. 2016.7.14最新cocoapods最新安装教程
  4. 在线支付之风控系统架构选型
  5. WIN32 _WIN32 _WIN64宏定义
  6. XML 读写(命名空间)
  7. 欧拉函数 euler
  8. 我被“非结构化数据包围了”,请求支援!
  9. linux ps ax tl,Linux常用指令 - osc_wa6fkyf0的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. mysql报错型手工注入_mysql手工注入教程
  11. mysql之grant权限说明
  12. 【Erlang新手成长日记】Erlang开源项目推荐
  13. 聚焦四个重组,构建基于IPD的卓越研发体系(3.0版)
  14. 问题解决型QCC课题的推行步骤
  15. Spring AOP原理详解及实例
  16. 心不唤物,物不至,聊聊积极心态重要性
  17. FPGA电源设计总结
  18. cidaemon.exe过程cpu入住率和关闭cidaemon.exe加工方法
  19. ——廖一梅《像我这样笨拙地生活》经典语录
  20. 如何安装PyTorch

热门文章

  1. 正点原子IMX6ULL阿尔法测评感知
  2. 一个来自伊朗官方的监视行动:Domestic Kitten,样本特征明显
  3. C++_保留有效位数setprecision
  4. 大白话带你认识 ZooKeeper !重要概念一网打尽!
  5. Java调用海康威视接口并抓取Jpeg图片到内存
  6. 关于存量和增量的杂谈
  7. 【通信原理】基于【MATLAB】的通信OFDM系统仿真
  8. Exams/ece241 2014 q4经验
  9. mysql 手册 5.7(英文)、5.1(中文)分享
  10. 小白也能看懂的c语言队列入门问题——舞伴问题