gpt4 book ai didi

image - 使用透视变换倾斜图像

转载 作者:行者123 更新时间:2023-12-04 02:30:36 25 4
gpt4 key购买 nike

我正在尝试对图像进行倾斜,就像此处显示的那样

(来源:microsoft.com)
.
我有一组代表我的图像的像素,但不确定如何处理它们。

最佳答案

一个更好的方法是通过逆映射。
本质上,您想“扭曲”图像,对吗?这意味着源图像中的每个像素都到达一个预定义的点 - 预定义是一个变换矩阵,它告诉您如何旋转、缩放、平移、剪切等。图像本质上是采用某个坐标 (x,y)在你的图片上说,“好的,这个像素的新位置是 (f(x),g(y))
这基本上就是“翘曲”的作用。
现在,考虑缩放图像……比方说,缩放到十倍的大小。所以这意味着,(1,1) 处的像素成为 (10,10) 处的像素- 然后是下一个像素,(1,2)变成像素 (10,20)在新图像中。但是如果你继续这样做,你将没有像素值,(13,13)因为,(1.3,1.3)未在您的原始图像中定义,并且您的新图像中会有一堆洞 - 您必须使用新图像中它周围的四个像素来插入该值,即 (10,10) , (10,20), (20,10), (200,2) - 这叫做 bilinear interpolation .
但这是另一个问题,假设您的转换不是简单的缩放并且是仿射的(如您发布的示例图像)- 那么 (1,1)会变成类似 (2.34,4.21)然后你必须在输出图像中将它们四舍五入为 (2,4)然后 您必须对新图像进行双线性插值以填充漏洞或更复杂的插值 - 是不是很麻烦?
现在,有 没办法摆脱插值,但我们可以避免进行双线性插值,只需 一次 .如何?简单的逆映射。
与其将其视为转到新图像的源图像,不如考虑新图像的数据将来自源图像的何处!所以,(1,1)在新图像中将来自源图像中的一些反向映射,例如 (3.4, 2.1)然后在源图像上做双线性插值计算出对应的值!
变换矩阵
好的,那么如何定义仿射变换的变换矩阵呢? This website告诉您如何通过组合不同的变换矩阵进行旋转、剪切等操作。
变换:
alt text
合成:
alt text
最终的矩阵可以通过按顺序合成每个矩阵和你反转 它得到逆映射 - 使用它计算源图像中像素的位置并进行插值。

关于image - 使用透视变换倾斜图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2446494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com