2012-03-27 5 views
0

3D 공간에서 원본 쿼드가 방의 사진 인 방의 사진처럼 3D 쿼드 (파란 색)의 2D 투영 (녹색)으로 이미지가 있습니다. 바닥. ABCD 포인트의 2D XY 위치를 알고 있습니다 (사용자가 제공). 내가이 투사를 만들어 원래의 카메라 객체 개재이다 싶어 폭, 높이 및 3D 공간에서 쿼드의 내부 각도를 아는평면 투영이 2D 직사각형에 맞도록 카메라 평면 개입 설정

http://i41.tinypic.com/rr59xt.png

. 그래서, 내가 이해하는 한, 이것은 2D 이미지 위에 3D 마커를 표시 할 때 AR 툴킷으로 해결되는 정확한 문제이며 동일 평면 POSIT 알고리즘으로 해결할 수 있습니다. 결과적으로 회전 행렬 및 번역 벡터를 제공하는 AForge.NET Framework (http://www.aforgenet.com/articles/posit/)의 코드를 사용하고 있습니다.

내 첫 혼란 : 내가 원점으로 (0,0,0) 좌표계를 세계에 회전 행렬과 변환 벡터를 받고 있는가 (즉, 내 카메라는 0,0와 0, 0, 0 위치에 , 0 회전)?

내 두 번째 혼란 : 내가 XY 평면에 원래 (첫 번째 이미지에 파란색 하나)와 동일한 크기의 쿼드을 배치, 나는 위해 algorigh CoPOSIT에 의해 생성 된 내 회전 행렬과 변환 벡터를 변환하는 방법을 얻을 수 있습니다 카메라 위치 및 회전을 사용하므로 화면상의이 쿼드는 원본 2D 투영 (첫 번째 이미지의 녹색 직사각형)을 완성합니다. 파란색 반투명 ​​3D 쿼드가 바닥을 메우는 마지막 이미지 에서처럼.

http://i44.tinypic.com/zl5cmu.png http://i44.tinypic.com/2vru6n4.png

답변

1
  1. From the research paper, 3 페이지 (복사/붙여 넣기가 올바르게 이유는 나도 몰라 작동하지 않는) :

    우리의 목표는 의 회전 행렬과 변환 벡터를 계산하는 것이다 물체에 대한 회전 행렬 R은 행이 카메라의 단위 벡터 ijk의 좌표 인 행렬입니다. 좌표계 표현식 ED는 객체 뮤 Mv로
    Mw가 실제로 회전 행렬의 목적은 좌표 카메라 시스템 내적의 MMI의 IB etween 첫 행을 dened으로 그러한 MMI로서 벡터의 오브젝트 좌표를 변환하는 좌표계 행렬 및 벡터 MMi는 카메라 좌표계의 단위 벡터 i에 벡터의 투영을 올바르게 제공합니다. 즉, 행 벡터 i의 MMi 및 의 좌표가 표현되는 한MMi의 좌표 Xi X 여기 같은 좌표계 대상 좌표계

    카메라의 중심이 (0, 0, 0)이고 중심 축이 y 인 것처럼 보입니다.

  2. 내가 틀렸다면 정정하십시오. 그러나 카메라에 역 동작을 적용하고 싶을 것입니다 (카메라를 -translation vector으로 이동하고 inverse of rotation vector로 회전).