2012-06-07 2 views
4

동질이 익숙한 사람들은 동질적인 좌표를 유지하기 위해 임의의 행렬 구성 요소로 나눠 정규화해야한다는 것을 알게됩니다. 호모 그래피는 3x3 행렬이며 대개 (3,3)에서 요소로 나누어 정규화됩니다. 그 값 (예 0.0000008 위해) 매우 작고, 제로 (0.0000007)로 supossed 인 값을 분할 할 때정상화시 이상한 동조화 값 회피

http://www.cg.tu-berlin.de/fileadmin/fg144/Courses/06WS/scanning/Dennis/Extrinsic%20calibration-Dateien/image006.jpg

문제가 온다. 결과 값은 0으로 설득되고 결과 프로젝션이 의미가 없을 때 거의 0.875입니다.

이 문제를 해결하는 가장 일반적인 방법은 무엇입니까? C++과 부동 소수점 연산을 사용합니다.

+0

음, 처음에 값이 잘못되어 있지 않은지 확인하십시오. –

+0

정규화 된 값과 비슷한 크기의 값을 이미 계산 한 적이 있다면 쉽게 이해할 수 있습니다. –

+0

마지막 열은 위치 벡터 (x, y, z)입니다. z가 cero에 가까울 때 문제가 발생합니다. 가능한 한 그 사건을 피하고 있습니다. 그러나 나는이 문제를 처음으로 생각하지 않는다. 그래서 정규화 엘멘을 선택하는 방법이 있어야한다. 나는 일반적인 방법, 진행하는 좋은 길을 의미한다. –

답변

3

그래서, 내가 질문을 이해한다면 :

0/0.000000001 = 0 = CORRECT 

과 :

0.000000001/0.000000001 ~ 1 INCORRECT 

내가 매개 변수 시그마와 함께 오류를 확인하는 함수를 정의됩니다.

값이 <이고 시그마가 0.001 인 경우 0으로 가정하고 0을 반환하고 그렇지 않으면 반환 값을 반환합니다.

따라서 항상 시그마 오류에 대한 값으로 작동하고 그렇지 않은 경우에는 0으로 작동합니다.

+0

+1 허용되는 해결책처럼 보입니다. –