本文整理汇总了C++中typenameimagetype::Pointer::SetOrigin方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::SetOrigin方法的具体用法?C++ Pointer::SetOrigin怎么用?C++ Pointer::SetOrigin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类typenameimagetype::Pointer
的用法示例。
在下文中一共展示了Pointer::SetOrigin方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GenerateMaskImage
static mitk::Image::Pointer GenerateMaskImage(unsigned int dimX,
unsigned int dimY,
unsigned int dimZ,
float spacingX = 1,
float spacingY = 1,
float spacingZ = 1)
{
typedef itk::Image< TPixelType, 3 > ImageType;
typename ImageType::RegionType imageRegion;
imageRegion.SetSize(0, dimX);
imageRegion.SetSize(1, dimY);
imageRegion.SetSize(2, dimZ);
typename ImageType::SpacingType spacing;
spacing[0] = spacingX;
spacing[1] = spacingY;
spacing[2] = spacingZ;
mitk::Point3D origin; origin.Fill(0.0);
itk::Matrix<double, 3, 3> directionMatrix; directionMatrix.SetIdentity();
typename ImageType::Pointer image = ImageType::New();
image->SetSpacing( spacing );
image->SetOrigin( origin );
image->SetDirection( directionMatrix );
image->SetLargestPossibleRegion( imageRegion );
image->SetBufferedRegion( imageRegion );
image->SetRequestedRegion( imageRegion );
image->Allocate();
image->FillBuffer(1);
mitk::Image::Pointer mitkImage = mitk::Image::New();
mitkImage->InitializeByItk( image.GetPointer() );
mitkImage->SetVolume( image->GetBufferPointer() );
return mitkImage;
}
示例2: imageIt
typename PatchExtractor<PValue>::ImageType::Pointer
PatchExtractor<PValue>::ExtractPatch()
{
ContIndexType startIndex;
for(unsigned int i = 0; i < 2; i++)
{
startIndex[i] = m_Center[i] - (m_Size[i] / 2.0);
}
startIndex[2] = 0;
PointType newOrigin;
m_Image->TransformContinuousIndexToPhysicalPoint(startIndex, newOrigin);
typename ImageType::Pointer patch = ImageType::New();
patch->SetDirection(m_Image->GetDirection());
patch->SetOrigin(newOrigin);
patch->SetSpacing(m_Image->GetSpacing());
typename ImageType::RegionType region;
m_Size[2] = 1;
region.SetSize(m_Size);
patch->SetRegions(region);
patch->Allocate();
typedef itk::NearestNeighborInterpolateImageFunction<ImageType, double> InterpolatorType;
typename InterpolatorType::Pointer interpolator = InterpolatorType::New();
interpolator->SetInputImage(m_Image);
itk::ImageRegionIterator<ImageType> imageIt(patch, region);
while(!imageIt.IsAtEnd())
{
typename ImageType::IndexType index = imageIt.GetIndex();
PointType point;
patch->TransformIndexToPhysicalPoint(index, point);
if(interpolator->IsInsideBuffer(point))
imageIt.Set(interpolator->Evaluate(point));
else
imageIt.Set(0);
++imageIt;
}
return patch;
}
示例3: it
static mitk::Image::Pointer GenerateGradientWithDimXImage(unsigned int dimX,
unsigned int dimY,
unsigned int dimZ,
float spacingX = 1,
float spacingY = 1,
float spacingZ = 1)
{
typedef itk::Image< TPixelType, 3 > ImageType;
typename ImageType::RegionType imageRegion;
imageRegion.SetSize(0, dimX);
imageRegion.SetSize(1, dimY);
imageRegion.SetSize(2, dimZ);
typename ImageType::SpacingType spacing;
spacing[0] = spacingX;
spacing[1] = spacingY;
spacing[2] = spacingZ;
mitk::Point3D origin; origin.Fill(0.0);
itk::Matrix<double, 3, 3> directionMatrix; directionMatrix.SetIdentity();
typename ImageType::Pointer image = ImageType::New();
image->SetSpacing( spacing );
image->SetOrigin( origin );
image->SetDirection( directionMatrix );
image->SetLargestPossibleRegion( imageRegion );
image->SetBufferedRegion( imageRegion );
image->SetRequestedRegion( imageRegion );
image->Allocate();
image->FillBuffer(0.0);
typedef itk::ImageRegionIterator<ImageType> IteratorOutputType;
IteratorOutputType it(image, imageRegion);
it.GoToBegin();
TPixelType val = 0;
while(!it.IsAtEnd())
{
it.Set(val % dimX);
val++;
++it;
}
mitk::Image::Pointer mitkImage = mitk::Image::New();
mitkImage->InitializeByItk( image.GetPointer() );
mitkImage->SetVolume( image->GetBufferPointer() );
return mitkImage;
}
示例4: addPaddingItk
void WorkbenchUtils::addPaddingItk(itk::Image <PixelType, ImageDimension> *itkImage, Axis axis, bool append,
int numberOfSlices, float pixelValue, Image::Pointer outImage) {
// pixel type is templated. The input field for the value is set to float, so the user might enter some invalid values for the image type at hand.
// since all primitive built-in types have well defined casting behaviour between each other, we'll just do a typecast. we will clip the entered
// value at PixelTypes min/max to prevent an overflow. The possible loss of precision is ignored.
float lower = itk::NumericTraits<PixelType>::min();
float upper = itk::NumericTraits<PixelType>::max();
float clippedPixelValue = std::max(lower, std::min(pixelValue, upper));
PixelType paddingPixelValue = (PixelType) clippedPixelValue;
typedef itk::Image <PixelType, ImageDimension> ImageType;
// gather all data
typename ImageType::SizeType lowerBound;
typename ImageType::SizeType upperBound;
lowerBound.Fill(0);
upperBound.Fill(0);
unsigned int itkAxis = convertToItkAxis(axis);
if (append) {
upperBound[itkAxis] = numberOfSlices;
} else {
lowerBound[itkAxis] = numberOfSlices;
}
// setup the filter
typedef itk::ConstantPadImageFilter <ImageType, ImageType> PadFilterType;
typename PadFilterType::Pointer padFilter = PadFilterType::New();
padFilter->SetInput(itkImage);
padFilter->SetConstant(paddingPixelValue);
padFilter->SetPadLowerBound(lowerBound);
padFilter->SetPadUpperBound(upperBound);
padFilter->UpdateLargestPossibleRegion();
// Update the origin, since padding creates negative index that is lost when returned to MITK
typename ImageType::Pointer paddedImage = padFilter->GetOutput();
typename ImageType::RegionType paddedImageRegion = paddedImage->GetLargestPossibleRegion();
typename ImageType::PointType origin;
paddedImage->TransformIndexToPhysicalPoint(paddedImageRegion.GetIndex(), origin);
paddedImage->SetOrigin(origin);
// get the results and cast them back to mitk. return via out parameter.
outImage->InitializeByItk(paddedImage.GetPointer());
CastToMitkImage(paddedImage, outImage);
}
示例5: invcondemonsforces
void invcondemonsforces(int nlhs,
mxArray *plhs[],
int nrhs,
const mxArray *prhs[])
{
typedef float PixelType;
typedef itk::Image< PixelType, Dimension > ImageType;
typedef float VectorComponentType;
typedef itk::Vector<VectorComponentType, Dimension> VectorPixelType;
typedef itk::Image<VectorPixelType, Dimension> DeformationFieldType;
typedef itk::ESMInvConDemonsRegistrationFunction
<ImageType,ImageType,DeformationFieldType> DemonsRegistrationFunctionType;
//boost::timer timer;
// Allocate images and deformation field
typename ImageType::Pointer fixedimage
= ImageType::New();
typename ImageType::Pointer movingimage
= ImageType::New();
typename ImageType::Pointer fw_weightimage
= ImageType::New();
typename DeformationFieldType::Pointer field
= DeformationFieldType::New();
typename ImageType::Pointer jacobianimage
= ImageType::New();
typename DeformationFieldType::Pointer inv_field
= DeformationFieldType::New();
typename DeformationFieldType::Pointer update
= DeformationFieldType::New();
typename DeformationFieldType::SpacingType spacing;
spacing.Fill( 1.0 );
typename DeformationFieldType::PointType origin;
origin.Fill( 0.0 );
typename DeformationFieldType::RegionType region;
typename DeformationFieldType::SizeType size;
typename DeformationFieldType::IndexType start;
unsigned int numPix(1u);
const MatlabPixelType * fixinptr = static_cast<const MatlabPixelType *>(mxGetData(prhs[0]));
const MatlabPixelType * movinptr = static_cast<const MatlabPixelType *>(mxGetData(prhs[1]));
const MatlabPixelType * fieldinptrs[Dimension];
const MatlabPixelType * inv_fieldinptrs[Dimension];
mwSize matlabdims[Dimension];
for (unsigned int d=0; d<Dimension; d++)
{
matlabdims[d]= mxGetDimensions(prhs[0])[d];
size[d] = matlabdims[d];
start[d] = 0;
numPix *= size[d];
fieldinptrs[d] = static_cast<const MatlabPixelType *>(mxGetData(prhs[2+d]));
inv_fieldinptrs[d] = static_cast<const MatlabPixelType *>(mxGetData(prhs[2+Dimension+d]));
}
const MatlabPixelType * jacobianptr = static_cast<const MatlabPixelType *> (mxGetData(prhs[2*Dimension + 2]));
const MatlabPixelType * fw_weightptr = static_cast<const MatlabPixelType *> (mxGetData(prhs[2*Dimension + 3]));
const double RegWeight = static_cast<double>( mxGetPr(prhs[2*Dimension+4])[0] );
const unsigned int UseJacFlag = 1;
//std::cout << "RegWeight : " << RegWeight << std::endl;
region.SetSize( size );
region.SetIndex( start );
fixedimage->SetOrigin( origin );
fixedimage->SetSpacing( spacing );
fixedimage->SetRegions( region );
fixedimage->Allocate();
movingimage->SetOrigin( origin );
movingimage->SetSpacing( spacing );
movingimage->SetRegions( region );
movingimage->Allocate();
fw_weightimage->SetOrigin( origin );
fw_weightimage->SetSpacing( spacing );
fw_weightimage->SetRegions( region );
fw_weightimage->Allocate();
field->SetOrigin( origin );
field->SetSpacing( spacing );
field->SetRegions( region );
field->Allocate();
//.........这里部分代码省略.........