opencv怎么保持图像内容的旋转
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要介绍"opencv怎么保持图像内容的旋转",在日常操作中,相信很多人在opencv怎么保持图像内容的旋转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ope
千家信息网最后更新 2024年11月20日opencv怎么保持图像内容的旋转
这篇文章主要介绍"opencv怎么保持图像内容的旋转",在日常操作中,相信很多人在opencv怎么保持图像内容的旋转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"opencv怎么保持图像内容的旋转"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在opencv中,旋转图像只需调用以下代码:
M = cv2.getRotationMatrix2D((width//2, height//2), 45, 1)image_new = cv2.warpAffine(image, M, (width, height))
但这样调用会损失图像内容,如下: cdn.nlark.com/yuque/0/2020/png/1445121/1599750201721-e1633576-dcb6-45a7-8550-da35510ff367.png">
但很多时候我们希望旋转之后图像依然完整:
下面给出一种解决方案:
def rotate_keep(degree, width, height): """ 无损图像的旋转 @param degree: @param width: @param height: @return: 旋转矩阵,新的宽高 """ height_new = int(width * fabs(sin(radians(degree))) + height * fabs(cos(radians(degree)))) width_new = int(height * fabs(sin(radians(degree))) + width * fabs(cos(radians(degree)))) mat_rotation = cv2.getRotationMatrix2D((width / 2, height / 2), degree, 1) mat_rotation[0, 2] += (width_new - width) / 2 mat_rotation[1, 2] += (height_new - height) / 2 return mat_rotation, width_new, height_newangle = 45height, width = image.shape[0:2]M, width_new, height_new = rotate_keep(45, width, height)image_new = cv2.warpAffine(image, M, (width_new, height_new))
代码是把整个过程分为三个步骤
先将图片旋转
计算旋转之后理论的图像大小
将图像平移使得坐标为负的地方平移后坐标为正
到此,关于"opencv怎么保持图像内容的旋转"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图像
内容
学习
代码
坐标
更多
理论
帮助
平移
实用
接下来
三个
只需
图片
地方
大小
损失
文章
方案
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
idc管理系统服务器软件
奶块怎么查看自己的服务器
php数据库删除恢复
潍坊网络安全知识竞赛
潍坊万拓互联网科技有限公司
工业企业数据库包括上市公司吗
如何看服务器的显卡
计算机软件开发怎么样
信息和网络技术术语
一家计算机软件开发公司
天水新启点网络技术
城市科技创新和产业互联网
最新中国石油网络安全漏洞预警
浙江通用服务器
网络安全竞赛和程序设计竞赛
林业网络安全
服务器之间的通讯
广州停车系统软件开发解决方案
电脑配件库存管理数据库
如何开放服务器端口
数据库技术发展情况
向日葵电脑版无法连接服务器
竹子键盘软件开发
软件开发技术书籍写的看不懂
服务器配置pen证书
最新中国石油网络安全漏洞预警
mysql有数据库实例名吗
sqlite 数据库恢复
数据库的迁移是什么意思
华为服务器vmware启动不了