过滤器是一种数据处理机制,接收一个或多个输入,得到一个输出
过滤器类型|作用|demo
—|:–?:–?
vtkImageSobel2D|使用Sobel函数计算2D图像标量场中的矢量场|example4|
vtkImageLaplacian|计算标量图像的拉普拉斯算子|example5|
vtkImageHybridMedian2D|一种中值滤波器,可以保留图像的细线和角|example6|
vtkImageFFT|快速傅里叶变换|example7|
vtkImageRFFT|快速逆傅里叶变换|example8|
vtkImageIdealLowPass|在频域实现图像的低通滤波|example9|
vtkImageAnisotropicDiffusion2D|迭代扩散二位图像,保持边界平滑|example10|
vtkImageAccumulate|将组件空间划分成离散的|example11|
vtkImageConvolve|使用3D NxNxN内核或2D NxN内核对图像进行卷积。 输出图像被裁剪为与输入相同的大小|example12|
vtkImageGaussianSmooth|用高斯函数对输入图像进行卷积操作实现平滑|example13|
vtkImageShiftScale|移动像素(添加常数值)然后缩放(乘以标量)|example14|
vtkImageFlip|沿过滤轴反映数据|example15|
vtkImagePermute|重新排序输入的轴|example16|
vtkImageMirrorPad|通过使用原始图像的镜像(图像边界处的镜像)填充额外像素来使图像更大|example17|
vtkImageMagnify|将输入的每个像素映射到输出的nxmx …区域|example18|
vtkShrinkPolyData|将图形中的所有三角面片缩小一定的比例,但整个图形的大小没有变,这就使得图中出现龟裂|example19
注意:表格中的过滤器都可用于处理2D图像数据,也可以用于处理三维体数据
相机和光照是三维场景中不可缺少的元素,render会创建默认的相机和光照
//创建相机
vtkSmartPointer myCamer = vtkSmartPointer::New();
//设定远、近裁减平面
myCamer->SetClippingRange(0.01,1000);
//设定焦点位置
myCamer->SetFocalPoint(0.0,0.0,0.0);
//设定相机位置
myCamer->SetPosition(0.0,1.0,0.0);
//设定相机向上方向
myCamer->SetViewUp(0.0,0.0,1.0);
//设定视平面法线
myCamer->ComputeViewPlaneNormal();
//设定视角(角度)
myCamer->SetEyeAngle(30);
//创建绘制者对象
vtkSmartPointer ren1 = vtkSmartPointer::New();
//将相机设为活动相机
ren1->SetActiveCamera(myCamer);
//重置相机,使观察方向生效(很重要)
ren1->ResetCamera();
//沿着经线方向移动相机
myCamer->Azimuth(120);
//沿着纬线线方向移动相机
myCamer->Elevation(60);
//强迫观察方向和观察的向上方向正交,避免观察的向上方向和观察方向平行而产生异常
myCamer->OrthogonalizeViewUp();
//设定相机使用正交投影
myCamer->ParallelProjectionOn();
//创建光源
vtkSmartPointer myLight = vtkSmartPointer::New();
//设定光源位置点
myLight->SetPosition(0,0,10);
//设定光源照射点
myLight->SetFocalPoint(0,0,0);
//漫反射光颜色
myLight->SetDiffuseColor(1.0,1.0,0.0);
//环境光颜色
myLight->SetAmbientColor(1.0,1.0,1.0);
//设置点光源
myLight->SetPositional(30);
//创建绘制者对象
vtkSmartPointer ren1 = vtkSmartPointer::New();
//设置光源
ren1->AddLight(myLight);
代码附件如下:
https://vtk.org/Wiki/VTK/Examples/Cxx