图像的“投影变换”中的第三个坐标是什么以及如何构建逆变换的矩阵?

信息处理 图像处理 matlab
2022-01-09 08:30:58

我试图理解 2D 图像的投影变换的形式。它有 9 个参数 (ai),第 9 个参数是多余的,因为我们使用的是同质坐标。这种变换只保留直线。

(xyw) = (abc def ghi) (xyw)

根据这种形式,我有三个问题:

  1. 由于自由度的冗余(从 8 到 9)是 i=1
  2. ww 是什么?它们是参数吗?我如何计算它们?
  3. 如何找到参数,以便将图像转换为其原始图像(从黑色背景图像到方形图像)。

我想要做的是构建矩阵来转换这个图像:

输入图像

并找到矩阵 M

所以我得到了这张图片:

在此处输入图像描述

以上所有图片均取自这里

我最终想要做的是找到

M = [a  b c; 
     d  e f;
     g  h i];

t_proj = maketform('projective',T);   
I_projective = imtransform(I,t_proj,'FillValues',.3);
imshow(I_projective)
title('unprojective - rectangular carpet')

取自这里

1个回答

您必须了解投影变换不是线性的。它是 $(x,y) -> (X(x, y)/Z(x,y) , Y(x, y)/Z(x,y))$,其中 X, Y, Z - 线性函数。(x,y)>(X(x,y)/Z(x,y),Y(x,y)/Z(x,y)), where X, Y, Z - linear functions.

w and w are essential here - they help represent this non-linear transformation as linear - matrix multiplication - and that way this linear representation is a homomorphism (preserve "chaining" of operations).w for input image is usually taken as 1; You get w from matrix multiplication (w=gx+hy+iw ) and the end result of transform is (x/w,y/w)

一般来说,您不能只分配 $i=1$,但由于同质性,您可以将所有矩阵除以 $i$ 并获得新矩阵,表示与左右元素 $1$ 相同的变换i=1, but due to homogeneity you can divide all the matrix by i and get new matrix, representing the same transform with right-left element 1

我建议您阅读一些有关计算机视觉的射影几何的教科书,以更好地理解该主题。这些问题有一些深刻的含义。