worldToImage

Мир проекта указывает в изображение

Описание

пример

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

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

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

Примеры

свернуть все

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

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

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

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

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

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

свернуть все

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

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

Введенный в R2017b