【OpenCV】透视变换——cv2.getPerspectiveTransform()与cv2.warpPerspective()详解

这篇具有很好参考价值的文章主要介绍了【OpenCV】透视变换——cv2.getPerspectiveTransform()与cv2.warpPerspective()详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

什么是透视变换?

函数解析

cv2.getPerspectiveTransform()

dst = warpPerspective()

代码实现


什么是透视变换?

透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。

cv2.perspectivetransform,opencv,人工智能,计算机视觉

透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。

函数解析

cv2.getPerspectiveTransform()

retval = cv2.getPerspectiveTransform(src, dst)

  • src输入图像的四个点的坐标,格式为 [[],[],[],[]]
  • dst输出图像的四个点的坐标,格式为 [[],[],[],[]]

函数的返回值是一个 3x3 的透视变换矩阵,该矩阵可以应用于源图像,以实现从源四边形到目标四边形的透视变换。这个矩阵可以通过 cv2.warpPerspective() 函数来应用到源图像上,实现透视变换。

dst = warpPerspective()

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

  • src这是源图像,即你希望应用透视变换的图像。通常,这是一个二维的 numpy 数组。

  • M这是一个3x3的透视变换矩阵,它描述了如何对源图像进行变换。你可以使用 函数来获取这个矩阵。cv2.getPerspectiveTransform()

  • dsize这是一个元组表示输出图像的大小。通常,它以 的形式指定。输出图像的大小可以与源图像大小不同,你可以选择将其调整为所需的尺寸。(宽度, 高度)

  • flags这是一个可选参数,用于指定插值方法。它可以采用以下值之一:

    • cv2.INTER_NEAREST:最近邻插值。
    • cv2.INTER_LINEAR:双线性插值(默认)。
    • cv2.INTER_CUBIC:双三次插值。
    • cv2.INTER_LANCZOS4:Lanczos插值。
  • borderMode这是一个可选参数,用于指定处理边界像素的方式。它可以采用以下值之一:

    • cv2.BORDER_CONSTANT:使用固定的边界值。
    • cv2.BORDER_REPLICATE:复制边界像素的值。
    • cv2.BORDER_REFLECT:反射边界像素。
    • cv2.BORDER_WRAP:环绕边界像素。
  • borderValue这是一个可选参数,用于指定在 模式下要使用的边界值。通常,它是一个标量值,例如 表示黑色。cv2.BORDER_CONSTANT(0, 0, 0)。

代码实现

可点击此链接查看详细代码实现文章来源地址https://www.toymoban.com/news/detail-753374.html

到了这里,关于【OpenCV】透视变换——cv2.getPerspectiveTransform()与cv2.warpPerspective()详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv图像仿射变换,cv2.warpAffine

    目录 仿射变换原理介绍 cv2.warpAffine函数介绍 代码实例          仿射变换 ,又称 仿射映射 ,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。         在有限维的情况,每个仿射变换可以由一个矩阵A和一个向量b给出,它可以写

    2024年02月05日
    浏览(62)
  • opencv-23 图像几何变换02-翻转-cv2.flip()

    在 OpenCV 中,图像的翻转采用函数 cv2.flip()实现 ,该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转,其语法结构为: 式中:  dst 代表和原始图像具有同样大小、类型的目标图像。  src 代表要处理的原始图像。  flipCode 代表旋转类型。该参数的意

    2024年02月15日
    浏览(48)
  • opencv-24 图像几何变换03-仿射-cv2.warpAffine()

    仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够 保持图像的平直性和平行性。平直性是指图像经过仿射变换后,直线仍然是直线;平行性是指 图像在完成仿射变换后,平行线仍然是平行线。 OpenCV 中的仿射函数为 cv2.warpAffine(),其通过

    2024年02月15日
    浏览(43)
  • opencv-26 图像几何变换04- 重映射-函数 cv2.remap()

    重映射(Remapping)是图像处理中的一种操作,用于将图像中的像素从一个位置映射到另一个位置。重映射可以实现图像的平移、旋转、缩放和透视变换等效果。它是一种基于像素级的图像变换技术,可以通过定义映射关系来改变图像的几何形状和外观。 在重映射中,我们需要

    2024年02月15日
    浏览(49)
  • 【OpenCV】仿射变换中cv2.estimateAffine2D 的原理

    目录 一、介绍 二、仿射变换矩阵 (M) 1.M中六个元素的说明 2.计算旋转角度 3.M的计算过程 三、输出状态 (inliers) 四、错切参数 1.错切参数的定义 2.错切参数例子 (1)水平错切 (2)垂直错切         cv2.estimateAffine2D 是 OpenCV 库中的一个函数,用于估计两个二维点集之间的

    2024年02月04日
    浏览(46)
  • opencv-22 图像几何变换01-缩放-cv2.resize()(图像增强,图像变形,图像拼接)

    几何变换是计算机图形学中的一种图像处理技术,用于对图像进行空间上的变换,而不改变图像的内容。这些变换可以通过对图像中的像素位置进行调整来实现。 常见的几何变换包括: 平移(Translation) :将图像在水平和/或垂直方向上进行平移,即将图像的每个像素沿着指

    2024年02月15日
    浏览(42)
  • 【opencv】:图像的透视变换

    仿射变换(Affine Transformation或 Affine Map) , 又称为仿射映射, 是指在几何中, 图像进行从一个向量空间进行一次线性变换和一次平移, 变换为到另一个向量空间的过程。我们常说的仿射变换是透视变换的一个特例。 以上便是透视变换的原理图,即将源图像通过投影映射,

    2024年02月15日
    浏览(42)
  • 用OpenCV进行透视变换

    欢迎回来!今天我们将焦点聚焦在我在图像处理中最喜欢的话题之一——透视变换。使用该技术,可以灵活方便的实现各种各样好玩的特效。 闲话少说,我们直接开始吧! 我们首先展开对单应矩阵的深入研究。作为图像处理的基本工具,它在捕捉图像中的几何变换方面发挥

    2024年02月10日
    浏览(42)
  • OpenCV 实现透视变换

    仿射变换(affine transform)与透视变换(perspective transform)在图像还原、图像局部变化处理方面有重要意义。通常,在2D平面中,仿射变换的应用较多,而在3D平面中,透视变换又有了自己的一席之地。两种变换原理相似,结果也类似,可针对不同的场合使用适当的变换。 仿射变换和

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包