本文整理汇总了C++中transformtype::Pointer::SetAngleInDegrees方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::SetAngleInDegrees方法的具体用法?C++ Pointer::SetAngleInDegrees怎么用?C++ Pointer::SetAngleInDegrees使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类transformtype::Pointer
的用法示例。
在下文中一共展示了Pointer::SetAngleInDegrees方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
catch( itk::ExceptionObject & err )
{
std::cerr << "ERROR: ExceptionObject caught !" << std::endl;
std::cerr << err << std::endl;
return EXIT_FAILURE;
}
}
}
if (!image) {
std::cerr << argv[0] << ": input output" << std::endl;
exit(1);
}
typedef itk::SigmoidImageFilter< InputImageType, FilterImageType > SigmoidCasterType;
SigmoidCasterType::Pointer sigmoidcaster = SigmoidCasterType::New();
sigmoidcaster->SetInput( image );
sigmoidcaster->SetOutputMaximum( 4000 );
sigmoidcaster->SetOutputMinimum( 1000 );
typedef itk::AccumulateImageFilter< FilterImageType, FilterImageType > AccumulateFilter;
AccumulateFilter::Pointer accumulator = AccumulateFilter::New();
accumulator->SetAccumulateDimension(1);
accumulator->SetInput( sigmoidcaster->GetOutput() );
typedef itk::ExtractImageFilter< FilterImageType, OutFilterImageType > ExtractFilter;
ExtractFilter::Pointer extractor = ExtractFilter::New();
extractor->SetInput( accumulator->GetOutput() );
FilterImageType::Pointer accuOut = accumulator->GetOutput();
accuOut->UpdateOutputInformation();
FilterImageType::RegionType extractRegion = accuOut->GetLargestPossibleRegion();
extractRegion.SetSize(1,0);
extractor->SetExtractionRegion( extractRegion );
typedef itk::ResampleImageFilter<OutFilterImageType, OutFilterImageType > ResampleFilter;
ResampleFilter::Pointer resampler = ResampleFilter::New();
resampler->SetInput( extractor->GetOutput() );
typedef itk::BSplineInterpolateImageFunction< OutFilterImageType > InterpolatorType;
InterpolatorType::Pointer interpolator = InterpolatorType::New();
interpolator->SetSplineOrder(3);
resampler->SetInterpolator( interpolator );
OutFilterImageType::Pointer exOut = extractor->GetOutput();
exOut->UpdateOutputInformation();
typedef itk::CenteredRigid2DTransform< double > TransformType;
TransformType::Pointer transform = TransformType::New();
transform->SetIdentity();
OutFilterImageType::PointType exOutCenter = exOut->GetOrigin();
exOutCenter[0] += (exOut->GetLargestPossibleRegion().GetSize()[0]-1) * exOut->GetSpacing()[0] *.5;
exOutCenter[1] += (exOut->GetLargestPossibleRegion().GetSize()[1]-1) * exOut->GetSpacing()[1] *.5;
transform->SetCenter( exOutCenter );
transform->SetAngleInDegrees( 180 );
resampler->SetTransform( transform );
resampler->SetOutputParametersFromImage( exOut );
OutFilterImageType::SpacingType resampleSpacing = exOut->GetSpacing();
resampleSpacing.Fill( std::min( resampleSpacing[0], resampleSpacing[1] ) );
OutFilterImageType::SizeType resampleSize;
resampleSize[0] = exOut->GetLargestPossibleRegion().GetSize()[0] * exOut->GetSpacing()[0] / resampleSpacing[0];
resampleSize[1] = exOut->GetLargestPossibleRegion().GetSize()[1] * exOut->GetSpacing()[1] / resampleSpacing[1];
resampler->SetSize( resampleSize );
resampler->SetOutputSpacing( resampleSpacing );
OutFilterImageType::Pointer result = resampler->GetOutput();
sigmoidcaster->SetBeta( -500 );
sigmoidcaster->SetAlpha( 5 );
result->Update();
int outDicomIndex = 0;
itk::EncapsulateMetaData( dict, "0008|0008", string("DERIVED\\SECONDARY\\AXIAL"));
boost::filesystem::path outpath = output_dir;
outpath = outpath / "IM%06d";
std::vector< itk::MetaDataDictionary* > dictArray;
dictArray.push_back(&dict);
itkBasic::writeDicomSeries( itkBasic::ImageRescale(itkBasic::ImageSharp(result, 0.5), -1000, 4000), outpath.string(), &dictArray, outDicomIndex);
// itkBasic::ImageSave( itkBasic::ImageSharp(result, 0.5), boost::str( boost::format("%s.%s.png") % output_name % "lung" ), 1, 0); // Auto Level
sigmoidcaster->SetBeta( 1000 );
sigmoidcaster->SetAlpha( 300 );
result->Update();
itkBasic::writeDicomSeries( itkBasic::ImageRescale(itkBasic::ImageSharp(result, 0.5), -1000, 4000), outpath.string(), &dictArray, outDicomIndex);
// itkBasic::ImageSave( itkBasic::ImageSharp(result, 0.5), boost::str( boost::format("%s.%s.png") % output_name % "bone" ), 1, 0); // Auto Level
sigmoidcaster->SetBeta( 0 );
sigmoidcaster->SetAlpha( 2000 );
result->Update();
itkBasic::writeDicomSeries( itkBasic::ImageRescale(itkBasic::ImageSharp(result, 0.5), -1000, 4000), outpath.string(), &dictArray, outDicomIndex);
// itkBasic::ImageSave( itkBasic::ImageSharp(result, 0.5), boost::str( boost::format("%s.%s.png") % output_name % "normal" ), 1, 0); // Auto Level
}
示例2: main
//.........这里部分代码省略.........
Orientator::OrientatedKeyPointList keyPoints = keyPointIt->second;
// smooth the image to the sigma level
typedef itk::DiscreteGaussianImageFilter<utils::ImageSlice, utils::RealSlice> Smoother;
Smoother::Pointer smoother = Smoother::New();
smoother->SetInput(extractedSlice);
smoother->SetVariance(sigma*sigma);
smoother->SetUseImageSpacingOn();
typedef itk::GradientRecursiveGaussianImageFilter<RealSlice, GradientType> GradientFilterType;
GradientFilterType::Pointer gradientFilter = GradientFilterType::New();
gradientFilter->SetInput(smoother->GetOutput());
//gradientFilter->SetSigma(sigma);
gradientFilter->Update();
std::cout << "Doing Sigma " << sigma << " Key Point Number: " << keyPoints.size() << std::endl;
for(unsigned int fnum = 0; fnum < keyPoints.size(); fnum++)
{
Orientator::OrientatedKeyPoint keyPoint = keyPoints[fnum];
// build the tranform
typedef itk::CenteredRigid2DTransform<double> TransformType;
TransformType::Pointer transform = TransformType::New();
transform->SetCenter(keyPoint.location);
transform->SetAngleInDegrees(360-keyPoint.degrees);
// extract the patch from the gradient image
typedef filter::ImagePatchExtractor<GradientType> PatchExtractorType;
PatchExtractorType::Pointer patchExtractor = PatchExtractorType::New();
patchExtractor->SetInput(gradientFilter->GetOutput());
patchExtractor->SetTransform(transform);
patchExtractor->SetScale(keyPoint.scale*2);
PatchExtractorType::SizeType patchSize;
patchSize.Fill(10);
patchExtractor->SetPatchSize(patchSize);
patchExtractor->SetInputPoint(keyPoint.location);
patchExtractor->Update();
/*
// validate the keypoint
typedef filter::StructureTensorKeyPointValidator<utils::ImageSlice> ValidatorType;
ValidatorType::Pointer validator = ValidatorType::New();
validator->SetInput(extractedSlice);
validator->SetKeyPoint(keyPoint);
validator->SetRatio(validatorBeta);
validator->Update();
bool valid = validator->IsValid();
*/
// create the descriptor
FeatureBuilderType::Pointer builder = FeatureBuilderType::New();
builder->SetInput(patchExtractor->GetOutput());