VTK笔记20160726(2)
2016-07-26 09:17
435 查看
vtkImageActor接收的图像数据vtkImageData像素类型必须为unsigned char,类型不符必须先转换。设置透明度的函数SetOpacity();遍历图像像素
vtkSmartPointer<vtkBMPReader> reader = vtkSmartPointer<vtkBMPReader>::New();
reader->SetFileName(argv[1]); reader->Update(); int dims[3]; reader->GetOutput()->GetDimensions(dims);
//获取像素元组组分,就是一个像素点用几个数来表示,RGB就有三个数来表示一个像素 int nbOfComp; nbOfComp = reader->GetOutput()->GetNumberOfScalarComponents(); for(int k=0; k<dims[2]; k++) { for(int j=0; j<dims[1]; j++) { for(int i=0; i<dims[0]; i++) { if(i<100 && j<100) { unsigned char * pixel = (unsigned char *) ( reader->GetOutput()->GetScalarPointer(i, j, k) ); *pixel = 0; *(pixel+1) = 0; *(pixel+2) = 0; } } } }将像素值数组的头指针类型转换为unsigned char*迭代器方法:
reader->SetFileName ( argv[1] ); reader->Update(); int subRegion[6] = {0,300, 0, 300, 0, 0};//x,y,z起始终止范围,二维图像没Z vtkImageIterator<unsigned char> it(reader->GetOutput(), subRegion); while(!it.IsAtEnd()) {
unsigned char *inSI = it.BeginSpan();//当前像素元组 unsigned char *inSIEnd = it.EndSpan(); while(inSI != inSIEnd) { *inSI = 255-*inSI; ++inSI; } it.NextSpan(); }感兴趣区域提取reader->SetFileName (argv[1]);reader->Update();int dims[3];reader->GetOutput()->GetDimensions(dims);vtkSmartPointer<vtkExtractVOI> extractVOI =vtkSmartPointer<vtkExtractVOI>::New();extractVOI->SetInputConnection(reader->GetOutputPort());
//6个参数,XYZextractVOI->SetVOI(dims[0]/4.,3.*dims[0]/4.,dims[1]/4.,3.*dims[1]/4., 0, 0);extractVOI->Update();vtkSmartPointer<vtkImageActor> originalActor =vtkSmartPointer<vtkImageActor>::New();originalActor->SetInput(reader->GetOutput());vtkSmartPointer<vtkImageActor> voiActor =vtkSmartPointer<vtkImageActor>::New();voiActor->SetInput(extractVOI->GetOutput());
相关文章推荐
- linux中 qt5 的环境搭建
- Ubuntu上安装Qt5
- 第24章 VTK(一)
- 第24章 VTK(二)
- vtkGPUVolumeRayCastMapper (Examples)
- vtk中实现裁剪
- VTK输出AVI录像文件要点
- VTK中文解决方案
- vtk学习笔记 --- 显示label之vtkLabelPlacementMapper
- 实现图像的缩放
- VTK类视频 切片移动直线获取灰度值
- vtk实现保存窗口为图像
- QT与VTK的结合开发(2)
- VTK学习笔记之图像处理
- 利用VTK显示文件读取进度模态对话框
- vtk交互
- vtk计算Polydata的面积和体积
- vtk获取内存中图像数据
- VTK拾取相关的类
- vtk 图像处理 多种 操作