개요
이번 시간엔 카메라가 어떻게 작동하는지와 3차원 좌표가 2차원 좌표에 투영되는 변환을 살펴보자. 그래픽스에 비해 깊이결과를 고려하지않고 xy결과도 주어진 깊이 d 투영창에 대한 시야 공간 상 좌표로의 변환이기에 훨씬 간단하게 표현된다. 그래픽스는 해당 좌표를 주어진 시야각에 대해 ndc로 만들어야 하고 깊이 결과도 만들어야 했기에 훨씬 복잡했다.
이번장은 투영을 포함한 대부분 내용이 그래픽스에서 다뤘기에 생략하고 간단히 넘어가겠다.
카메라
카메라는 간단히 말하면 다음과 같이 작동된다.
중간에 한점만 구멍이 뚫린 가림막으로 인해 외부의 반사된 빛들이 필름의 대칭된 부분에 투사된다.
여기서 가림막 대신 볼록렌즈를 사용하면 같은 효과를 내면서도 빛을 더 많이 모아 성능이 좋아진다.
투영
(x,y,z)의 점이 d에 있는 투영창(필름)에 (x`,y`,-d)로 투영된다고 해보자. 여기서
x` y`은 단순히 x,y에 -d/z를 곱하면 구할 수 있다. 여기서 z는 이후 2차원 변환에서 z나누기를 수행하므로 두면 되므로 투영행렬은 다음과 같다.
-d | 0 | 0 |
0 | -d | 0 |
0 | 0 | 1 |
여기서 d를 -1로 잡으면 그냥 단위행렬이 투영행렬이 된다.
최종 변환 행렬
[뷰포트 변환 행렬(이미지 픽셀 좌표로 변환)] * [투영행렬 I] * [시야 행렬]
'인공지능 > 컴퓨터비전' 카테고리의 다른 글
[컴퓨터비전개론][8장]RANSAC (0) | 2023.04.22 |
---|---|
[컴퓨터비전개론][7장]Image alignment (1) | 2023.04.22 |
[컴퓨터비전개론][6장]Transformations (0) | 2023.04.06 |
[컴퓨터비전개론][5장]feature descriptor (0) | 2023.04.03 |
[컴퓨터비전개론][4장]feature detection (0) | 2023.03.29 |