Python-PCL笔记 -2 点云数据类型

#open3d版本传送

在PCL支持读取PLY、PCD、OBJ、VTK、IFS点云的存储格式。
在这里我们以最常用的PCD为例子来讨论一下点云的各种数据表示类型,在PCL中定义为以下几种:

  1. XYZ
  2. XYZI
  3. XYZRGB
  4. XYZRGBA
XYZ

使用N*3的矩阵来表示,每个点云的X,Y,Z信息为一行。

XYZI

使用N*4的矩阵来表示, 其中前三列为于XYZ一样的位置信息,第四列为Intensity 反射强度信息。

XYZRGB

使用N*4的矩阵来表示, 其中前三列为于XYZ一样的位置信息,第四列为RGB的颜色信息。 三种颜色只用了一个float32的数来表示,大大地节约了空间。 每8位表示一个颜色,具体的转换方法为:

#转换R,G,B值为颜色
def rgb2c(r,g,b):
    return r<<16 | g<<8 | b
# 或是用numpy的位移运算符
#   rgb = np.left_shift(r, 16) + np.left_shift(g, 8) + np.left_shift(b, 0)
#   return rgb
color=rgb2c(255,100,0) # 紫色
#转换颜色为R,G,B值
def c2rgb(color):
	r = color>>16 & 0x000ff
	g = color>>8 & 0x000ff
	b = color & 0x000ff
	return r,g,b

r,g,b=c2rgb(773184) 
XYZRGBA

和XYZRGB基本一样,只是数据类型不同。

你可能感兴趣的:(PCL)