Python实现点云投影到平面显示

yipeiwu_com7年前Python基础

值得学习的地方:

1.选择合法索引的方式

2.数组转图像显示

import numpy as np
from PIL import Image

#input : shape(N, 4)
#    (x, y, z, intensity)
def pointcloud2image(point_cloud):
  x_size = 640
  y_size = 640
  x_range = 60.0
  y_range = 60.0
  grid_size = np.array([2 * x_range / x_size, 2 * y_range / y_size])
  image_size = np.array([x_size, y_size])
  # [0, 2*range)
  shifted_coord = point_cloud[:, :2] + np.array([x_range, y_range])
  # image index
  index = np.floor(shifted_coord / grid_size).astype(np.int)
  # choose illegal index
  bound_x = np.logical_and(index[:, 0] >= 0, index[:, 0] < image_size[0])
  bound_y = np.logical_and(index[:, 1] >= 0, index[:, 1] < image_size[1])
  bound_box = np.logical_and(bound_x, bound_y)
  index = index[bound_box]
  # show image
  image = np.zeros((640, 640), dtype=np.uint8)
  image[index[:, 0], index[:, 1]] = 255
  res = Image.fromarray(image)
  # rgb = Image.merge('RGB', (res, res, res))
  res.show()

以上这篇Python实现点云投影到平面显示就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python实现的读写json文件功能示例

本文实例讲述了Python实现的读写json文件功能。分享给大家供大家参考,具体如下: 相比java,python对json文件的处理就简单很多。java操作json文件的话需要引用ja...

python 实现返回一个列表中出现次数最多的元素方法

如下所示: # 返回一个列表中出现次数最多的元素 def showmax(lt):     index1 = 0  ...

浅谈python requests 的put, post 请求参数的问题

浅谈python requests 的put, post 请求参数的问题

post, put请求的参数有两种形式 一种是把参数拼接在url中 对应postman 第二种是把参数放在body中 对应postman 在Python requests 库中 一般...

win10下安装Anaconda的教程(python环境+jupyter_notebook)

win10下安装Anaconda的教程(python环境+jupyter_notebook)

前言: 什么是anaconda?? Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 [1] 因为包含了大量的科学包...

Python处理时间日期坐标轴过程详解

Python处理时间日期坐标轴过程详解

1. 前言 当日期数据作为图表的坐标轴时通常需要特殊处理,应为日期字符串比较长,容易产生重叠现象 2. 设定主/次刻度 2.1 引用库 from matplotlib.date...