首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图像透视

图像透视

作者头像
裴来凡
发布2022-05-28 16:33:37
发布2022-05-28 16:33:37
45800
举报
运行总次数:0
代码语言:javascript
代码运行次数:0
运行
复制
import cv2
import numpy as np
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
rows,cols=img.shape[:2]#图像的行和列
print(rows,cols)
pts1=np.float32([[150,50],[400,50],[60,450],[310,450]])#四边形的四个顶点坐标
pts2=np.float32([[50,50],[rows-50,50],[50,cols-50],[rows-50,cols-50]])#四边形的四个顶点坐标
M=cv2.getPerspectiveTransform(pts1,pts2)#图像仿射
dst=cv2.warpPerspective(img,M,(cols,rows))#图像透视
cv2.imshow("img",img)
cv2.imshow("dst",dst)
cv2.waitKey()
cv2.destroyAllWindows()

460 460

算法:透视变换,也叫投影变换,是将矩形映射为任意四边形。仿射变换则是将矩形映射为任意平行四边形,

透视变换经过两次变换:四边形变换到正方形+正方形变换到四边形:

dst(x, y)= src((M11·x+M12·y+M·13)/(M31·x+M32·y+M·33), (M21·x+M22·y+M·23)/(M31·x+M32·y+M·33))

retval=cv2.getPerspectiveTransform(src, dst)

  • src表示输入图像的四个顶点坐标
  • dst表示输出图像的四个顶点坐标

dst=cv2.warpPerspective(src, M, dsize[, flags[, borderMode[, borderValue]]])

  • src表示输入图像
  • M表示3×3的变换矩阵
  • dsize表示图像大小
  • flags表示插值方法,默认值是INTER_LINEAR
  • borderMode表示代表边类型,默认值是BORDER_CONSTANT
  • borderValue表示边界值,默认值是0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档