本文整理汇总了C++中typenameimagetype::Pointer::GetSpacing方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::GetSpacing方法的具体用法?C++ Pointer::GetSpacing怎么用?C++ Pointer::GetSpacing使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类typenameimagetype::Pointer
的用法示例。
在下文中一共展示了Pointer::GetSpacing方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetVoxelSpaceToRASPhysicalSpaceMatrix
TransformMatrixType GetVoxelSpaceToRASPhysicalSpaceMatrix(typename ImageType::Pointer image)
{
// Generate intermediate terms
vnl_matrix<double> m_dir, m_ras_matrix;
vnl_diag_matrix<double> m_scale, m_lps_to_ras;
vnl_vector<double> v_origin, v_ras_offset;
// Compute the matrix
m_dir = image->GetDirection().GetVnlMatrix();
m_scale.set(image->GetSpacing().GetVnlVector());
m_lps_to_ras.set(vnl_vector<double>(ImageType::ImageDimension, 1.0));
m_lps_to_ras[0] = -1;
m_lps_to_ras[1] = -1;
m_ras_matrix = m_lps_to_ras * m_dir * m_scale;
// Compute the vector
v_origin = image->GetOrigin().GetVnlVector();
v_ras_offset = m_lps_to_ras * v_origin;
// Create the larger matrix
TransformMatrixType mat;
vnl_vector<double> vcol(ImageType::ImageDimension+1, 1.0);
vcol.update(v_ras_offset);
mat.SetIdentity();
mat.GetVnlMatrix().update(m_ras_matrix);
mat.GetVnlMatrix().set_column(ImageType::ImageDimension, vcol);
return mat;
}
示例2: operator
void operator()(Parameters& params)
{
typedef typename ::itk::Image< PIXELTYPE, 3 > ImageType;
const typename ImageType::Pointer itkImage = ::fwItkIO::itkImageFactory< ImageType >(params.i_image);
typename ::itk::ResampleImageFilter<ImageType, ImageType>::Pointer resampler =
::itk::ResampleImageFilter<ImageType, ImageType>::New();
typename ::itk::MinimumMaximumImageCalculator< ImageType >::Pointer minCalculator =
::itk::MinimumMaximumImageCalculator< ImageType >::New();
minCalculator->SetImage(itkImage);
minCalculator->ComputeMinimum();
resampler->SetDefaultPixelValue(minCalculator->GetMinimum());
resampler->SetTransform(params.i_trf.GetPointer());
resampler->SetInput(itkImage);
typename ImageType::SizeType size = itkImage->GetLargestPossibleRegion().GetSize();
typename ImageType::PointType origin = itkImage->GetOrigin();
typename ImageType::SpacingType spacing = itkImage->GetSpacing();
typename ImageType::DirectionType direction = itkImage->GetDirection();
SLM_ASSERT("Input spacing can't be null along any axis", spacing[0] > 0 && spacing[1] > 0 && spacing[2] > 0);
if(params.i_targetImage)
{
for(std::uint8_t i = 0; i < 3; ++i)
{
// ITK uses unsigned long to store sizes.
size[i] = static_cast<typename ImageType::SizeType::SizeValueType>(params.i_targetImage->getSize()[i]);
origin[i] = params.i_targetImage->getOrigin()[i];
spacing[i] = params.i_targetImage->getSpacing()[i];
SLM_ASSERT("Output spacing can't be null along any axis.", spacing[i] > 0);
}
}
resampler->SetSize(size);
resampler->SetOutputOrigin(origin);
resampler->SetOutputDirection(direction);
resampler->SetOutputSpacing(spacing);
resampler->Update();
typename ImageType::Pointer outputImage = resampler->GetOutput();
::fwItkIO::itkImageToFwDataImage(outputImage, params.o_image);
}
示例3: update
template <class ImagePixelType, class MaskPixelType> int update()
{
typedef itk::Image<ImagePixelType, 3> ImageType;
typedef itk::Image<MaskPixelType, 3> MaskType;
if ( !input ||!input->data() || !mask ||!mask->data())
return EXIT_FAILURE;
typedef itk::MaskImageFilter< ImageType, MaskType> MaskFilterType;
typename MaskFilterType::Pointer maskFilter = MaskFilterType::New();
typename ImageType::Pointer imgInput = dynamic_cast<ImageType *> ( ( itk::Object* ) ( input->data() )) ;
typename MaskType::Pointer maskInput = dynamic_cast<MaskType *> ( ( itk::Object* ) ( mask->data() )) ;
try
{
maskInput->SetOrigin(imgInput->GetOrigin());
maskInput->SetSpacing(imgInput->GetSpacing());
maskFilter->SetInput(imgInput);
maskFilter->SetMaskingValue(maskBackgroundValue);
maskFilter->SetMaskImage(maskInput);
//Outside values set to the lowest reachable value
typedef itk::MinimumMaximumImageCalculator <ImageType> ImageCalculatorFilterType;
typename ImageCalculatorFilterType::Pointer imageCalculatorFilter
= ImageCalculatorFilterType::New ();
imageCalculatorFilter->SetImage(imgInput);
imageCalculatorFilter->ComputeMinimum();
maskFilter->SetOutsideValue(std::min(double(imageCalculatorFilter->GetMinimum()), 0.0));
maskFilter->Update();
output->setData(maskFilter->GetOutput());
}
catch( itk::ExceptionObject & err )
{
std::cerr << "ExceptionObject caught in medMaskApplication!" << std::endl;
std::cerr << err << std::endl;
return EXIT_FAILURE;
}
medUtilities::setDerivedMetaData(output, input, "masked");
return EXIT_SUCCESS;
}
示例4: if
//.........这里部分代码省略.........
ABORT_CHECKING(m_bAborting);
typename BiasFilter::VariableSizeArrayType itkTabMaximumIterations;
itkTabMaximumIterations.SetSize(oMaxNumbersIterationsVector.size());
for (int i = 0; i < oMaxNumbersIterationsVector.size(); ++i)
{
itkTabMaximumIterations[i] = oMaxNumbersIterationsVector[i];
}
filter->SetMaximumNumberOfIterations(itkTabMaximumIterations);
/*** 3B *************** Set Fitting Levels for the filter *****************/
typename BiasFilter::ArrayType oFittingLevelsTab;
oFittingLevelsTab.Fill(oMaxNumbersIterationsVector.size());
filter->SetNumberOfFittingLevels(oFittingLevelsTab);
updateProgression(fProgression);
/*** 4 ******************* Save image's index, size, origine **************/
ABORT_CHECKING(m_bAborting);
typename ImageType::IndexType oImageIndex = image->GetLargestPossibleRegion().GetIndex();
typename ImageType::SizeType oImageSize = image->GetLargestPossibleRegion().GetSize();
typename ImageType::PointType newOrigin = image->GetOrigin();
typename OutputImageType::Pointer outImage = castFilter->GetOutput();
if (fSplineDistance > 0)
{
/*** 5 ******************* Compute number of control points **************/
ABORT_CHECKING(m_bAborting);
itk::SizeValueType lowerBound[3];
itk::SizeValueType upperBound[3];
for (unsigned int i = 0; i < 3; i++)
{
float domain = static_cast<float>(image->GetLargestPossibleRegion().GetSize()[i] - 1) * image->GetSpacing()[i];
unsigned int numberOfSpans = static_cast<unsigned int>(std::ceil(domain / fSplineDistance));
unsigned long extraPadding = static_cast<unsigned long>((numberOfSpans * fSplineDistance - domain) / image->GetSpacing()[i] + 0.5);
lowerBound[i] = static_cast<unsigned long>(0.5 * extraPadding);
upperBound[i] = extraPadding - lowerBound[i];
newOrigin[i] -= (static_cast<float>(lowerBound[i]) * image->GetSpacing()[i]);
oNumberOfControlPointsArray[i] = numberOfSpans + filter->GetSplineOrder();
}
updateProgression(fProgression);
/*** 6 ******************* Padder ****************************************/
ABORT_CHECKING(m_bAborting);
typename PadderType::Pointer imagePadder = PadderType::New();
m_filter = imagePadder;
imagePadder->SetInput(castFilter->GetOutput());
imagePadder->SetPadLowerBound(lowerBound);
imagePadder->SetPadUpperBound(upperBound);
imagePadder->SetConstant(0);
imagePadder->SetNumberOfThreads(uiThreadNb);
imagePadder->Update();
updateProgression(fProgression);
outImage = imagePadder->GetOutput();
/*** 7 ******************** Handle the mask image *************************/
ABORT_CHECKING(m_bAborting);
typename MaskPadderType::Pointer maskPadder = MaskPadderType::New();
m_filter = maskPadder;
maskPadder->SetInput(maskImage);
maskPadder->SetPadLowerBound(lowerBound);
maskPadder->SetPadUpperBound(upperBound);
maskPadder->SetConstant(0);
maskPadder->SetNumberOfThreads(uiThreadNb);