四边形到矩形变换
我想将四边形图像转换为我知道这些顶点的矩形图像。例如,在下图中,我知道坐标 (X1,Y1) ~ (X4,Y4) 和 (x1,y1) ~ (x2,y2) 并且我想将其转换为矩形。如何获得与四边形图像中的(X,Y)坐标相对应的矩形图像中的(x,y)坐标?
____> Y ____> y
| |
| |
V V
X x
(X1,Y1) (X2,Y2) (x1,y1) (x1,y2)
________ _________
/ .(X,Y) \ => | .(x,y) |
/__________\ |_________|
(X3,Y3) (X4,Y4) (x2,y1) (x2,y2)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果这应该是透视变换,那么您要查找的术语是单应性。
也许这些链接中的 Matlab 函数可以满足您的要求:
http:// /www.csse.uwa.edu.au/~pk/research/matlabfns/#projective
http://www.robots.ox.ac.uk/~vgg/hzbook/code/
评论后编辑:
好的,所以我用 Mathematica 解了方程。如果您定义(为了可读性)
,那么
这对解决方案相当笨重
,并且
请注意,唯一的区别是 Srqt 之前的符号。
现在您只需重新构造上面
M
和N
的定义即可得到x
,y
。x=M*(x2-x1)+x1
,y=N*(y2-y1)+y1
。If this is supposed to be a perspective transformation, the term you look for is homography.
Maybe the Matlab functions in these links cando what you want:
http://www.csse.uwa.edu.au/~pk/research/matlabfns/#projective
http://www.robots.ox.ac.uk/~vgg/hzbook/code/
Edited after comments:
Ok, so I solved the equations with Mathematica. If you define (for readability)
and
then the pair of solutions is the rather unwieldy
and
Note that the only difference is the sign before the Srqt.
Now you only have to re-form the definitions of
M
andN
above to getx
,y
.x=M*(x2-x1)+x1
,y=N*(y2-y1)+y1
.