exponenta event banner

worldToImage

Проецировать точки мира на изображение

Описание

пример

imagePoints = worldToImage(intrinsics,rotationMatrix,translationVector,worldPoints) возвращает проекцию точек мира 3-D изображение с учетом особенностей камеры, матрицы вращения и вектора трансляции.

[imagePoints,validIndex] = worldToImage(___) также возвращает индексы допустимых точек изображения, которые находятся в пределах границы изображения, используя любой из предыдущих синтаксических входных данных.

[___] = worldToImage(___'ApplyDistortion',distort) возвращает проекцию с опцией применения искажения. Этот синтаксис поддерживается для параметров камеры, отличных от fisheye.

Примеры

свернуть все

Создайте набор калибровочных изображений.

images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
      'calibration','slr'));

Определите шашечные углы на изображениях.

[imagePoints,boardSize] = detectCheckerboardPoints(images.Files);

Создайте мировые координаты шашечных углов в системе координат, ориентированной на массив, с верхним левым углом (0,0).

squareSize = 29; % in millimeters
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

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

cameraParams = estimateCameraParameters(imagePoints,worldPoints);

Загрузите изображение в новое место.

imOrig = imread(fullfile(matlabroot,'toolbox','vision','visiondata', ...
        'calibration','slr','image9.jpg'));

imshow(imOrig,'InitialMagnification',30);

Figure contains an axes. The axes contains an object of type image.

Отмена искажения изображения.

imUndistorted = undistortImage(imOrig,cameraParams);

Найдите ссылочный объект на новом изображении.

[imagePoints,boardSize] = detectCheckerboardPoints(imUndistorted);

Вычислите новые внешние элементы.

[R,t] = extrinsics(imagePoints,worldPoints,cameraParams);

Добавьте координату Z к мировым точкам.

zCoord = zeros(size(worldPoints,1),1);
worldPoints = [worldPoints zCoord];

Проецируйте мир в исходное изображение.

projectedPoints = worldToImage(cameraParams,R,t,worldPoints);
hold on
plot(projectedPoints(:,1),projectedPoints(:,2),'g*-');
legend('Projected points');
hold off

Figure contains an axes. The axes contains 2 objects of type image, line. This object represents Projected points.

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

свернуть все

Параметры камеры, указанные как cameraIntrinsics или fisheyeIntrinsics объект. Объекты хранят информацию о собственных параметрах калибровки камеры, включая параметры искажения объектива.

3-D поворот мировых координат относительно координат изображения, заданных как матрица 3 на 3. Матрица поворота вместе с вектором перемещения позволяет преобразовывать точки из мировой системы координат в систему координат камеры. rotationMatrix и translationVector входные данные должны быть одного типа.

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

3-D перевод мировых координат относительно координат изображения, заданных как вектор 1 на 3. Вектор перемещения вместе с матрицей поворота позволяет преобразовывать точки из мировой системы координат в систему координат камеры. rotationMatrix и translationVector входные данные должны быть одного типа.

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

3D мировые пункты, определенные как матрица M-3, содержащая M [x, y, z] координаты 3D мировых пунктов.

Опция для применения искажения объектива, указанная как false или true. При установке для этого аргумента значения trueфункция применяет искажения объектива к выходу imagePoints.

Этот аргумент допустим только при использовании cameraParameters объект в качестве cameraParams вход.

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

свернуть все

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

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

Представлен в R2016b