本文整理汇总了C++中typenamefiltertype::Pointer::AddSeed2方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::AddSeed2方法的具体用法?C++ Pointer::AddSeed2怎么用?C++ Pointer::AddSeed2使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类typenamefiltertype::Pointer
的用法示例。
在下文中一共展示了Pointer::AddSeed2方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isolatedConnectedImageFilterITK
void IsolatedConnectedImageFilterITK::isolatedConnectedImageFilterITK() {
replaceValue_.setVolume(inport1_.getData());
isolatedValueTolerance_.setVolume(inport1_.getData());
upper_.setVolume(inport1_.getData());
lower_.setVolume(inport1_.getData());
if (!enableProcessing_.get()) {
outport1_.setData(inport1_.getData(), false);
return;
}
typedef itk::Image<T, 3> InputImageType1;
typedef itk::Image<T, 3> OutputImageType1;
typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData());
//Filter define
typedef itk::IsolatedConnectedImageFilter<InputImageType1, OutputImageType1> FilterType;
typename FilterType::Pointer filter = FilterType::New();
filter->SetInput(p1);
if (seedPointPort1_.hasChanged()) {
const PointListGeometry<tgt::vec3>* pointList1 = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort1_.getData());
if (pointList1) {
seedPoints1 = pointList1->getData();
}
}
filter->ClearSeeds1();
typename InputImageType1::IndexType seed1;
for (size_t i = 0; i < seedPoints1.size(); i++) {
seed1[0] = seedPoints1[i].x;
seed1[1] = seedPoints1[i].y;
seed1[2] = seedPoints1[i].z;
filter->AddSeed1(seed1);
}
if (seedPointPort2_.hasChanged()) {
const PointListGeometry<tgt::vec3>* pointList2 = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort2_.getData());
if (pointList2) {
seedPoints2 = pointList2->getData();
}
}
filter->ClearSeeds2();
typename InputImageType1::IndexType seed2;
for (size_t i = 0; i < seedPoints2.size(); i++) {
seed2[0] = seedPoints2[i].x;
seed2[1] = seedPoints2[i].y;
seed2[2] = seedPoints2[i].z;
filter->AddSeed2(seed2);
}
filter->SetReplaceValue(replaceValue_.getValue<T>());
filter->SetIsolatedValueTolerance(isolatedValueTolerance_.getValue<T>());
filter->SetUpper(upper_.getValue<T>());
filter->SetLower(lower_.getValue<T>());
filter->SetFindUpperThreshold(findUpperThreshold_.get());
observe(filter.GetPointer());
try
{
filter->Update();
}
catch (itk::ExceptionObject &e)
{
LERROR(e);
}
Volume* outputVolume1 = 0;
outputVolume1 = ITKToVoreenCopy<T>(filter->GetOutput());
if (outputVolume1) {
transferRWM(inport1_.getData(), outputVolume1);
transferTransformation(inport1_.getData(), outputVolume1);
outport1_.setData(outputVolume1);
} else
outport1_.setData(0);
}