主要内容

undistortPoints

正确的点坐标镜头畸变

描述

undistortedPoints= undistortPoints (,cameraParams)返回点坐标校正透镜畸变。这个函数使用数字非线性最小二乘优化。

例子

(undistortedPoints,reprojectionErrors)= undistortPoints (,cameraParams)此外返回错误用来评估的准确性不偏激的观点。

例子

全部折叠

创建一个imageDatastore对象包含校准图片。

图像= imageDatastore (fullfile (toolboxdir (“愿景”),“visiondata”,“校准”,“莫诺”));imageFileNames = images.Files;

检测校准模式。

[imagePoints, boardSize] = detectCheckerboardPoints (imageFileNames);

生成的角落的世界坐标方格。广场在毫米大小。

squareSize = 29;worldPoints = generateCheckerboardPoints (boardSize squareSize);

校准相机。

I = readimage(图片,10);图象尺寸=[(我,1),大小(我,2)];params = estimateCameraParameters (imagePoints worldPoints,“图象尺寸”、图象尺寸);

装载图像并检测到棋盘上点。

点= detectCheckerboardPoints(我);

Undistort点

undistortedPoints = undistortPoints(点,params);

Undistort图像。

[J, newOrigin] = undistortImage (params,我“OutputView”,“全部”);

翻译不失真点

undistortedPoints = [undistortedPoints (: 1)——newOrigin (1),undistortedPoints (: 2), newOrigin (2)];

显示结果

图;imshow(我);持有;情节(点(:1),点(:,2),“r * - - - - - -”);标题(“发现点”);持有;

图包含一个坐标轴对象。坐标轴对象标题发现分包含2图像类型的对象,线。

图;imshow (J);持有;情节(undistortedPoints (: 1) undistortedPoints (:, 2),“g * - - - - - -”);标题(“不失真点”);持有;

图包含一个坐标轴对象。坐标轴对象与标题不失真点包含2图像类型的对象,线。

输入参数

全部折叠

指定一个输入点,2的矩阵数量(x, y)坐标。

相机参数,指定为一个cameraParameterscameraIntrinsics对象。你可以返回cameraParameters对象使用estimateCameraParameters函数。的cameraParameters对象包含的内在、外在和摄像机镜头畸变参数。

输出参数

全部折叠

无畸变的点,作为一个返回2矩阵。的undistortedPoints输出包含(x,y)点坐标校正透镜畸变。当你输入点,函数输出undistortedPoints作为。否则,它输出undistortedPoints作为单身。

数据类型:|

Reprojection错误,作为一个返回1的向量。您可以使用错误评估的准确性不偏激的观点。函数计算错误运用变形的无畸变的点,然后把结果和相应的输入点之间的距离。的reprojectionErrors输出像素。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2014b