본문 바로가기

연구/내 연구공간

[좌표계 변환] 좌표계 변환, 좌표 변환 개념 공부

반응형

2023.07.12 수정

우선, 좌표계를 변환한다는 것은 좌표축을 변환한다는 것과 같은 말이다.

하지만 좌표계 변환과 좌표(점) 변환은 다른 말이고 서로 반대 변환이다.

 

이런 개념까지는 알고 있었으나 이 개념을 구현하려다 보니 막상 헷갈리는 개념들이 있어 살짝 기록하려고 한다.

 

지금까지 world 좌표계상에서 정의된 점을 camera 좌표계상에서 바라보았을때는 좌표가 몇으로 보일까? 를 풀기 위해서 다음의 수식을 이용해왔었다.

 

 

Xw : 점 X를 World좌표계상에서 바라보았을때의 좌표

Xc : 점 X를 Camera 좌표계상에서 바라보았을때의 좌표

 

그런데 문제는 그럼 R,t 는 뭐지?

R은 world 좌표축을 camera 좌표축으로 회전하는건가? 아니면 camera 좌표축을 world좌표축으로 회전하는 건가??

를 생각하다보니 내가 지금껏 얼마나 개념도 모른채 코드를 짜고있었는지 깨닫게된다.

 

매우 매우 간단한 상황을 통해 직접 알아보자.

 

 

여기서 빨간 축은 camera 좌표계, 검은 축은 world 좌표계라고 정의하고, 편의상 두 좌표계간의 translation 은 없다고 가정하자.(그럼 원점이 겹치니까)

그리고 Xw = (1,1) 이라고 하고, camera 좌표축은 world 좌표축을 45deg 만큼 회전시킨 것이라고 보자.

그럼 당연히 Xc = (root(2), 0) 이 나온다.

 

자 그럼 이제 아래 수식 중에 무엇이 맞는지를 체크해보자.

위 수식에서 왼쪽과 오른쪽은 서로 반대로의 rotation을 적용한 것이다.

 

R이 world 축을 camera 축으로 회전하는 변환이면 바로 위 그림에서 왼쪽 수식에 theta=45 를 넣는게 맞을것이고

R이 camera 축을 world 축으로 회전하는 변환이면 바로 위 그림에서 오른쪽 수식에 theta=45를 넣는게 맞을것이다.

 

계산해보면 알겠지만 오른쪽 수식이 정답이다.

 

즉, 

에서 R은 camera 축을 world 축으로 회전하는 변환이다.

그리고 이 과정에서 설명은 빠졌지만 t는 카메라좌표계에서 바라본 월드좌표계의 원점좌표를 의미한다.

즉, 다시말해 t 는 카메라좌표축에서 정의된 평행이동이고, 카메라좌표축 원점을 월드좌표축 원점으로 평행이동 시키는 값이다.

 

 

그리고 이 수식은 world 좌표계상의 점을 camera 좌표계상의 점으로 변환하는 식이다.

 

앞으로도 매우 헷갈릴 듯 하지만 잘 기록해서 두고두고 확인하자.

 

참고:

https://redstarhong.tistory.com/107

https://color-change.tistory.com/54

https://darkpgmr.tistory.com/84

 

반응형