cameraIntrinsics

Объект для хранения собственных параметров камеры

Описание

Сохраните информацию о параметрах внутренней калибровки камеры, включая параметры искажения объектива.

Создание

Описание

пример

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize) возвращает внутренний объект камеры, который содержит фокусное расстояние, заданное как [fx, fy], и основную точку камеры, заданную как [cx, cy]. См. cameraParameters для получения дополнительной информации.

intrinsics = cameraIntrinsics(___,Name,Value) использует дополнительные опции, заданные одной или парами имя-значение. Заключайте каждое имя свойства в кавычки. Для примера, intrinsics = cameraIntrinsics('RadialDistortion',[0,0])

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

расширить все

Фокусное расстояние камеры, заданное как двухэлементный вектор, [fx, fy].

fx=F×sx

fy=F×sy

  • F - фокусное расстояние в мировых единицах измерения, обычно миллиметры

  • [sx, sy] количество пикселей на мировую единицу измерения в направлении x и y соответственно

  • fx и fy указаны в пикселях

Оптический центр камеры, заданный как двухэлементный вектор, [cx, cy], в пикселях.

Размер изображения, произведенного камерой, задается как двухэлементный вектор, [mrows, ncols ].

Свойства

расширить все

Радиальное искажение объектива, заданное как разделенная разделенными запятой парами, состоящая из RadialDistortion и двухэлементный вектор, [k1, k2], или трехэлементный вектор, [k1, k2, k3]. k1, k2 и k3 являются коэффициентами радиального искажения. Радиальное искажение происходит, когда световые лучи изгибаются больше около ребер линзы, чем в ее оптическом центре. Чем меньше линза, тем больше искажение.

Радиальное искажение происходит, когда световые лучи изгибаются больше около ребер линзы, чем в ее оптическом центре. Чем меньше линза, тем больше искажение.

Объект параметров камеры вычисляет радиальное искаженное положение точки. Можно обозначить искаженные точки следующим образом (x искаженные, y искаженные):

x искаженный = x (1 + k 1 * r2 + <reservedrangesplaceholder1> 2* r4 + <reservedrangesplaceholder1> 3* r6) (1)
y искаженный = y (1 + k 1 * r2 + <reservedrangesplaceholder1> 2* r4 + <reservedrangesplaceholder1> 3* r6) (2)
x, y = неискаженные положения пикселей
k 1, k 2 и k 3 = коэффициенты радиального искажения объектива
r2 = x2 + y2
Обычно достаточно двух коэффициентов. Для серьезных искажений можно включать k 3. Неискаженные положения пикселей появляются в нормированных координатах изображения с источником координат в оптическом центре. Координаты выражены в мировых единицах измерения.

Коэффициенты тангенциального искажения, заданные как разделенная разделенными запятой парами, состоящая из 'TangentialDistortion'и вектор с 2 элементами [p 1, p 2]. Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны.

Объект параметров камеры вычисляет тангенциальное искаженное положение точки. Можно обозначить искаженные точки следующим образом (x искаженные, y искаженные):

x искаженный = x + [2 * p 1 * x * y + p 2 * (r2 + 2 * x2)](3)
y искаженный = y + [p 1 * (r2 + 2* y2) + 2 * <reservedrangesplaceholder2> 2 * x * y](4)
x, y = неискаженные положения пикселей
p 1 и p 2 = тангенциальные коэффициенты искажения объектива
r2 = x2 + y2
Неискаженные положения пикселей появляются в нормированных координатах изображения с источником координат в оптическом центре. Координаты выражены в мировых единицах измерения.

Наклон оси камеры, заданный как разделенная разделенными запятой парами, состоящая из 'skew'и угол. Если x и y оси в точности перпендикулярны, то перекос должен быть 0.

Это свойство доступно только для чтения.

Фокусное расстояние в x и y, сохраненное как 2-элементный вектор [fx, fy] в пикселях.

fx = F * sx
fy = F * sy
F - фокусное расстояние в мировых единицах измерения, обычно в миллиметрах, и [sx, sy] - количество пикселей на мировую единицу измерения в x и y направлении соответственно. Таким образом, fx и fy указаны в пикселях.

Фокусное расстояние F влияет на угол зрения и, таким образом, влияет на область сцены, которая появляется сфокусированной в изображении. Для фиксированного предмета расстояния:

  • Короткое фокусное расстояние предлагает широкий угол зрения, позволяющий захватить большую область сцены под особым вниманием. В нем подчеркивается как тема, так и фон сцены.

  • Длинное фокусное расстояние предлагает узкий угол зрения, таким образом уменьшая область сцены под особым вниманием. В нем делается больший упор на эту тему и ограничивается объем накопленного опыта.

Это свойство доступно только для чтения.

Оптический центр камеры, сохраненный как двухэлементный вектор [cx, cy] в пикселях. Вектор содержит координаты оптического центра камеры.

Это свойство доступно только для чтения.

Размер изображения, произведенного камерой, сохраненный как двухэлементный вектор, [mrows, ncols ].

Это свойство доступно только для чтения.

Проекционная матрица, сохраненная как разделенная разделенными запятой парами, состоящая из 'IntrinsicMatrix'и матрица 3 на 3. Для формата матрицы объект использует следующий формат:

[fx00sfy0cxcy1]

Координаты [cx cy] представляют оптический центр (главную точку) в пикселях. Когда x и y ось в точности перпендикулярны, параметр наклона, s, равен 0.

fx = F * s x
fy = F * s y
F - фокусное расстояние в мировых единицах измерения, обычно выраженное в миллиметрах.
[s x, s y] - количество пикселей на мировую единицу измерения в x и y направлениях соответственно.
fx и fy выражены в пикселях.

Примеры

свернуть все

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

Задайте фокусное расстояние и главную точку в пикселях.

    focalLength    = [800, 800]; 
    principalPoint = [320, 240];
    imageSize      = [480, 640];

Создайте внутренний объект камеры.

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize)
intrinsics = 
  cameraIntrinsics with properties:

             FocalLength: [800 800]
          PrincipalPoint: [320 240]
               ImageSize: [480 640]
        RadialDistortion: [0 0]
    TangentialDistortion: [0 0]
                    Skew: 0
         IntrinsicMatrix: [3x3 double]

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2017a