当前位置: 首页 > news >正文

同心县建设局网站万网博通官网

同心县建设局网站,万网博通官网,中国建设银行企业网上银行登录入口,做特卖网站有什么网站《数字图像处理-OpenCV/Python》连载#xff08;41#xff09;图像的旋转 本书京东优惠购书链接#xff1a;https://item.jd.com/14098452.html 本书CSDN独家连载专栏#xff1a;https://blog.csdn.net/youcans/category_12418787.html 第 6 章 图像的几何变换 几何变换分…《数字图像处理-OpenCV/Python》连载41图像的旋转 本书京东优惠购书链接https://item.jd.com/14098452.html 本书CSDN独家连载专栏https://blog.csdn.net/youcans/category_12418787.html 第 6 章 图像的几何变换 几何变换分为等距变换、相似变换、仿射变换和投影变换是指对图像的位置、大小、形状和投影进行变换将图像从原始平面投影到新的视平面。OpenCV图像的几何变换本质上是将一个多维数组通过映射关系转换为另一个多维数组。 本章内容概要 介绍仿射变换学习使用仿射变换矩阵实现图像的仿射变换。学习使用函数实现图像的平移、缩放、旋转、翻转和斜切。介绍投影变换学习使用投影变换矩阵实现图像的投影变换。介绍图像的重映射学习使用映射函数实现图像的自定义变换和动态变换。 6.1 图像的旋转 旋转变换属于等距变换变换后图像的长度和面积不变。 图像以左上角(0,0)为旋转中心、以旋转角度 θ 顺时针旋转可以构造旋转变换矩阵 MAR通过函数 cv.warpAffine 计算旋转变换图像。 [ x ~ y ~ 1 ] M A R [ x y 1 ] , M A R [ c o s θ − s i n θ 0 s i n θ c o s θ 0 0 0 1 ] \begin{bmatrix} \tilde{x}\\ \tilde{y}\\ 1 \end{bmatrix} M_{AR} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} ,\hspace{1em} M_{AR} \begin{bmatrix} cos \theta -sin \theta 0\\ sin \theta cos \theta 0\\ 0 0 1 \end{bmatrix} ​x~y~​1​ ​MAR​ ​xy1​ ​,MAR​ ​cosθsinθ0​−sinθcosθ0​001​ ​ 图像以任意点(x,y)为旋转中心、以旋转角度 顺时针旋转可以先将原点平移到旋转中心(x,y)再对原点进行旋转处理最后反向平移回坐标原点。 OpenCV中的函数cv.getRotationMatrix2D可以计算以任意点为中心的旋转变换矩阵。 函数原型 cv.getRotationMatrix2D(center, angle, scale) → M 函数cv.getRotationMatrix2D能根据旋转中心和旋转角度计算旋转变换矩阵M M [ α β ( 1 − α ) x − β y − β α β x ( 1 − α ) y ] M \begin{bmatrix} \alpha \beta (1-\alpha)x-\beta y\\ -\beta \alpha \beta x (1-\alpha) y \end{bmatrix} M[α−β​βα​(1−α)x−βyβx(1−α)y​] 参数说明 center旋转中心坐标格式为元组(x,y)。angle旋转角度角度制以逆时针方向旋转。scale缩放系数是浮点型数据。M旋转变换矩阵是形状为(2,3)、类型为np.float32的Numpy数组。 注意问题 1函数可以直接获取以任意点为中心的旋转变换矩阵不需要额外进行平移变换。 2 如果旋转图像的尺寸与原始图像的尺寸相同则四角的像素会被切除见图6-3(2)。为了保留原始图像的内容需要在旋转的同时对图像进行缩放或将旋转图像的尺寸调整为 W r o t w c o s θ h s i n θ H r o t h c o s θ w s i n θ W_{rot} w cos \theta h sin \theta \\ H_{rot} h cos \theta w sin \theta Wrot​wcosθhsinθHrot​hcosθwsinθ 式中w、h分别为原始图像的宽度与高度 、 分别为旋转图像的宽度与高度。 3 缩放系数scale在旋转的同时能进行缩放但水平、垂直方向必须使用相同的缩放比例。 函数cv.rotate用于直角旋转旋转角度为90度、180度或270度。该方法通过矩阵转置实现运行速度极快。 函数原型 cv.rotate(src, rotateCode[, dst]) → dst 参数说明 src输入图像是Numpy数组。dst输出图像类型与src相同图像尺寸由旋转角度确定。rotateCode旋转标志符。 ROTATE_90_CLOCKWISE顺时针旋转90度。ROTATE_180顺时针旋转180度。ROTATE_90_COUNTERCLOCKWISE顺时针旋转270度。 注意问题 旋转角度为180度时输出图像的尺寸与输入图像的尺寸相同旋转角度为90度或180度时输出图像的高度和宽度分别等于输入图像的宽度和高度。 【例程0603】图像的旋转 本例程介绍以原点为旋转中心、以任意点为旋转中心旋转图像以及图像的直角旋转。 # 【0603】图像的旋转 import cv2 as cv import numpy as np from matplotlib import pyplot as pltif __name__ __main__:img cv.imread(../images/Fig0301.png) # 读取彩色图像(BGR)height, width img.shape[:2] # 图像的高度和宽度# (1) 以原点为旋转中心x0, y0 0, 0 # 以左上角顶点 (0,0) 作为旋转中心theta, scale 30, 1.0 # 逆时针旋转 30 度缩放系数 1.0MAR0 cv.getRotationMatrix2D((x0,y0), theta, scale) # 旋转变换矩阵imgRot1 cv.warpAffine(img, MAR0, (width, height)) # (2) 以任意点为旋转中心x0, y0 width//2, height//2 # 以图像中心作为旋转中心angle theta * np.pi/180 # 弧度-角度wRot int(width * np.cos(angle) height * np.sin(angle)) # 调整宽度hRot int(height * np.cos(angle) width * np.sin(angle)) # 调整高度scale width/wRot # 根据 wRot 调整缩放系数MAR1 cv.getRotationMatrix2D((x0,y0), theta, 1.0) # 逆时针旋转 30 度缩放系数 1.0MAR2 cv.getRotationMatrix2D((x0,y0), theta, scale) # 逆时针旋转 30 度缩放比例 scaleimgRot2 cv.warpAffine(img, MAR1, (height, width), borderValue(255,255,255)) # 白色填充imgRot3 cv.warpAffine(img, MAR2, (height, width)) # 调整缩放系数以保留原始图像的内容print(img.shape, imgRot2.shape, imgRot3.shape, scale)# (3) 图像的直角旋转imgRot90 cv.rotate(img, cv.ROTATE_90_CLOCKWISE) # 顺时针旋转 90度imgRot180 cv.rotate(img, cv.ROTATE_180) # 顺时针旋转 180度imgRot270 cv.rotate(img, cv.ROTATE_90_COUNTERCLOCKWISE) # 顺时针旋转 270度plt.figure(figsize(9, 6))plt.subplot(231), plt.title(1.Rotate around the origin), plt.axis(off)plt.imshow(cv.cvtColor(imgRot1, cv.COLOR_BGR2RGB))plt.subplot(232), plt.title(2.Rotate around the center), plt.axis(off)plt.imshow(cv.cvtColor(imgRot2, cv.COLOR_BGR2RGB))plt.subplot(233), plt.title(3.Rotate and resize), plt.axis(off)plt.imshow(cv.cvtColor(imgRot3, cv.COLOR_BGR2RGB))plt.subplot(234), plt.title(4.Rotate 90 degrees), plt.axis(off)plt.imshow(cv.cvtColor(imgRot90, cv.COLOR_BGR2RGB))plt.subplot(235), plt.title(5.Rotate 180 degrees), plt.axis(off)plt.imshow(cv.cvtColor(imgRot180, cv.COLOR_BGR2RGB))plt.subplot(236), plt.title(6.Rotate 270 degrees), plt.axis(off)plt.imshow(cv.cvtColor(imgRot270, cv.COLOR_BGR2RGB))plt.tight_layout()plt.show() 程序说明 运行结果图像的旋转如图6-3所示。 1 图6-3(1)(3)用函数cv.getRotationMatrix2D计算旋转变换矩阵后通过函数cv.warpAffine计算旋转变换图像。图6-3(1)以图像原点即左上角为中心旋转图6-3(2)和图6-3(3)围绕图像中心点旋转变换。 2 图像尺寸不变中心旋转后四角像素被切除见图6-3(2)。在计算旋转变换矩阵时使用了缩放系数使旋转图像保留了原始图像的内容见图6-3(3)。 3 图6-3(4)(6)所示都是直角旋转使用函数cv.rotate通过矩阵转置实现。 *图6-3 图像的旋转 版权声明 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/134317103) Copyright 2023 youcans, XUPT Crated2023-11-11 欢迎关注本书CSDN独家连载专栏 《数字图像处理-OpenCV/Python》连载: https://blog.csdn.net/youcans/category_12418787.html
http://www.w-s-a.com/news/235210/

相关文章:

  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样
  • 网站怎么做的qq邮件订阅浙江省住房和城乡建设厅网站查询
  • 主机屋网站在线做图片
  • 河南省城乡住房建设厅网站wordpress登陆密码
  • 漳州做网站的公司搭建网站多少时间
  • 网站开发实习计划模板微营销手机
  • 网站设计与制作是做什么工作免费封面设计在线制作生成
  • 网站开发的教学课程网站广告调词软件
  • 进下加强新闻宣传网站建设入门 做网站 书籍
  • 电商网站主题photolux wordpress
  • 周口专业做网站公司深圳市宝安区松岗街道邮政编码
  • 上海企业网站推广方法网络营销策划方案框架
  • 一流的常州网站建设机械加工网报价
  • 上海响应式网站建设公司seo课程总结
  • vs网站开发教程昆山普立斯特做的有网站
  • 柳州网站seo网站swordpress 输出内容
  • 网站设计制作电话多少网站流量下降
  • 沈阳做网站推广的公司唐山哪家做网站好
  • 国外著名网站建设公司WordPress破解怎样主题修复
  • 网站建设济南云畅网络广州电力建设有限公司网站
  • 查看公司信息的网站思特奇是外包公司吗
  • 制作企业网站的目的啥都能看的浏览器
  • 做网站可以用哪些语言如何进行网站运营与规划
  • 做效果图网站有哪些电子商城网站制作数据库