У меня есть облако точек ствола дерева, импортированное в виде файла слоя. Это облако точек, поэтому ствол дерева — это не поверхность, а точки с промежутками между ними.
У меня также есть 3D-координаты множества точек. Как удалить те точки, которые не находятся внутри ствола дерева? Кстати, модель не параллельна осям.
Вот ссылка на файл ply в дропбоксе. Координаты и значения точек находятся в прикрепленном файле all_control_points.mat. Пока нет кода, кроме того, который генерирует эти данные.
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Привет. Написал скрипт и как-то работает 0_0. См. прикрепленный скрипт
Это то, чего я достиг
Может быть, кто-то может объяснить, почему (и как) это работает
% xc,yc,zc - control points (red on the image) % xt,yt,zt - tree point (blue on the image) ri = sqrt(xt(it).^2 + yt(it).^2); % radius of tree points ri1 = griddata(xt(it), yt(it), zt(it), ri, ... xc,yc,zc);
griddata() генерирует радиус только для точек внутри (NaN для остальных)
% clc,clear % load data.txt Xt = X12(:,1); Yt = X12(:,2); Zt = X12(:,3); % rotate data by 75 degree about X axis a = -75; xt = Xt; yt = Yt*cosd(a) + Zt*sind(a); zt = -Yt*sind(a) + Zt*cosd(a); % center data (move to (0,0)) x0 = mean(xt); y0 = mean(yt); xt = xt - x0; yt = yt - y0;
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ