Python: 将二维点云转换为灰度图
Python: Convert 2d point cloud to grayscale image
我有一个可变长度的数组,其中填充了分布在 (0,0) 周围的 2d 坐标点(来自点云),我想将它们转换为 2d 矩阵(= 灰度图像)。
# have
array = [(1.0,1.1),(0.0,0.0),...]
# want
matrix = [[0,100,...],[255,255,...],...]
我如何使用 python 和 numpy
实现此目的
看起来 matplotlib.pyplot.hist2d
就是您要找的。
它基本上将您的数据分箱到二维分箱中(尺寸由您选择)。
here 下面给出了文档和一个工作示例。
import numpy as np
import matplotlib.pyplot as plt
data = [np.random.randn(1000), np.random.randn(1000)]
plt.scatter(data[0], data[1])
然后你可以对你的数据调用hist2d
,例如像这样
plt.hist2d(data[0], data[1], bins=20)
请注意,hist2d
的参数是两个一维数组,因此在将数据提供给 hist2d
之前,您必须对我们的数据进行一些整形。
仅使用 numpy 的快速解决方案,无需 matplotlib 和绘图:
import numpy as np
# given a 2dArray "array" and a desired image shape "[x,y]"
matrix = np.histogram2d(array[:,0], array[:,1], bins=[x,y])
我有一个可变长度的数组,其中填充了分布在 (0,0) 周围的 2d 坐标点(来自点云),我想将它们转换为 2d 矩阵(= 灰度图像)。
# have
array = [(1.0,1.1),(0.0,0.0),...]
# want
matrix = [[0,100,...],[255,255,...],...]
我如何使用 python 和 numpy
实现此目的看起来 matplotlib.pyplot.hist2d
就是您要找的。
它基本上将您的数据分箱到二维分箱中(尺寸由您选择)。 here 下面给出了文档和一个工作示例。
import numpy as np
import matplotlib.pyplot as plt
data = [np.random.randn(1000), np.random.randn(1000)]
plt.scatter(data[0], data[1])
然后你可以对你的数据调用hist2d
,例如像这样
plt.hist2d(data[0], data[1], bins=20)
请注意,hist2d
的参数是两个一维数组,因此在将数据提供给 hist2d
之前,您必须对我们的数据进行一些整形。
仅使用 numpy 的快速解决方案,无需 matplotlib 和绘图:
import numpy as np
# given a 2dArray "array" and a desired image shape "[x,y]"
matrix = np.histogram2d(array[:,0], array[:,1], bins=[x,y])