필터 지우기
필터 지우기

How do i generate a rotation matrix iteratively.

조회 수: 1 (최근 30일)
Stewart Tan
Stewart Tan 2019년 9월 11일
댓글: Walter Roberson 2019년 9월 11일
I have two matrices containing coordinates:
example1 = [1 3;
4 5;
2 3;
6 17];
example2 = [1 4;
6 2;
8 9;
10 11];
and I'm implementing the RANSAC algorithm to remove outlier coordinates. To do that, I will need to include a factor of whether a not one coordinate in example1 is either a rotation, scaling or translation which result in the coordinate in example2. (1 3 -> 1 4, 4 5 -> 6 2 etc..) Hence, I will need to have a rotation matrix, scaling and translation matrix to be built iteratively within the RANSAC algorithm.
For now, I'll just keep it simple by just using a rotation matrix.
How do i generate a rotation matrix [cos θ -sin θ; sin θ cos θ] if i do not have anything else other than the two coordinate matrices above?
Edit: sorry for the confusion but the goal is to "estimate" the transformation matrix in every N iteration. The following shows:
Snip20190911_1.png

채택된 답변

Walter Roberson
Walter Roberson 2019년 9월 11일
example1 = [1 3;
4 5;
2 3;
6 17];
example2 = [1 4;
6 2;
8 9;
10 11];
syms theta
RM = [cos(theta) -sin(theta); sin(theta) cos(theta)];
residue = simplify( sum(sum((example2 - (RM * example1.').').^2)) );
best_theta = vpasolve(diff(residue,theta));
It is also possible to code it as a numeric minimization of residue over a bounded range, without using the symbolic toolbox.
  댓글 수: 3
Walter Roberson
Walter Roberson 2019년 9월 11일
Your original goal was restricted to rotation matrix, and my code finds the rotation matrix that produces the least squared error of rotation between the given sets of coordinates.
Walter Roberson
Walter Roberson 2019년 9월 11일
I would suggest that Bruno's answer is probably better for your purposes.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Bruno Luong
Bruno Luong 2019년 9월 11일
편집: Bruno Luong 2019년 9월 11일
You can use this implementation by Matt J using the Horn's method. It do for you the scaling and translation as well.

카테고리

Help CenterFile Exchange에서 MATLAB Support Package for USB Webcams에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by