主要内容

估计

从世界到图像点对应关系估算相机投影矩阵

描述

Cammatrix.= extimatecameramatrix(图像点世界观点通过使用直接线性变换(DLT)方法返回由已知世界点和相应的图像投影确定的摄像机投影矩阵。

例子

[Cammatrix.重新评论错误] = evertatecameramatrix(图像点世界观点还返回输注错误,这些错误量化投影图像坐标的准确性。

例子

全部收缩

将由RGB-D传感器捕获的3-D点云数据加载到工作区中。

ld = load('Object3d.mat');ptcloud = ld.ptcloud;

删除点INF.或者从点云坐标。

[ValidptCloud,validIndices] = removeInvalidPoints(PTCloud);

阅读有效的世界点坐标。每个条目指定XyZ.点云中的点坐标。

WorldPoints = ValidptCloud.Location;

将相应的图像点坐标定义为点云数据的正交投影到yz.-飞机。

indices = 1:ptcloud.count;[y,z] = IND2SUB([大小(PTCloud.Location,1),尺寸(PTCloud.Location,2)],索引);imagePoints = [y(validindices)'z(validindices)'];

通过使用图像点坐标和它们的颜色值来生成二维图像投影。

projimage = zeros(max(maxpoints(:,1)),max(图像点(:,2)),3);RGB = VANDPTCLOUD.COLOR;为了j = 1:长度(RGB)projimage(图像点(j,1),映象点(j,2),:) = RGB(j,:);结尾

显示点云数据和相应的2-D图像投影。

图形子图(1,2,1)pcshow(ptcloud)xlabel('X');ylabel('是');Zlabel('Z');标题('点云数据''颜色',[1 1 1])子图(1,2,2)IMSHOW(UINT8(PROJIMIMAGE))标题('2-D图像投影''颜色',[1 1 1])

图包含2个轴。带标题点云数据的轴1包含类型分散的对象。具有标题2-D图像投影的轴2包含类型图像的对象。

使用已知的世界点和图像点来估计相机投影矩阵和再分调误差。

[Cammatrix,RepoureErrors] =估计(观点,WorldPoints);

使用估计的摄像机投影矩阵作为输入findnearestneighbors.函数并找到查询点的最近邻居。

点= [0.4 0.3 0.2];%指定查询点k = 50;%指定要确定的最近邻居的数量[索引,dists] = findnearestneighbors(ptcloud,point,k,cammatrix);%获得最近邻居的索引和距离

使用选择获取最近邻居点云数据的功能。

ptcloudb = select(ptcloud,索引);

显示输入点云及其最近的邻居。

图,pcshow(ptcloud)持有pcshow(ptcloudb.location,'ob') 抓住离开传奇('点云''最近的邻居''地点''southoutside''颜色',[1 1 1])

图包含轴。轴包含2个类型的散射物体。这些对象代表点云,最近的邻居。

输入参数

全部收缩

图像投影点的坐标,指定为一个m- 2矩阵(Xy)坐标。m是点数,它必须大于或等于6。

笔记

  • 输入图像点必须对应于未置换的图像平面。

数据类型:单身的|双倍的

3-D世界点,指定为m- 3矩阵(XyZ.)坐标。m是点数,它必须大于或等于6。

笔记

  • 输入世界坐标必须是非共同的点。

数据类型:单身的|双倍的

输出参数

全部收缩

摄像机投影矩阵,返回为4×3矩阵。矩阵将三维世界点映射到均匀的坐标,以将投影的2-D图像坐标坐到图像平面上。

数据类型:双倍的

重新注明错误,作为一个返回m-by-1矢量。重注错误是恢复图像点与输入图像点之间的误差。有关重新注明错误计算的更多信息,请参阅算法

数据类型:双倍的

尖端

你可以使用估计估计相机投影矩阵的功能:

  • 如果已知世界 - 图像点对应关系,并且相机内在和外在参数未知,则可以使用Cameramatrix.功能。

  • 要计算3-D世界点的2-D图像点,请参阅“方程”Cammatrix.

  • 与之使用findnearestneighbors.对象功能pointcloud.目的。使用相机投影矩阵的使用速度升高了RGB-D传感器生成的点云中的最近邻居搜索,例如Microsoft®kinect.®

算法

鉴于世界要点X和图像点X,相机投影矩阵C,通过求解等式来获得

λ.X=CX

使用直接线性变换(DLT)方法来解决方程[1]。该方法配制了均匀的方程线性系统,通过广义特征值分解获得溶液。

因为图像点坐标以像素值中给出,所以用于计算摄像机投影矩阵的方法对数值误差敏感。为避免数值误差,输入图像点坐标是归一化的,使其质心在原点处。此外,来自原点的图像点的根平均平方距离是 2 。这些步骤总结了估计相机投影矩阵的过程。

  1. 用变换归一化输入图像点坐标T.

  2. 估计摄像机投影矩阵CN从归一化输入图像点。

  3. 计算非规范化的摄像机投影矩阵C作为CNT.-1

  4. 计算恢复的图像点坐标XE.作为CX

  5. 计算重新注明错误

    重新评论错误= |X-XE.|。

参考

[1]理查德,H.和A. Zisserman。计算机视觉中的多视图几何。剑桥:剑桥大学出版社,2000年出版社。

在R2019A介绍