3D 数据的获取和读入 ...

本文介绍如何从一系列二维数据构建三维数据,并详细说明了两种方法:一是利用Amiri软件转换,二是通过Matlab进行处理。此外,还提供了如何在Matlab中读取并处理nii格式文件的具体步骤。

1. 3D 数据获取:

前提:有一序列的二维数据,如1.dcm,……,n.dcm。

方法1:使用Amiri软件将n个二维数据读入,再另存为nii数据即可。

方法2:使用matlab读入该序列数据,在用3维数据存储。

2. 3D 数据读入到Matlab

前提:有nii文件

方法:step1.下载nii工具包。可搜索NIfTI。step2.将该工具包添加入matlab的toolbox路径下。step3.读入nii数据可使用:load_nii函数。

<span style="font-size:12px;">im = load_nii('1.nii');</span>

注意:若读入的是dcm数据生成的nii文件,则需要加一步step4:将uint16类型的数据转变成uint8类型的数据。

im = double(im.img);
imvec = im(:);
maxx = max(imvec);
im = im./maxx;
Img = uint8(255.*im);

为了方便后续程序处理,可以将其保存,以后可以直接使用,无需每次执行上述过程。

save Img.mat Img


转载于:https://www.cnblogs.com/helay/p/7133959.html

### MMDetection3D BBox 模块解析 #### 三维边界框处理模块概述 `mmdet3d.core.bbox` 是 MMDetection3D 的核心组成部分之一,主要用于处理三维空间中的目标检测任务所需的边界框操作。该模块提供了多种工具类函数来支持不同类型的三维边界框表示方法及其转换逻辑[^1]。 #### 主要子模块与功能描述 - **编码解码器 (Coder)** 实现了从真实坐标到网络预测值之间的相互转化过程,包括但不限于旋转角度、尺寸大小等方面的调整计算。 - **采样策略 (Sampler)** 定义如何从未标注数据集中选取样本作为正负例参与训练;同时也包含了针对特定场景下的特殊取舍机制。 - **分配算法 (Assigner)** 负责决定哪些候选区域应该归属于哪个类别标签之下,并据此生成最终的学习目标向量。 - **几何运算库 (Geometry Operations Library)** 支持基本的空间变换如平移缩放旋转变换等功能的同时还实现了复杂度较高的碰撞检测等高级特性。 #### 使用实例展示 下面给出一段简单的 Python 代码片段用来加载预训练好的 PointPillars 模型并调用 `bbox_coder` 进行推理: ```python from mmdet3d.models import build_detector import torch from mmcv.runner import load_checkpoint from mmdet3d.datasets.pipelines import Compose from pathlib import Path config_file = 'configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-3class.py' checkpoint_path = 'checkpoints/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.pth' model = build_detector(config_file, test_cfg=None) load_checkpoint(model=model, filename=checkpoint_path, map_location='cpu') pipeline = Compose([ dict(type='LoadPointsFromFile'), ]) data_info = {'pts_filename': str(Path('demo/data/kitti/000008.bin'))} result = pipeline(data_info) input_tensor = result['points'].to(device=torch.device('cuda')) output_dict = model(return_loss=False, rescale=True, points=[input_tensor]) bboxes = output_dict[0]['boxes_3d'] scores = output_dict[0]['scores_3d'] print(f"BBoxes shape: {bboxes.tensor.shape}") print(f"Scores max value: {torch.max(scores)}") ``` 此段脚本展示了如何利用官方提供的接口完成一次完整的前向传播流程,其中包括读入点云文件、应用数据增强管线以及最后获取模型输出结果等多个环节[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值