How to rotate or align point cloud ?
Ältere Kommentare anzeigen
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.

Akzeptierte Antwort
Weitere Antworten (1)
Image Analyst
am 25 Dez. 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 Kommentare
Lyhour Chhay
am 25 Dez. 2021
Bearbeitet: Lyhour Chhay
am 25 Dez. 2021
Image Analyst
am 25 Dez. 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
am 25 Dez. 2021
Image Analyst
am 25 Dez. 2021
Bearbeitet: Image Analyst
am 25 Dez. 2021
In that data, which N-by-3 matrix is actually the xyz data? Location? Normal?

Lyhour Chhay
am 25 Dez. 2021
Image Analyst
am 25 Dez. 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
am 25 Dez. 2021
Image Analyst
am 25 Dez. 2021
Well give him time - it is Christmas Day after all. 🎅
Lyhour Chhay
am 26 Dez. 2021
Kategorien
Mehr zu Programming finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






