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 相关文章推荐
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
Python基础语法(Python基础知识点)
Feb 28 Python
python类的继承实例详解
Mar 30 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
Python装饰器结合递归原理解析
Jul 02 Python
解决python对齐错误的方法
Jul 16 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
Python爬虫之Selenium库的使用方法
Jan 03 Python
python requests模块的使用示例
Apr 07 Python
详细介绍python类及类的用法
May 31 Python
Python matplotlib多个子图绘制整合
Apr 13 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的Yii框架的基本使用示例
2015/08/21 PHP
php5与php7的区别点总结
2019/10/11 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
Python使用gensim计算文档相似性
2016/04/10 Python
python中range()与xrange()用法分析
2016/09/21 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
J2EE相关知识面试题
2013/08/26 面试题
2015欢度元旦标语口号
2014/12/09 职场文书
2015年市场部工作总结
2015/04/30 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
写给同事的离职感言
2015/08/04 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫