怎么把图像输入转化为三维点云数据

2024-10-26 20:09:17

1、先给出图像,并载入到Mathematica里面。

怎么把图像输入转化为三维点云数据

2、把图片分离通道:{r, g, b} = ColorSeparate[Rasterize@img]

怎么把图像输入转化为三维点云数据

3、单独把红色通道的图像,转化为三维数据,格式是{横坐标、纵坐标、像素值}:rr = ImageData[r];rrr = Flatten[Table[{i, j, rr[[i, j]]}, {i, 636}, {j, 636}], 1];

怎么把图像输入转化为三维点云数据

4、在三维空间中,绘制rrr中的所有直角坐标点:ListPointPlot3D[rrr, PlotStyle -> Red]

怎么把图像输入转化为三维点云数据

5、降低点的密度:rrr = Flatten[ Table[{i, j, rr[[i, j]]}, {i, 1, 636, 5}, {j, 1, 636, 5}], 1];图像如下。这样不仅图像看着清楚一点,而且出图速度更快。

怎么把图像输入转化为三维点云数据

6、把三个通道的图像,都转化为点云图像:ListPointPlot3D[{rrr, ggg, bbb}, PlotStyle -> {Red, Green, Blue}]

怎么把图像输入转化为三维点云数据
猜你喜欢