VTK 结构化点集 vtkStructuredPoints

目录

引言:

Reader


引言:

今天朋友给了一份数据是OCT 采集到的数据, VTK 格式,但是我打不开;

用文本打开看了一下;

vtk DataFile Version 2.0

BINARY
DATASET STRUCTURED_POINTS
DIMENSIONS 512 512 512
SPACING 0.0035 0.00791947 0.010472
ORIGIN 0 0 0
POINT_DATA 134217728
SCALARS volume_scalars float 1
LOOKUP_TABLE default

搜索了一下,是结构化点集数据;

vtkStructuredPoints

vtkStructuredPoints类继承自vtkImageData,是图像数据的一种,要求数据范围与更新范围完全匹配。矢量图数据允许数据范围大于更新范围。StructuredPoints类对原点的定义也与vtkImageData不同。对于结构化点(structured points),原点是第一个点的位置。而图像将原点定义为点(0,0,0)的位置。图像原点存储在ivar中,结构化点具有Set/GetOrigin/Extents的特殊方法。
 

可以拿 它当 vtkImageData用;

Reader

vtkStructuredPointsReader

读取,转polydata

			 auto reader = vtkSmartPointer<vtkStructuredPointsReader>::New();
			 reader->SetFileName(pathTwo.toStdString().c_str());
			 reader->Update();

显示:

#include <vtkStructuredPointsReader.h>
#include <vtkStructuredPoints.h>
    
 // init imageview
	mImageView = vtkSmartPointer<vtkImageViewer2>::New();
	auto interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
	mImageView->SetRenderWindow(mVTKWidget->GetRenderWindow());
	mImageView->SetupInteractor(interactor);

 mImageView->SetInputData(reader->GetOutput());
			 mImageView->SetColorLevel(100);
			 mImageView->SetColorWindow(200);
	 
			 mImageView->SetSliceOrientationToYZ();
			 mImageView->GetRenderer()->SetBackground(0, 0, 0);
			 mImageView->SetSlice((mImageView->GetSliceMin() + mImageView->GetSliceMax()) / 2);
			 mImageView->Render();

转vtkPolydata 显示;

		 vtkSmartPointer<vtkImageDataGeometryFilter> geometryFilter =
				 vtkSmartPointer<vtkImageDataGeometryFilter>::New();
			 geometryFilter->SetInputConnection(reader->GetOutputPort());
			 geometryFilter->Update();

or

	vtkSmartPointer< vtkMarchingCubes > boneExtractor =
		vtkSmartPointer< vtkMarchingCubes >::New();
	boneExtractor->SetInputData(mImageOne);
 
	boneExtractor->SetValue(0, 30);
	//boneExtractor->SetNumberOfContours(1);
	boneExtractor->Update();
 

	//mVtkPolyData->DeepCopy(connectivityFilter->GetOutput());
	//剔除旧的或废除的数据单元,提高绘制速度(可略去这一步)  
	vtkSmartPointer< vtkStripper > boneStripper =
		vtkSmartPointer< vtkStripper >::New(); //三角带连接  
	boneStripper->SetInputConnection(boneExtractor->GetOutputPort());
	boneStripper->Update();
	mVtkPolyData->DeepCopy(boneStripper->GetOutput());


   		 mPolyMapper->SetInputData(mVtkPolyData);
		 mPolyMapper->ScalarVisibilityOff();
		 mPolyMapper->Update();
		 m3DRenderer->ResetCamera();
		 m3DRenderer->ResetCameraClippingRange();
		 m3DRenderer->ResetCamera();
		 m3DRenderer->Render();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

恋恋西风

up up up

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

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

打赏作者

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

抵扣说明:

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

余额充值