python opencv旋转图像(保持图像不被裁减)


Posted in Python onJuly 26, 2018

本文实例为大家分享了python opencv旋转图像的具体代码,保持图像不被裁减,供大家参考,具体内容如下

# -*- coding:gb2312 -*-
import cv2
from math import *
import numpy as np

img = cv2.imread("3-2.jpg")

height,width=img.shape[:2]

degree=45
#旋转后的尺寸
heightNew=int(width*fabs(sin(radians(degree)))+height*fabs(cos(radians(degree))))
widthNew=int(height*fabs(sin(radians(degree)))+width*fabs(cos(radians(degree))))

matRotation=cv2.getRotationMatrix2D((width/2,height/2),degree,1)

matRotation[0,2] +=(widthNew-width)/2 #重点在这步,目前不懂为什么加这步
matRotation[1,2] +=(heightNew-height)/2 #重点在这步

imgRotation=cv2.warpAffine(img,matRotation,(widthNew,heightNew),borderValue=(255,255,255))

cv2.imshow("img",img)
cv2.imshow("imgRotation",imgRotation)
cv2.waitKey(0)

效果图:

python opencv旋转图像(保持图像不被裁减)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多进程同步Lock、Semaphore、Event实例
Nov 21 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
python中比较两个列表的实例方法
Jul 04 Python
Flask框架模板继承实现方法分析
Jul 31 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
python如何利用Mitmproxy抓包
Oct 10 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 Python
Python日志模块logging用法
Jun 05 Python
详解Django中间件的5种自定义方法
Jul 26 #Python
python opencv实现切变换 不裁减图片
Jul 26 #Python
Flask之flask-script模块使用
Jul 26 #Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 #Python
TensorFlow用expand_dim()来增加维度的方法
Jul 26 #Python
Python迭代器与生成器基本用法分析
Jul 26 #Python
Python实现矩阵相乘的三种方法小结
Jul 26 #Python
You might like
PHP页面间传递参数实例代码
2008/06/05 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
SQL SERVER面试资料
2013/03/30 面试题
AJAX的全称是什么
2012/11/06 面试题
思想专业自荐信范文
2013/12/25 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
新闻稿怎么写
2015/07/18 职场文书
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
mysql left join快速转inner join的过程
2021/06/30 MySQL
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android