2016-09-20 4 views
0

Мне было интересно, если бы кто-то мог предоставить мне некоторые примеры кода для работы с разбросанными данными точки XYZ в MATLAB Curve Fitting Toolbox? Я хотел бы поместить поверхность в точки, приближенные к цилиндру.Как установить цилиндр в рассеянные данные 3D XYZ в MATLAB?

Спасибо.

+0

Не имейте опыта, но посмотрели ли вы ссылки на странице Matlab [страница с поверхностью] (http://uk.mathworks.com/help/curvefit/surface-fitting.html)? – Steve

ответ

3

В Matlab R2015b и выше, Вы можете использовать pcfitcylinder, чтобы соответствовать цилиндр к pointCloud объекта. Давайте начнем с получения в качестве примера данные, чтобы увидеть, как это работает:

[theta, r, h] = meshgrid(0:.1:6.28, 1, 0:.2:4); % making a cylinder 
r = r + 0.05 * randn(size(r)); % adding some radial noise 
[x, y, z] = pol2cart(theta, r, h); % transforming the coordinate system 
P = (rotx(60) * [x(:), y(:), z(:)]')'; % rotating the data points around x axis 
figure; 
scatter3(P(:, 1), P(:, 2), P(:, 3)) 
axis equal 

enter image description here

точка объекта облако создается следующим образом:

ptCloud = pointCloud(P); 

Тогда модель может быть оборудована:

maxDistance = 0.02; 
model = pcfitcylinder(ptCloud, maxDistance); 
hold on 
plot(model) 

enter image description here

В зависимости от ваших данных, чтобы получить разумный цилиндр, вам может потребоваться посмотреть pcfitcylinder и рассмотреть возможность включения других входных аргументов.

+0

Yay для модных участков –

 Смежные вопросы

  • Нет связанных вопросов^_^