【发布时间】:2021-02-11 01:36:08
【问题描述】:
我有一个名为start_coord 的点矩阵,其中包含它们的 x 和 y 坐标,以及表示它们的分类 (1-5) 的列。 IE。第一行看起来像 [75, 100, 4]。
我使用下面的代码计算了这些数据的 voronoi 图
[vc_x, vc_y] = voronoi(start_coord(:,1), start_coord(:,2));
如何通过每个多边形中包含的点的分类值(即start_coord 中的第三列)为生成的多边形着色?
编辑 要按颜色快速绘制多边形,请参考下面 cmets 中的答案,这有助于为编辑提供信息。要获取将数千个点写入可保存为图像的数组的 voronoi 多边形,请参阅以下代码:
new_map = zeros(sm_size(1), sm_size(2));
start_coord = readmatrix(char(join([csv_path, '/', run_types(run), common_name_csv], "")));
sc_size = size(start_coord);
dt = delaunayTriangulation(start_coord(:,1:2));
[V,R] = voronoiDiagram(dt);
for i = 1:sc_size(1)
A=V(R{i},:);
B=A(any(~isinf(A),2),:); % omit points at infinity
bw = poly2mask(B(:,1), B(:,2), sm_size(1), sm_size(2));
new_map(bw == 1) = color_map(start_coord(i,3));
end
new_map 然后可以保存为数组或转换为 RGB 并保存为图像。
【问题讨论】:
标签: matlab colors matlab-figure voronoi