문제

3 포인트 구름이 있다고 가정 해 봅시다. 먼저 3 점 {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3} 및 {xx1, yy1, {xx1, yy1,와 동일한 포인트가있는 두 번째 포인트 클라우드가 있습니다. ZZ1}, {xx2, yy2, zz2}, {xx3, yy3, zz3} ... 두 번째 포인트 클라우드를 먼저 두 번째 포인트에 t [3x3matrix]로 곱해야한다고 가정합니다.

1)이 변환 행렬 (t)를 어떻게 찾을 수 있습니까? 나는 손으로 방정식을하려고했지만 해결하지 못했습니다. 어딘가에 해결책이 있습니까?

2) 매트릭스에는 왜곡 및 전단이 포함될 수 있다고 가정합니다. 자유도 (3 번의 트랜스 션, 3 차, 1Scale) 만있는 매트릭스를 찾는 방법이 있습니까?

도움이 되었습니까?

해결책

단위 벡터 {1, 0, 0}, {0, 1, 0} 및 {0, 0, 1} to {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3}는 간단합니다

     | x1 x2 x3 |
T1 = | y1 y2 y3 |
     | z1 z2 z3 |

마찬가지로 3 개의 단위 벡터를 두 번째 포인트 세트로 가져 오는 변환 T2는 다음과 같습니다.

     | xx1 xx2 xx3 |
T2 = | yy1 yy1 yy3 |
     | zz1 zz2 zz3 |

따라서, 두 번째 3 점으로 처음 3 점을 차지하는 행렬은 T2 * T1에 의해 제공됩니다.-1. T1이 비소 인 경우,이 변형은 고유하게 결정되므로 자유도가 없습니다. T1이 단일 매트릭스 인 경우 솔루션이 없거나 무한히 많은 솔루션이있을 수 있습니다.

당신이 7 도의 자유를 원한다고 말할 때, 이것은 용어의 오용입니다. 일반적 으로이 매트릭스는 3 회전 자유도, 3 개의 스케일링 정도 및 3 개의 전단 도로 구성되어 총 9 개를 만듭니다. QR 인수화. Q 행렬은 회전 매개 변수를 제공하고 R 행렬은 스케일링 매개 변수 (대각선을 따라) 및 전단 매개 변수 (대각선 위)를 제공합니다.

다른 팁

Adam Rosenfield의 접근이 맞습니다. 그러나 T2 * Inv (T1)가 잘못된 솔루션이 잘못되었습니다. 행렬 곱하기 a * b! = b * a : 따라서 결과는 inv (t1) * t2입니다.

그만큼 일곱 파라미터 변환 당신이 말하는 것은 두 구름이 비슷하다는 점을 감안할 때 3D 컨 포멀 변환 또는 때로는 3D 유사성 변환이라고합니다. 두 모양이 동일하면 Adam Rosenfields 솔루션이 좋습니다. 작은 차이가 있고 가장 잘 맞기를 원하는 곳에서 가장 일반적으로 사용되는 솔루션은 Helmert 변환 최소 제곱 접근법을 사용하여 잔차를 최소화합니다. Wikipedia와 Google의 물건은 한 눈에 잘 보이지 않습니다. 이것에 대한 나의 언급은 Ghilani & Wolf 's입니다 조정 계산, p345. 이것은 또한 공간적 문제에 적용되는 매트릭스 수학에 관한 훌륭한 책이며 라이브러리에 좋은 추가입니다.

편집 :이 변환의 Adam의 9 매개 변수 버전은 아핀 변환

여기에 있습니다 예시 R.에서 2D 아핀 변환의 파라미터의 최소 제곱 추정치를 계산합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top