Python中如何将.ply点云深度叠加到.bmp文件并导出为.jpg格式?
TOF点云深度叠加到BMP图像的Python实现流程
这里优先推荐plyfile + OpenCV + NumPy的方案,兼容性远好于python-pcl和Open3D,无需处理编译依赖,可直接在Google Colab环境运行,具体操作如下:
1 环境安装
Colab终端执行以下命令安装依赖:!pip install plyfile opencv-python numpy
2 核心操作步骤
2.1 数据加载
- 读取BMP原图:用OpenCV读取后转换为RGB格式,避免颜色通道错乱
- 读取PLY点云:提取点云的X、Y、Z三维坐标,Z值即为对应点的深度数据
注:需确保你的点云与BMP图像已经完成配准,或持有TOF相机的内参矩阵用于后续投影转换
2.2 点云投影到图像平面
如果点云已对齐到图像坐标系:直接将点云的X、Y值映射为图像的像素坐标,过滤掉超出图像宽高范围的无效点。
如果未配准:用相机内参矩阵对三维点做投影计算,得到对应的像素坐标,公式如下:像素u = fx * X / Z + cx像素v = fy * Y / Z + cy
其中fx、fy为相机焦距,cx、cy为图像主点坐标,均为TOF相机出厂内置参数。
2.3 深度叠加可视化
- 将有效点的深度值做归一化处理,映射到0-255的数值范围
- 用OpenCV的
applyColorMap函数将归一化后的深度值转换为伪彩色图像 - 将伪彩色深度图与原BMP图像按权重融合,推荐原图权重0.7、深度图权重0.3,兼顾原图内容和深度信息的可读性
2.4 导出结果
将融合后的图像转换为BGR格式,用cv2.imwrite直接导出为jpg格式文件即可。
3 示例代码
import cv2 import numpy as np from plyfile import PlyData # 1. 加载数据 bmp_img = cv2.imread("your_image.bmp") bmp_rgb = cv2.cvtColor(bmp_img, cv2.COLOR_BGR2RGB) h, w = bmp_rgb.shape[:2] ply_data = PlyData.read("your_point_cloud.ply") x = ply_data['vertex']['x'] y = ply_data['vertex']['y'] z = ply_data['vertex']['z'] # 2. 点云投影(这里用已配准的情况示例) u = np.round(x).astype(int) v = np.round(y).astype(int) valid = (u >= 0) & (u < w) & (v >= 0) & (v < h) & (z > 0) u_valid = u[valid] v_valid = v[valid] z_valid = z[valid] # 3. 深度叠加 depth_norm = cv2.normalize(z_valid, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U) depth_color = cv2.applyColorMap(depth_norm, cv2.COLORMAP_JET) fusion_img = bmp_rgb.copy() for i in range(len(u_valid)): fusion_img[v_valid[i], u_valid[i]] = cv2.addWeighted(fusion_img[v_valid[i], u_valid[i]], 0.7, depth_color[i], 0.3, 0) # 4. 导出jpg fusion_img_bgr = cv2.cvtColor(fusion_img, cv2.COLOR_RGB2BGR) cv2.imwrite("fusion_result.jpg", fusion_img_bgr)
4 python-pcl实现方案
如果必须使用python-pcl,仅需修改点云加载部分的逻辑即可,投影和叠加逻辑与上述代码完全一致:
- Colab安装python-pcl命令:
!apt-get install libpcl-dev -y && pip install python-pcl - 点云加载代码:
import pcl cloud = pcl.load("your_point_cloud.ply") points = np.asarray(cloud) x = points[:, 0] y = points[:, 1] z = points[:, 2]
内容的提问来源于stack exchange,提问作者Sabbir Talukdar
相关产品推荐
相关产品推荐

