0
点赞
收藏
分享

微信扫一扫

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();

举报

相关推荐

0 条评论