2016-07-14 6 views
1

이미지에서 배럴/방사형 왜곡을 왜곡 시키려고합니다. 방정식을 볼 때 카메라의 초점 거리가 필요하지 않습니다. 그러나 openCV API initundistortrectifymap은 카메라 내장 매트릭스의 형태로 필요합니다. 왜 그렇게? 어쨌든 그들없이 그것을 할 수 있습니까? 왜곡되지 않은 부분은 다양한 왜곡 보정에 일반적이라는 것을 알고 있기 때문입니다.방사형 왜곡 보정, 카메라 매개 변수 및 openCV

답변

1

왜곡 제거에는 초점 거리가 필수적입니다. 카메라의 고유 매개 변수에 대한 정보를 제공하므로 카메라 매트릭스에 추가하는 것이 매우 쉽습니다. 그냥 밀리미터에서 픽셀로 변환해야한다는 것을 기억하십시오. 이는 픽셀이 직사각형이되도록하기 위해 수행됩니다. 변환을 위해서는 센서의 높이와 너비 (밀리미터), 센서의 수평 (Sh) 및 수직 (Sv) 픽셀 수 및 밀리미터 단위의 초점 거리를 알아야합니다. 변환은 다음 방정식을 사용하여 수행됩니다.
fx = (f (mm) x Sh (px))/sensorwidth (mm)
fy = (f (mm) x Sv (px))/sensorheight (mm)

카메라의 기타 요소는 here입니다.

+0

안녕하세요, 답변 해 주셔서 감사합니다. 언급 한 링크에서 xcorrected 및 ycorrected의 방정식에는 fx 및 fy가 필요하지 않습니다. 이것이 제가 우리가 정말로 필요로하는지 궁금하게 생각한 것입니까? – vvvv

+0

방정식은 방사형 왜곡 (첫 번째 방정식 집합)과 접선 왜곡 (방정식의 두 번째 방정식)을 제거한 후 픽셀 위치를 계산하는 데 사용됩니다. 이 방정식을 보면 3 개의 행렬로 구성된 방정식을 알 수 있습니다. '='다음의 첫 번째 행렬은 카메라 행렬입니다. 요소 fx, fy, cx 및 cy가 표시됩니다. 두 개의 후자의 요소 (cx 및 cy)는 그에 따라 x 및 y 방향으로 주 포인트 옵셋입니다. 이 둘은 초점 거리뿐만 아니라 카메라 보정 후에 계산 될 수 있습니다. – Nikos

+0

또한 cx 및 cy의 값을 모르는 경우 p.p. (이미지의 중심에 정확하게 위치합니다.) 오프셋을 두지 않으므로 두 값을 모두 0으로 지정합니다. 개인적으로 0p.p. 옵셋은 완전히 정상이며 광학 시스템의 불완전 함으로 인해 발생합니다. – Nikos