Matlab 从点创建三维逻辑遮罩

Matlab 从点创建三维逻辑遮罩,matlab,points,Matlab,Points,我有一组3D点,用于指定对象表面上的点。从这些点出发,我需要构建一个3D逻辑掩码。如何使用matlab解决这个问题?希望获得一些见解。如果您有“曲线拟合工具箱”,您可以根据数据拟合曲面公式。 如果你现在知道确切的类型(如球、圆锥体等),你可以将其定义为适合的公式 也许您可以提供一些示例数据 % parameters num_coordinates = 100; max_coordinate = 20; % generate random coordinate x = sort(randi(max

我有一组3D点,用于指定对象表面上的点。从这些点出发,我需要构建一个3D逻辑掩码。如何使用matlab解决这个问题?希望获得一些见解。

如果您有“曲线拟合工具箱”,您可以根据数据拟合曲面公式。 如果你现在知道确切的类型(如球、圆锥体等),你可以将其定义为适合的公式

也许您可以提供一些示例数据

% parameters
num_coordinates = 100;
max_coordinate = 20;
% generate random coordinate
x = sort(randi(max_coordinate, [num_coordinates, 1]));
y = sort(randi(max_coordinate, [num_coordinates, 1]));
z = sort(randi(max_coordinate, [num_coordinates, 1]));
% create the mask
mask = false(max_coordinate, max_coordinate, max_coordinate);
for k = 1 : length(x)
    mask(x(k), y(k), z(k)) = true;
end

如果速度很重要,我想有一个更快的解决方案。

逻辑点的标准是什么?表面上?在体积上?假设在x,y,z坐标上有一个100点。矩阵是100x3。那么num_坐标和max_坐标对应的是什么?使用此代码,它只在对象边界上创建一个3d遮罩,而不是整个对象。那么,如何像3D蒙版的imfill函数一样填充蒙版呢?