📄 vgg_h_from_2p_plane.m
字号:
function [H] = vgg_H_from_2P_plane(P1,P2, L)
%
% [H] = vgg_H_from_2P_plane(P, L)
% [H] = vgg_H_from_2P_plane(P1, P2, L)
%
%USAGE 1:
% Returns the homography matrix from the plane whos normal is L to the
% image whos projection matrix is P. This is useful for mapping two images
% of a plane.
%USAGE 2:
% Given two camera matrices and a plane, returns the homography matrix that
% maps points from the first camera onto the second.
%
%IN:
% P,P1,P2 - 3x4 Camera matrix
% L - 1x4 Plane normal
%
%OUT:
% H - 3x3 projective homography matrix mapping points from the image
% to the world-points on the plane. Note that
%
%EXAMPLE:
% Let P1, P2 be two projection matrices and let L be the normal to
% the plane then the homography H=H1*inv(H2) maps points in P2 to
% points in P1 where:
% H1=vgg_H_from_2P_plane(P1, L)
% H2=vgg_H_from_2P_plane(P2, L)
% % And this will be the resulting image:
% [u,v]=homflow(H, size(i1,1), size(i1,2));
% t=imgwarp(i1, u,v);
%
% An alternative is to use H = P1*vgg_H_from_P_plane(P2,L).
% $Id: vgg_H_from_2P_plane.m,v 1.2 2002/02/22 22:30:55 werner Exp $
% Yoni, Fri Apr 6 12:44:54 2001
if nargin==2
P=P1; L=P2;
H = P(:,1:3)*L(4) - P(:,4)*L(1:3);
elseif nargin==3
nL=null(L);
H=P2*nL*inv(P1*nL);
else
error('Wrong number of arguments');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -