python opencv对图像进行旋转且不裁剪图片的实现方法


Posted in Python onJuly 09, 2019

最近在做深度学习时需要用到图像处理相关的操作,在度娘上找到的图片旋转方法千篇一律,旋转完成的图片都不是原始大小,很苦恼,于是google到歪果仁的网站扒拉了一个方法,亲测好用,再次嫌弃天下文章一大抄的现象,虽然我也是抄歪果仁的。

废话不多说了,直接贴代码了。

def rotate_bound(image, angle):
  # grab the dimensions of the image and then determine the
  # center
  (h, w) = image.shape[:2]
  (cX, cY) = (w // 2, h // 2)
 
  # grab the rotation matrix (applying the negative of the
  # angle to rotate clockwise), then grab the sine and cosine
  # (i.e., the rotation components of the matrix)
  M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0)
  cos = np.abs(M[0, 0])
  sin = np.abs(M[0, 1])
 
  # compute the new bounding dimensions of the image
  nW = int((h * sin) + (w * cos))
  nH = int((h * cos) + (w * sin))
 
  # adjust the rotation matrix to take into account translation
  M[0, 2] += (nW / 2) - cX
  M[1, 2] += (nH / 2) - cY
 
  # perform the actual rotation and return the image
  return cv2.warpAffine(image, M, (nW, nH))

其他的不用多说了吧,第一个参数穿opencv读取的图像,第二个参数传入需要旋转的角度,enjoy!

以上这篇python opencv对图像进行旋转且不裁剪图片的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python计算程序运行时间的方法
Dec 13 Python
python实时分析日志的一个小脚本分享
May 07 Python
python正则表达式的使用
Jun 12 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
创建pycharm的自定义python模板方法
May 23 Python
python调用matlab的m自定义函数方法
Feb 18 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
Python assert关键字原理及实例解析
Dec 13 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
十个Python自动化常用操作,即拿即用
May 10 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 #Python
Python3 执行系统命令并获取实时回显功能
Jul 09 #Python
利用python开发app实战的方法
Jul 09 #Python
python设置环境变量的作用和实例
Jul 09 #Python
python版百度语音识别功能
Jul 09 #Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 #Python
python实现集中式的病毒扫描功能详解
Jul 09 #Python
You might like
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
浅析php数据类型转换
2014/01/09 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
JavaScript的Function详细
2006/11/14 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
光声世纪笔试题目
2012/08/25 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
python文件目录操作之os模块
2021/05/08 Python
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL