0

나는 포인트 클라우드와 여러 개의 이미지로 작업하고 있습니다. 카메라의 내재적 및 외적 매개 변수를 알고 있습니다. 내가 원하는 것은 특정 방향으로 보려고 (위치를 변경하지 않고) 카메라를 회전시키는 회전 행렬 을 찾는 것입니다. 더 구체적으로 말하자면, 점 구름에 비행기를 맞추고 카메라의 시야 방향을 평면에 수직으로 보려고합니다 ( 위치 변경 없음).특정 방향으로보기 위해 카메라의 방향을 맞 춥니 다.

따라서 카메라의 회전 행렬을 고려할 때 이미지에 대한 호모 그래피 변환도 있습니다.

제발 도와주세요.

+0

원하는 위치/방향을 사용하는 카메라의 새로운 뷰 매트릭스를 만들 수 없으며 회전 매트릭스가 있어야합니까? Btw 당신은 Direct3D 또는 OpenGL과 같은 일부 라이브러리를 사용하고 있습니까? – miloszmaki

+0

아니요, 라이브러리를 사용하고 있지 않습니다. 이미지에 점 구름을 투사하여 이미지에 해당하는 깊이 맵을 얻을 수 있도록 회전 행렬을 가져 오려고합니다. 나는 그것이 의미가 있기를 바랍니다. –

답변

0

dir1을 카메라의 현재 방향이라고하고 dir2을 카메라의 대상 방향으로 지정하십시오. 표준화 방향 벡터를 계산한다 : 우리는 d1에서 d2에 회전하는 행렬을 얻고 싶은

d1 = dir1/|dir1| 
d2 = dir2/|dir2| 

. 즉,이 매트릭스 u 방향 곳에서 축 주위 theta의 각도만큼 회전을 수행해야

u = (d1 x d2)/|d1 x d2|  <-- normalized cross product of d1 and d2 
sin(theta) = |d1 x d2|   <-- the length of the cross product 
cos(theta) = d1 * d2   <-- dot product of d1 and d2 

마지막으로, 우리는이 식에 상기 값을 연결 (만약 here 더 읽을 수) 요청 된 행렬을 획득하는

rotation matrix

+0

안녕하세요, Miloszmaki, 응답을 받았습니다. 나는 더 간단한 의구심을 가지고있다. 이 회전을 수행하기 위해 카메라를 원점으로 다시 변환 할 필요는 없습니까? –

+0

카메라가 원점에 있지 않으면 먼저 회전을 수행 한 다음 대상 위치로 번역해야합니다. – miloszmaki

+0

좋아, 나는 이것을 시도하고 여기에 돌아갈 것이다! 고맙습니다 :) –

0

x가 가정 된 이미지의 중심이 다음 c = [a,b,1] 말 (이 이미지를 고려하여 2 차원 이미지).

temp_X = inverse(K) * c 
temp_X = transpose(R) * temp_X 
direction = temp_X/norm(temp_X) 

final direction = t - direction 

나는이 완전히 적합한 지 여부를 알고 있지만하지 않습니다

이제 우리는이 스타일의 방향을 찾을 수 있습니다 R

고유 매개 변수 매트릭스 K 및 외부-회전 행렬을 시도해 볼 수 있습니다.