VTK: STL (vtkPolyData) 转 Mask(vtkImageData)

STL到Mask转换技巧

项目中需要将分割结果的STL转换成Mask,以方便用户对其进行必要的调整。

vtkPolyData 转 vtkImageData 的方法见VTK官网中有相关的例子。

需要注意的几点:

1、转换后结果的数据类型和参考数据相同,如下代码中的maskImage;

2、 vtkPolyData 的数据原点(mask转polydata时)与 maskImage必须相同;

void Stl2Mask()
{

	double spacing[3] = {0.71875,0.71875,1.0};
	double origin[3] = { -172.64,-315.14,-355 };
	int dim[3] = { 512,512,295 };

	origin[0] = -dim[0] * spacing[0] * 0.5;
	origin[1] = -dim[1] * spacing[1] * 0.5;
	origin[2] = -dim[2] * spacing[2] * 0.5;

    // 创建参考vtkImageData
	vtkNew<vtkImageData> maskImage;
	maskImage->SetSpacing(spacing);
	maskImage->SetDimensions(dim);
	maskImage->SetExtent(0, dim[0] - 1, 0, dim[1] - 1, 0, dim[2] - 1);
	maskImage->SetOrigin(origin);
	maskImage->AllocateScalars(VTK_UNSIGNED_CHAR, 1);
	void *ptrMak = maskImage->GetScalarPointer();
	memset(ptrMak, 255, dim[0] * dim[1] * dim[2]);
    
    // 读STL文件
    vtkNew<vtkSTLReader> reader;
	reader->SetFileName("P:\\肺.stl
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值