How to rotate or align point cloud ?
Afficher commentaires plus anciens
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.

Réponse acceptée
Plus de réponses (1)
Image Analyst
le 25 Déc 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 commentaires
Lyhour Chhay
le 25 Déc 2021
Modifié(e) : Lyhour Chhay
le 25 Déc 2021
Image Analyst
le 25 Déc 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
le 25 Déc 2021
Image Analyst
le 25 Déc 2021
Modifié(e) : Image Analyst
le 25 Déc 2021
In that data, which N-by-3 matrix is actually the xyz data? Location? Normal?

Lyhour Chhay
le 25 Déc 2021
Image Analyst
le 25 Déc 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
le 25 Déc 2021
Image Analyst
le 25 Déc 2021
Well give him time - it is Christmas Day after all. 🎅
Lyhour Chhay
le 26 Déc 2021
Catégories
En savoir plus sur Data Distribution Plots dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






