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

yipeiwu_com6年前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与Java间Socket通信实例代码

Python与Java间Socket通信   之前做过一款Java的通讯工具,有发消息发文件等基本功能.可大家也都知道Java写的界面无论是AWT或Swing,那简直不是人看的,对于我们...

简单谈谈Python中的闭包

Python中的闭包 前几天又有人留言,关于其中一个闭包和re.sub的使用不太清楚。我在【听图阁-专注于Python设计】搜索了下,发现没有写过闭包相关的东西,所以决定总结一下,完善P...

Django后台获取前端post上传的文件方法

Django后台获取前端post上传的文件方法

由于初学Django所以对于其特有的表单模板和models中的filefiled并不是特别熟悉。因此在本次开发中还是依照以往自己在html中写好图片提交表单: 注意在<form&...

python实现整数的二进制循环移位

python实现整数的二进制循环移位

题目:如何在python中实现整数的二进制循环移位? 概述 在python中,可以通过<<以及>>运算符实现二进制的左移位以及右移位,然而并没有实现循环移位的运算...

带你彻底搞懂python操作mysql数据库(cursor游标讲解)

带你彻底搞懂python操作mysql数据库(cursor游标讲解)

1、什么是游标? 一张图讲述游标的功能: 图示说明: 2、使用游标的好处? 如果不使用游标功能,直接使用select查询,会一次性将结果集打印到屏幕上,你无法针对结果集做第二次编...