opencv怎么保持图像内容的旋转
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍"opencv怎么保持图像内容的旋转",在日常操作中,相信很多人在opencv怎么保持图像内容的旋转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ope
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
网络安全校园日主题教育活动
软件开发三端指的是
江西戴尔服务器标准
网络安全审查报告
软件开发公司怎么判断好坏
同花顺画线软件开发
工信部软件开发证
阿里云服务器怎么重启
设置服务器在哪里设置
没有信息化就没有网络安全
餐饮管家服务器
联想服务器产品手册
网络安全知法守法
安防门禁 服务器
开源件管理服务器软件
网络技术基础加密密钥
西城区进口软件开发配置
家装行业用的套餐报价软件开发
锡山区软件开发内容
国家网络安全周视频观看
hive个人数据库
达梦数据库获取时间字符串比较
电脑登录服务器没有数据
软件开发好还是电气工程好
口碑好的软件开发培训班
网络安全模式下没有音频
红米电脑连不上数据库
电商软件开发问题和解决方案
税务网络安全信息制度
总后数据库有编制吗