주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

cameraIntrinsics

카메라의 내부 파라미터를 저장하기 위한 객체

설명

렌즈 왜곡 파라미터를 포함한 카메라 내부 보정 파라미터에 대한 정보를 저장합니다.

생성

설명

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize)는 초점 거리와 카메라의 주점이 포함된 카메라 내부 파라미터 객체를 반환합니다. 세 가지 입력 인수는 각각 FocalLength 속성, PrincipalPoint 속성, ImageSize 속성을 설정합니다.

예제

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize,PropertyName=Value)는 하나 이상의 이름-값 인수를 사용하여 추가 속성을 설정합니다. 예를 들어, RadialDistortion=[0 10]은 방사형 렌즈 왜곡 속성을 벡터 [0 10]으로 설정합니다.

속성

모두 확장

xy의 초점 거리로, 요소를 2개 가진 벡터 [fx fy](단위: 픽셀)로 저장됩니다.

fx = F * sx

fy = F * sy

F는 일반적으로 밀리미터 단위인 세계 단위 초점 거리입니다. sxsy는 각각 x 방향과 y 방향의 세계 단위당 픽셀 개수입니다. 따라서 fxfy의 단위는 픽셀입니다.

초점 거리 F는 화각에 영향을 미치므로 영상에서 초점이 맞춰진 것처럼 보이는 장면의 영역에 영향을 미칩니다. 피사체와의 거리가 고정된 경우 다음과 같습니다.

  • 초점 거리가 짧으면 화각이 넓어져 장면의 더 넓은 영역에서 초점이 맞춰진 상태로 캡처할 수 있습니다. 이를 통해 피사체와 장면 배경 모두를 강조할 수 있습니다.

  • 초점 거리가 길면 화각이 좁아져 초점이 맞춰진 장면의 영역이 줄어듭니다. 이를 통해 피사체가 더 강조되고 배경은 덜 캡처되도록 제한됩니다.

cameraIntrinsics 객체를 만든 후에는 FocalLength 값을 설정할 수 없습니다.

카메라의 광학적 중심으로, 요소를 2개 가진 벡터 [cx cy](단위: 픽셀)로 저장됩니다. 벡터에는 카메라의 광학적 중심 좌표가 포함됩니다.

cameraIntrinsics 객체를 만든 후에는 PrincipalPoint 값을 설정할 수 없습니다.

카메라가 생성하는 영상 크기로, 요소를 2개 가진 벡터 [mrows ncols]로 저장됩니다.

cameraIntrinsics 객체를 만든 후에는 ImageSize 값을 설정할 수 없습니다.

방사형 렌즈 왜곡 계수로, 요소를 2개, 3개 또는 6개 가진 벡터로 지정됩니다.

  • 요소를 2개 가진 벡터 — [k1 k2].

  • 요소를 3개 가진 벡터 — [k1 k2 k3].

  • 요소를 6개 가진 벡터 — [k1 k2 k3 k4 k5 k6].

방사형 왜곡은 주점에서 확장되는 방사형 선을 따라 영상 점이 변위되는 것입니다.

  • 영상 점이 주점에서 멀어질수록(양의 방사형 변위) 영상 배율이 감소하고 영상에 핀쿠션 왜곡이 발생합니다.

  • 영상 점이 주점에 가까워질수록(음의 방사형 변위) 영상 배율이 증가하고 영상에 배럴 왜곡이 발생합니다.

Three grids: one with pincushion distortion (positive radial displacement), one with no distortion, and one with barrel distortion (negative radial displacement)

카메라 파라미터 객체는 한 점의 방사형 왜곡 위치를 계산하며, 이는 (xdistorted, ydistorted)로 표기합니다.

xdistorted=x(1+k1*r2+k2*r4+k3*r61+k4*r2+k5*r4+k6*r6)

ydistorted=y(1+k1*r2+k2*r4+k3*r61+k4*r2+k5*r4+k6*r6)

x, y는 광학적 중심을 원점으로 한 세계 단위의 정규화된 영상 좌표에 있는 왜곡되지 않은 영상 점입니다.
r2 = x2 + y2
k1, k2, …, k6은 렌즈의 방사형 왜곡 계수입니다. 일반적으로 두 개의 계수가 충분하며 k3, …, k6은 광각 렌즈에만 필요합니다.

접선 왜곡 계수로, 요소를 2개 가진 벡터 [p1 p2]로 지정됩니다. 접선 왜곡은 렌즈와 영상 평면이 평행이 아닌 경우에 발생합니다.

Comparison of zero tangential distortion and tangential distortion

카메라 파라미터 객체는 한 점의 접선 왜곡 위치를 계산합니다. 왜곡된 점은 (xdistorted, ydistorted)로 표기할 수 있으며, 다음과 같습니다.

xdistorted = x + [2 * p1 * x * y + p2 * (r2 + 2 * x2)]

ydistorted = y + [p1 * (r2 + 2*y2) + 2 * p2 * x * y]

x, y는 왜곡되지 않은 픽셀 위치입니다.
p1p2는 렌즈의 접선 왜곡 계수입니다.
r2 = x2 + y2
왜곡되지 않은 픽셀 위치는 광학적 중심을 원점으로 한 정규화된 영상 좌표에 나타납니다. 좌표는 세계 단위로 표현됩니다.

카메라 좌표축 왜도로, 숫자형 스칼라로 지정됩니다. x축과 y축이 정확히 수직인 경우 왜도는 0이어야 합니다.

읽기 전용 속성입니다.

카메라 내부 행렬로, 3×3 행렬로 지정됩니다. 행렬의 형식은 다음과 같습니다.

[fxscx0fycy001]

좌표 [cx cy]는 광학적 중심(주점)(단위: 픽셀)을 나타냅니다. x축과 y축이 정확히 수직일 때 왜도 파라미터 s0입니다.

fx = F*sx

fy = F*sy

F는 세계 단위의 초점 거리로, 일반적으로 밀리미터로 표현됩니다.
sxsy는 각각 x 방향과 y 방향의 세계 단위당 픽셀 개수입니다.
fxfy는 픽셀로 표현됩니다.

예제

모두 축소

렌즈 왜곡이나 왜도 없이 카메라 파라미터를 정의합니다.

초점 거리와 주점을 픽셀 단위로 지정합니다.

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

camera intrinsics 객체를 만듭니다.

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
                       K: [3×3 double]

확장 기능

모두 확장

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2017a에 개발됨

모두 확장