【VTK图像处理】

VTK: Image Processing & Visualization图像处理和显示概述

*
前言
1.手动创建vtkImageData
2.数据二次采样 Subsampling Image Data
3.包装向量数据,形成图片
4.图片显示
5.图片来源
6.图片处理

前言

VTK的图像数据存储在 vtkImageData类中。 vtkImageData数据由体积元素 voxel (vtkVoxel) 或者像素单元 pixel (vtkPixel) cell组成。

vtkImageData数据是由 dimensions(尺寸—轴上体积元素或者像素的数量), spacing(间隔), origin(原点).

【VTK图像处理】
VTK的图像处理一般分为三种:图像处理,图形抽取,和直接渲染。它们的输入输出如下图:
【VTK图像处理】

; 1.手动创建vtkImageData

1.已有数据Data,创建vtkImageData

C++:

vtkUnsignedCharArray *array = vtkUnsignedCharArray::New();
array->SetArray( data, size[0]*size[1]*size[2], 1);

imageData = vtkImageData::New();
imageData->GetPointData()->SetScalars(array);
imageData->SetDimensions(size);
imageData->SetScalarType(VTK_UNSIGNED_CHAR);
imageData->SetSpacing(1.0, 1.0, 1.0 );
imageData->SetOrigin(0.0, 0.0, 0.0 );

2.直接用vtkImageData创建数据

C++

 vtkImageData *id = vtkImageData::New();
 id->SetDimensions(10,25,100);
 id->SetScalarTypeToUnsignedShort();
 id->SetNumberOfScalarComponents(1);
 id->AllocateScalars();

 unsigned short *ptr = (unsigned short *) id->GetScalarPointer();
 for (int i=0; i<10*25*100; i++)
 {
 *ptr++ = i;
 }

2.数据二次采样 Subsampling Image Data

涉及采样的过滤filter方法有vtkExtractVOI ,vtkImageClip, vtkImageReslice
流程:
vtkSampleFunction→vtkExtractVOI→vtkContourFilter→vtkPolyDataMapper

3.包装向量数据,形成图片

涉及过滤filter:vtkImageDataGeometryFilter
流程:
vtkPolyData→vtkImageDataGeometryFilter→vtkWarpScalar→vtkPolyDataMapper
vtkWindowLevelLookupTable→vtkPolyDataMapper

4.图片显示

1.自创窗口,vtkImageViewer2,里面包含vtkInteractorStyleImage
2.vtkImageActor+rendering window
3.vtkImagePlaneWidget可以创建plane平面

5.图片来源

根据不同特征创建空白图片:
ImageCanvasSource2D 画布
ImageEllipsoidSource椭圆
ImageGaussianSource高斯模糊
ImageGridSource方格
ImageNoiseSource随机早点
ImageSinusoidSource正弦

6.图片处理

  1. 转化标量类型Convert Scalar Type:
    vtkImageCast and ClampOverflow
    vtkImageShiftScale
  2. 改变间隔,原点以及延展Change Spacing, Origin, or Extent
    vtkImageChangeInformation
  3. 图片叠加 vtkImageAppend
  4. 改变图像Map Image to Color
    vtkImageMapToColors灰色图片变成彩色图
  5. 亮度改变 Image Luminance vtkImageLuminance
  6. 直方图 Histogram vtkImageAccumulate
  7. 图像逻辑处理Image Logic, including AND, OR, XOR,
    NAND, NOR, and NOT. T
  8. Gradient vtkImageGradient
  9. 高斯平滑 Gaussian Smoothing
  10. 图像翻转 Image Flip vtkImageFlip
  11. 图像置换 Image Permute vtkImagePermute
  12. 图像数学操作 Image Mathematics 提供基本的数学操作
  13. Image Reslice 图片切片重组
  14. vtkImageIterator类实现迭代器方法访问图像像素

Original: https://blog.csdn.net/weixin_43436157/article/details/124122221
Author: When it is ready
Title: 【VTK图像处理】

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641506/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球