小编Bry*_*non的帖子

根据初始点的颜色值在 MATLAB 中为 voronoi 图着色

我有一个名为包含其 x 和 y 坐标的点矩阵start_coord,以及表示其分类 (1-5) 的列。即第一行看起来像 [75, 100, 4]。

我使用下面的代码计算了该数据的 voronoi 图

[vc_x, vc_y] = voronoi(start_coord(:,1), start_coord(:,2));

我将如何根据每个多边形中包含的点的分类值(即中的第三列)对结果多边形进行着色start_coord

编辑 要按颜色快速绘制多边形,请参考下面评论中的答案,这有助于告知此编辑。要获取写入可保存为图像的数组的数千个点的 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
Run Code Online (Sandbox Code Playgroud)

new_map然后可以保存为数组或转换为 RGB 并保存为图像。

matlab voronoi colors matlab-figure

5
推荐指数
1
解决办法
1083
查看次数

标签 统计

colors ×1

matlab ×1

matlab-figure ×1

voronoi ×1