GMu*_*Mus 14 matlab computer-vision extrinsic-parameters matlab-cvst
我正在使用Matlab进行相机校准,使用Jean-Yves Bouget的相机校准工具箱.我有校准程序中的所有相机参数.当我使用不在校准集中的新图像时,我可以获得其变换方程,例如Xc = R*X + T,其中X是世界框架中校准装备(平面)的3D点,Xc是其坐标相机架.换句话说,我拥有一切(外在和内在参数).
我想要做的是对此图像执行透视校正,即我希望它删除任何透视图并看到校准装置未失真(它是一个棋盘).
Matlab的新计算机视觉工具箱有一个对象,在给定3X3矩阵H的情况下对图像执行透视变换.问题是,我不能从已知的内在和外在参数计算这个矩阵!
方法 1:在相机校准工具箱中,您应该注意到工作区中棋盘格的每个图像都有一个 H 矩阵。我还不熟悉计算机视觉工具箱,但也许这就是您的功能所需的矩阵。H 似乎是这样计算的:
KK = [fc(1) fc(1)*alpha_c cc(1);0 fc(2) cc(2); 0 0 1];
H = KK * [R(:,1) R(:,2) Tc]; % where R is your extrinsic rotation matrix and Tc the translation matrix
H = H / H(3,3);
Run Code Online (Sandbox Code Playgroud)
方法 2:如果计算机视觉工具箱功能不适合您,那么为了找到图像的预期投影,我使用了interp2函数,如下所示:
[X, Y] = meshgrid(0:size(I,2)-1, 0:size(I,1)-1);
im_coord = [X(:), Y(:), ones(prod(size(I_1)))]';
% Insert projection here for X and Y to XI and YI
ZI = interp2(X,Y,Z,XI,YI);
Run Code Online (Sandbox Code Playgroud)
我不久前在一个项目中使用了预期投影,我相信您需要使用齐次坐标。我想我发现这篇维基百科文章非常有帮助。
归档时间: |
|
查看次数: |
10589 次 |
最近记录: |