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实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 Python
python字典操作实例详解
Nov 16 Python
python3 爬取图片的实例代码
Nov 06 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
python实现简单银行管理系统
Oct 25 Python
python列表返回重复数据的下标
Feb 10 Python
适合Python初学者的一些编程技巧
Feb 12 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
python和php哪个容易学
Jun 19 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP中读写文件实现代码
2011/10/20 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
python中list循环语句用法实例
2014/11/10 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
基于python实现KNN分类算法
2020/04/23 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Python argparse模块应用实例解析
2019/11/15 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
建筑公司文秘岗位职责
2013/11/29 职场文书
关于安全的标语
2014/06/10 职场文书
爱情保证书
2015/01/17 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
初中政教处工作总结
2015/08/12 职场文书
MySQL 字符集 character
2022/05/04 MySQL