[open3d]点云投影2D图像
输入:三维点云
输出:2D DSM
import open3d as o3d import numpy as np import cv2 #读取点云,转换为栅格图像 #将栅格图像分块 resolution = 0.2 save_path = r"dsm.png" print("->正在加载点云... ") m_pc = o3d.io.read_point_cloud("WHU.ply") print(m_pc) print('体素化') points = np.asarray(m_pc.points) # 将点云数据转化为 numpy 数组 print("数组形状:", points.shape) # 输出数组的形状(行列数) x = points[:, 0] y = points[:, 1] z = points[:, 2] # 获取栅格范围 xmin, xmax = np.nanmin(x), np.nanmax(x) ymin, ymax = np.nanmin(y), np.nanmax(y) # 创建栅格, dtype=np.uint8 arr_width = int((xmax - xmin) / resolution) arr_height = int((ymax - ymin) / resolution) img = np.zeros((arr_height, arr_width)) # xyz转行列号 for i in range(0, x.shape[0]): col = int((x[i] - xmin) / resolution) row = int((y[i] - ymin) / resolution) if (col < 0 or col >= arr_width): continue if (row < 0 or row >= arr_height - 1): continue img[row][col] = 255#注意此处转换为二值图 cv2.imwrite(save_path, img) cv2.namedWindow("img", 0) cv2.resizeWindow("img", 400, 300) # 设置窗口大小 cv2.imshow("img", img) cv2.waitKey(0)
作者:太一吾鱼水
文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。
欢迎大家留言交流,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2022-09-05 Revit二次开发——读取shp
2022-09-05 Revit2018二次开发——外部工具不显示