cameraMatrix

Матрица проекции камеры

Синтаксис

camMatrix = cameraMatrix(cameraParams,rotationMatrix,translationVector)

Описание

пример

camMatrix = cameraMatrix(cameraParams,rotationMatrix,translationVector) возвращается 4 3 матрица проекции камеры. Можно использовать эту матрицу для точек мира проекта 3-D в однородных координатах в изображение.

Примеры

свернуть все

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

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

Обнаружьте углы шахматной доски в изображениях.

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

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

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

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

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

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

imOrig = imread(fullfile(matlabroot,'toolbox','vision','visiondata', ...
      'calibration','slr','image9.jpg'));
figure; imshow(imOrig);
title('Input Image');

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

im = undistortImage(imOrig,cameraParams);

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

[imagePoints,boardSize] = detectCheckerboardPoints(im);

Вычислите новый extrinsics.

[rotationMatrix,translationVector] = extrinsics(...
    imagePoints,worldPoints,cameraParams);

Вычислите матрицу камеры

P = cameraMatrix(cameraParams,rotationMatrix,translationVector)
P =

   1.0e+05 *

    0.0157   -0.0271    0.0000
    0.0404   -0.0046   -0.0000
    0.0199    0.0387    0.0000
    8.9399    9.4399    0.0072

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

свернуть все

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

Вращение камеры, заданной как 3х3 матрица. Можно получить эту матрицу с помощью функции extrinsics. Можно также получить матрицу с помощью функции relativeCameraPose путем перемещения ее orientation вывод. rotationMatrix и входные параметры translationVector должны быть действительными, неразреженными, и того же класса.

Перевод камеры, заданной как 1 3 вектор. Вектор сдвига описывает преобразование от мировых координат до координат камеры. Можно получить этот вектор с помощью функции extrinsics. Можно также получить вектор с помощью location и orientation выходные параметры функции relativeCameraPose:

  • translationVector =-relativeLocation * relativeOrientation'

Входные параметры translationVector должны быть действительными, неразреженными, и того же класса.

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

свернуть все

Матрица проекции камеры, возвращенная как 4 3 матрица. Матрица содержит 3-D мировые точки в однородных координатах, которые спроектированы в изображение. Когда вы устанавливаете rotationMatrix и translationVector к double, функция возвращает camMatrix как double. В противном случае это возвращает camMatrix как single.

Функция вычисляет camMatrix можно следующим образом:

camMatrix = [rotationMatrix; translationVector] × K.
K: внутренняя матрица

Затем с помощью матрицы камеры и однородных координат, можно спроектировать мировую точку на изображение.

w × [x, y, 1] = [X, Y, Z, 1] × camMatrix.

x, y, z : мировые координаты точки
x, y : координаты соответствующей точки изображений
w: произвольный масштабный коэффициент

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

Расширенные возможности

Введенный в R2014b