How to rotate or align point cloud ?
Mostra commenti meno recenti
Excuse me everyone! I have point cloud as shown in the figure. I want to rotate to the horizontal plane. The rotation point is the middle. How can I do it ? Thank you very much.

Risposta accettata
Più risposte (1)
Image Analyst
il 25 Dic 2021
You forgot to attach your data, which would have made it easier.
So I'd guess at something like
% Fit a line through the data.
coefficients = polyfit(x, y, 1);
% Then get the mean y
meany = mean(y);
% Get a fitted y
fittedy = polyval(coefficients, x);
% Then subtract the fitted values and add the vertical offset.
rotatedy = y - fittedy + meany;
plot(x, rotatedy, '.', 'MarkerSize', 10);
9 Commenti
Lyhour Chhay
il 25 Dic 2021
Modificato: Lyhour Chhay
il 25 Dic 2021
Image Analyst
il 25 Dic 2021
I'm not going to type all that in. Did you try my code? If not, why not?
You can attach the variable in a .mat file
save('answers.mat', 'plyRoi');
if you still need help.
Lyhour Chhay
il 25 Dic 2021
Image Analyst
il 25 Dic 2021
Modificato: Image Analyst
il 25 Dic 2021
In that data, which N-by-3 matrix is actually the xyz data? Location? Normal?

Lyhour Chhay
il 25 Dic 2021
Image Analyst
il 25 Dic 2021
Once all the data is plotted, I can see it's more like a plane. I think you're best off fitting it to a plane like Matt says, then find the normal to the fitted plane values and use that to rotate the point cloud to flatten/level it.
Lyhour Chhay
il 25 Dic 2021
Image Analyst
il 25 Dic 2021
Well give him time - it is Christmas Day after all. 🎅
Lyhour Chhay
il 26 Dic 2021
Categorie
Scopri di più su Programming in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






