getPerspectiveTransform 和 warpPerspective 如何工作? [Python]
How getPerspectiveTransform and warpPerspective work? [Python]
我找不到关于 getPerspectiveTransform
和 warpPerspective
如何在 OpenCV 中工作的完美解释,特别是在 Python 中。我对这些方法的理解是:
给定来自源图像的 4 个点和 4 个新点 getPerspectiveTransform
returns 一个 (3, 3) 矩阵,当作为参数发送到 warpPerspective
时以某种方式裁剪图像。我认为这 4 个点(来自 src 图像)在图像上形成一个多边形,然后是 removed/cropped 然后这个新裁剪的图像被安装在新给定的 4 个点之间,我还看到 warpPerspective
需要新图像的输入大小。所以我推断这是因为,如果新点的 max-height/max-width(从点计算...想象点是矩形或四边形的角)小于提供的宽度或高度,则剩余区域留空这本质上是 black/white,但事实并非如此......如果从新点计算出的 width/height 小于提供的宽度和高度,则剩余的 space 将填充一些源图像的一部分,本质上是 4 个源点的外部...
我无法理解这种行为...
我是不是对这些方法的解释不正确?如果是,请提供这些方法的正确解释。
PS。我是 OpenCV 的新手,如果有人解释 getPerspectiveTransform
warpPerspective
.
使用的基础数学,那就太好了
提前致谢。
这些函数是称为几何变换的图像处理概念的一部分。
在现实生活中拍照时,总会存在某种几何失真,可以使用几何变换将其消除。它还有其他应用,包括马赛克构造、地理制图、立体声和视频。
这是来自 this site 的示例:
所以基本上 warpPerspective
将源图像转换为它的所需版本,它使用 getPerspectiveTransform
.
给出的 3*3 转换矩阵来完成这项工作
查看更多详情here。
现在如果您想知道如何从源图像和目标图像中找到那对 4 个点,您应该查看另一个图像处理概念,称为特征提取。这些方法可以完美地找到图像的重要区域,您可以将它们与从不同视图拍摄的同一对象的另一幅图像进行匹配。 (检查 SIFT、SURF、ORB 等)
匹配特征的示例:
所以warpPerspective
不会只是裁剪你的图像,它会根据变换矩阵转移整个图像(不仅仅是由4个点指定的区域),这些点只会用于找到正确的矩阵。
我找不到关于 getPerspectiveTransform
和 warpPerspective
如何在 OpenCV 中工作的完美解释,特别是在 Python 中。我对这些方法的理解是:
给定来自源图像的 4 个点和 4 个新点 getPerspectiveTransform
returns 一个 (3, 3) 矩阵,当作为参数发送到 warpPerspective
时以某种方式裁剪图像。我认为这 4 个点(来自 src 图像)在图像上形成一个多边形,然后是 removed/cropped 然后这个新裁剪的图像被安装在新给定的 4 个点之间,我还看到 warpPerspective
需要新图像的输入大小。所以我推断这是因为,如果新点的 max-height/max-width(从点计算...想象点是矩形或四边形的角)小于提供的宽度或高度,则剩余区域留空这本质上是 black/white,但事实并非如此......如果从新点计算出的 width/height 小于提供的宽度和高度,则剩余的 space 将填充一些源图像的一部分,本质上是 4 个源点的外部...
我无法理解这种行为...
我是不是对这些方法的解释不正确?如果是,请提供这些方法的正确解释。
PS。我是 OpenCV 的新手,如果有人解释 getPerspectiveTransform
warpPerspective
.
提前致谢。
这些函数是称为几何变换的图像处理概念的一部分。 在现实生活中拍照时,总会存在某种几何失真,可以使用几何变换将其消除。它还有其他应用,包括马赛克构造、地理制图、立体声和视频。
这是来自 this site 的示例:
所以基本上 warpPerspective
将源图像转换为它的所需版本,它使用 getPerspectiveTransform
.
查看更多详情here。
现在如果您想知道如何从源图像和目标图像中找到那对 4 个点,您应该查看另一个图像处理概念,称为特征提取。这些方法可以完美地找到图像的重要区域,您可以将它们与从不同视图拍摄的同一对象的另一幅图像进行匹配。 (检查 SIFT、SURF、ORB 等)
匹配特征的示例:
所以warpPerspective
不会只是裁剪你的图像,它会根据变换矩阵转移整个图像(不仅仅是由4个点指定的区域),这些点只会用于找到正确的矩阵。