11 - 改变vtkImageData中的Manipulation 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变。这其中就包括关于vtkImageData中元数据管理及内存分配的方法。这些方法有些直接改变了行为或者能加了额外的参数。
- GetScalarTypeMin()
- GetScalarTypeMax()
- GetScalarType()
- SetScalarType(int scalar_type)
- GetNumberOfScalarComponents()
- SetNumberOfScalarComponents(int n)
- AllocateScalars()
GetNumberOfScalarComponents(), GetScalarType(), GetScalarTypeMin() and GetScalarTypeMax()
这些方法被用来返回vtkImageData中灰度组件的个数、灰度值类型、灰度值的最小/最大值。在灰度内存被分配之前,这些方法无法返回正确的信息(例如在RequestInformation)。如果想要在RequestData(分配内存之前)获得灰度类型,你可以给GetScalarType()方法的参数中传入 管道信息(vtkInformation)就可以取得。
例子1:
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkImageData* output = this->GetOutput();
output->GetScalarType();
output->GetNumberOfScalarComponents();
替换成:
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkInformation* outInfo = outInfoVec->GetInformationObject();
vtkImageData::GetScalarType(outInfo);
vtkImageData::GetNumberOfScalarComponents(outInfo);
例子1:
int vtkMyAlg::RequestData(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkImageData* output = vtkImageData::GetData(outInfoVec);
// Allocate output scalars here
output->GetScalarType();
output->GetNumberOfScalarComponents();
SetScalarType() and SetNumberOfScalarComponents()
SetScalarType() and SetNumberOfScalarComponets()先前被用来设置管道信息中的灰度值元数据。在 VTK6 中,SetPointDataActiveScalarInfo()可以做同样的事情。
例子1:
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkImageData* output = this->GetOutput();
output->SetScalarType(VTK_UNSIGNED_CHAR);
output->SetNumberOfScalarComponents();
return ;
}
替换成:
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkInformation* outInfo = outInfoVec->GetInformationObject();
vtkDataObject::SetPointDataActiveScalarInfo(
outInfo, VTK_UNSIGNED_CHAR, );
return ;
}
AllocateScalars()
在VTK6 之前,AllocateScalars()配合SetScalarType() and SetNumberOfScalarComponents()一起使用。但是在VTK6 中,AllocateScalars()不再访问管道信息,需要传入灰度类型及灰度个数去分配内存。
例子1:
// set the extent of the image data first
imageData->SetScalarTypeToFloat();
imageData->SetNumberOfScalarComponents();
imageData->AllocateScalars();
替换成:
// set the extent of the image data first
imageData->AllocateScalars(VTK_FLOAT, );
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkImageData* output = this->GetOutput();
output->SetScalarType(VTK_UNSIGNED_CHAR);
output->SetNumberOfScalarComponents();
return ;
} int vtkMyAlg::RequestData(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkImageData* output = this->GetOutput();
output->AllocateScalars();
替换成:
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkInformation* outInfo = outInfoVec->GetInformationObject();
vtkDataObject::SetPointDataActiveScalarInfo(
outInfo, VTK_UNSIGNED_CHAR, );
return ;
} int vtkMyAlg::RequestData(vtkInformation*, vtkInformationVector**,
vtkInformationVector* outInfoVec)
{
vtkInformation* outInfo = outInfoVec->GetInformationObject();
vtkImageData* output = vtkImageData::GetData(outInfoVec);
output->AllocateScalars(outInfo);
11 - 改变vtkImageData中的Manipulation 方法 VTK 6.0 迁移的更多相关文章
- 08 - 删除vtkDataObject中的SetWholeExtent() 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中之一就是SetWholeExtent().SetWholeExtent()方法先前被用来管理结构话数据 ...
- 05 - 替换vtkDataObject中的Update方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.下面讨论update方法并提供迁移现有代码的建议. Update() vtkDataObject::Upd ...
- 03 - 替换vtkDataObject中的GetProducerPort()方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的一个方法就是GetProducerPort(). 一般,先前使用这个方法如下例子: vtkPolyD ...
- 10 - 删除vtkDataObject中的Update Extent方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.下面列出来的就是其中的一些方法: SetUpdateExtent(int piece, int numPi ...
- 09 - 删除vtkDataObject中的ShouldIReleaseData() and ReleaseDataFlag 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.下面列出来的就是其中的一些方法: ShouldIReleaseData() SetReleaseDataF ...
- 07 - 删除vtkDataObject中的SetExtentTranslator 和 GetExtentTranslator方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的两个方法就是SetExtentTranslator() 和 GetExtentTranslator( ...
- 04 - 替换vtkDataObject中的GetPipelineInformation 和GetExecutive 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的两个方法就是GetPipelineInformation() 和 GetExecutive().这些 ...
- 02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
VTK6 引入了许多不兼容的变化,这其中就包括用SetInputData()和SetInputConnection()替换SetInput()方法.在先前的版本中,VTK4 引入了SetInput() ...
- 01 - 概述 VTK 6.0 迁移
摘要 对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives.分离数据和执行模型的代码后,可以双双简化修改 ...
随机推荐
- 英蓓特Mars board的android4.0.3源码编译过程
英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...
- 分享一个linux和linux的文件传输【scp无密码传输】
很多时候,本地测试服务器想把文件传到线上服务器的时候,很多人都是通过登陆线上服务器ssh 传输,这样挺危险的,很多弊端....所以我找了下方法,发现scp挺好用的! 模拟环境: 192.168.147 ...
- Bulk Insert 高效快速插入数据
BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_nam ...
- [PWA] 13. New db and object store
Create a db: import idb from 'idb'; var dbPromise = idb.open('test-db', 2, function (upgradeDb) { sw ...
- linux 下各errno的意义
strerror(errno):获取errno对应的错误 #include <string.h> /* for strerror */ #include <errno.h> # ...
- 关于Daydream VR的最直白的介绍
虚拟现实(Virtual Reality),简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三度空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户如同身历其境一般,电脑可以立即进行复杂的运算,将精 ...
- BeautifulSoup在Windows下安装(running 2to3)
在windows下安装beautifulsoup经常会出现说是在python3下无法运行Python2的代码,这时需要将Python下的tool下的scripts目录添加到环境变量中,然后运行2to3 ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- Android Xutils 框架
XUtils是git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少,下面是介绍: 鉴于大家的热情,我又写了一篇Android 最火框架XUtils之注解机 ...
- C#解leetcode 53.Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest ...