17.2.5 旋转和翻转图像
图像可以用 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 旋转和翻转图像相关推荐
- opencv 图像平移、缩放、旋转、翻转 图像仿射变换
图像几何变换 图像几何变换从原理上看主要包括两种:基于2x3矩阵的仿射变换(平移.缩放.旋转.翻转).基于3x3矩阵的透视变换. 图像平移 opencv实现图像平移 实现图像平移,我们需要定义下面这样 ...
- 【python图像处理】图像的缩放、旋转与翻转
图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图像的缩放 图像的缩放使用resize()成员函数 ...
- opencv图像旋转和翻转,cv2.flip,cv2.rotate
目录 翻转图像 图像旋转 翻转图像 opencv中使用cv2.filp可以实现图像翻转 def flip(src, flipCode, dst=None) src:输入图像 flipCode:flip ...
- 基于opencv库对图像进行平移,旋转以及翻转
1.平移: 在opencv中,通过warpAffine函数实现图像平移,格式为: # cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borde ...
- 深度学习数据增强方法,利用仿射变换实现图像进行各种操作如平移、缩放、旋转、翻转
导读 在深度学习的数据增强中,我们经常需要对图像进行各种增强操作如平移.缩放.旋转.翻转等,这些其实都是图像的仿射变换.通过本篇文章,你能够知道它们的实现原理以及如何应用它们.本文讲述如何通过仿射变换 ...
- Python图像处理丨图像缩放、旋转、翻转与图像平移
摘要:本篇文章主要讲解Python调用OpenCV实现图像位移操作.旋转和翻转效果,包括四部分知识:图像缩放.图像旋转.图像翻转.图像平移. 本文分享自华为云社区<[Python图像处理] 六. ...
- canvas 图像旋转与翻转姿势解锁
多图预警,数学不好可直接跳至文末小结. 需求背景 从一个游戏需求说起: 技术选型:canvas 上图所展示的游戏场景,"可乐瓶"里有多个"气泡",需要设置不同的 ...
- 图像增广 || 通过仿射变换实现图像的平移、缩放、旋转、翻转、错切,及MATLAB实现与分析
1.仿射变换理论 仿射变换(Affine Transformation或 Affine Map)是一种二维坐标(x,y)到二维坐标(u,v)之间的线性变换,它保持了二维图形的"平直性&quo ...
- Java 旋转、翻转图片工具类(附代码) | Java工具类
目录 前言 Maven依赖 代码 总结 前言 本文提供java操作图片生成旋转.翻转后的图片工具类,拿来即用. Maven依赖 <dependency><groupId>com ...
最新文章
- python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据
- web项目启动时 初始化加载系统参数 获取无法自动注入的服务
- 2016.7.14最新cocoapods最新安装教程
- 在线支付之风控系统架构选型
- WIN32 _WIN32 _WIN64宏定义
- XML 读写(命名空间)
- 欧拉函数 euler
- 我被“非结构化数据包围了”,请求支援!
- linux ps ax tl,Linux常用指令 - osc_wa6fkyf0的个人空间 - OSCHINA - 中文开源技术交流社区...
- mysql报错型手工注入_mysql手工注入教程
- mysql之grant权限说明
- 【Erlang新手成长日记】Erlang开源项目推荐
- 聚焦四个重组,构建基于IPD的卓越研发体系(3.0版)
- 问题解决型QCC课题的推行步骤
- Spring AOP原理详解及实例
- 心不唤物,物不至,聊聊积极心态重要性
- FPGA电源设计总结
- cidaemon.exe过程cpu入住率和关闭cidaemon.exe加工方法
- ——廖一梅《像我这样笨拙地生活》经典语录
- 如何安装PyTorch