undistortPoints

Правильная точка координирует для искажения объектива

Описание

undistortedPoints = undistortPoints(points,cameraParams) возвращает координаты точки, откорректированные для искажения объектива. Эта функция использует числовую оптимизацию нелинейного метода наименьших квадратов.

пример

[undistortedPoints,reprojectionErrors] = undistortPoints(points,cameraParams) дополнительно возвращается, ошибки раньше оценивали точность неискаженных точек.

Примеры

свернуть все

Создайте объект imageDatastore, содержащий калибровочные изображения.

images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
   'calibration','mono'));
imageFileNames = images.Files;

Обнаружьте калибровочный шаблон.

[imagePoints,boardSize] = detectCheckerboardPoints(imageFileNames);

Сгенерируйте мировые координаты углов квадратов. Размер квадратов находится в миллиметрах.

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

Калибруйте камеру.

I = readimage(images,10); 
imageSize = [size(I, 1), size(I, 2)];
params = estimateCameraParameters(imagePoints,worldPoints, ...
                                  'ImageSize',imageSize);

Загрузите изображение и обнаружьте точки шахматной доски.

points = detectCheckerboardPoints(I);

Не исказите точки

undistortedPoints = undistortPoints(points,params);

Не исказите изображение.

[J, newOrigin] = undistortImage(I,params,'OutputView','full');

Переведите неискаженные точки

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

Отобразите результаты

figure; 
imshow(I); 
hold on;
plot(points(:,1),points(:,2),'r*-');
title('Detected Points'); 
hold off;

Figure contains an axes object. The axes object with title Detected Points contains 2 objects of type image, line.

figure; 
imshow(J); 
hold on;
plot(undistortedPoints(:,1),undistortedPoints(:,2),'g*-');
title('Undistorted Points'); 
hold off;

Figure contains an axes object. The axes object with title Undistorted Points contains 2 objects of type image, line.

Входные параметры

свернуть все

Точки ввода, заданные M-by-2 матрица количества M [x y] координаты.

Параметры камеры в виде cameraParameters или cameraIntrinsics объект. Можно возвратить cameraParameters объект с помощью estimateCameraParameters функция. cameraParameters объект содержит внутренний параметр, значение внешних параметров и параметры искажения объектива камеры.

Выходные аргументы

свернуть все

Неискаженные точки, возвращенные как M-by-2 матрица. undistortedPoints выведите содержит M [x, y] координаты точки, откорректированные для искажения объектива. Когда вы точки ввода как double, функциональные выходные параметры undistortedPoints как double. В противном случае, это выходные параметры undistortedPoints как один.

Типы данных: single | double

Ошибки перепроекции, возвращенные как M-by-1 вектор. Можно использовать ошибки оценить точность неискаженных точек. Функция вычисляет ошибки путем применения искажения к неискаженным точкам, и затем взятия расстояний между результатом и соответствующими точками ввода. reprojectionErrors выход находится в пикселях.

Введенный в R2014b