本文整理汇总了C++中mitk::image::Pointer::GetPixelType方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::GetPixelType方法的具体用法?C++ Pointer::GetPixelType怎么用?C++ Pointer::GetPixelType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mitk::image::Pointer
的用法示例。
在下文中一共展示了Pointer::GetPixelType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Paint
// Helper function to multiplex the actual Paint function call for different
// pixel types. As it's cumbersome and ugly, you may want to avoid such
// functions by using ITK for the actual painting and use the ITK access
// macros like we did for the AwesomeImageFilter.
static void Paint(mitk::Image::Pointer image, itk::Index<3> index, unsigned int timeStep)
{
switch (image->GetPixelType().GetComponentType())
{
case itk::ImageIOBase::CHAR:
Paint<char>(image, index, timeStep);
break;
case itk::ImageIOBase::UCHAR:
Paint<unsigned char>(image, index, timeStep);
break;
case itk::ImageIOBase::SHORT:
Paint<short>(image, index, timeStep);
break;
case itk::ImageIOBase::USHORT:
Paint<unsigned short>(image, index, timeStep);
break;
case itk::ImageIOBase::INT:
Paint<int>(image, index, timeStep);
break;
case itk::ImageIOBase::UINT:
Paint<unsigned int>(image, index, timeStep);
break;
default:
mitkThrow();
}
}
示例2: switch
Attributes::Attributes(mitk::Image::Pointer mitkImage)
{
log_trace(Log::New, this);
Pixel::ID pixelID;
Component::ID componentID;
unsigned int dimension;
log_info("pixelType: " << mitkImage->GetPixelType().GetPixelTypeAsString());
log_info("channels : " << mitkImage->GetPixelType().GetNumberOfComponents());
log_info("component: " << mitkImage->GetPixelType().GetComponentTypeAsString());
log_info("dimension: " << mitkImage->GetDimension());
switch (mitkImage->GetPixelType().GetPixelType())
{
case itk::ImageIOBase::SCALAR: pixelID = Pixel::ID::Scalar; break;
case itk::ImageIOBase::RGB: pixelID = Pixel::ID::Rgb; break;
case itk::ImageIOBase::RGBA: pixelID = Pixel::ID::Rgba; break;
default: pixelID = Pixel::ID::Scalar; break;
}
switch ((itk::ImageIOBase::IOComponentType) mitkImage->GetPixelType().GetComponentType())
{
case itk::ImageIOBase::UCHAR: componentID = Component::ID::UChar; break;
case itk::ImageIOBase::USHORT: componentID = Component::ID::UShort; break;
case itk::ImageIOBase::UINT: componentID = Component::ID::UInt; break;
case itk::ImageIOBase::CHAR: componentID = Component::ID::Char; break;
case itk::ImageIOBase::SHORT: componentID = Component::ID::Short; break;
case itk::ImageIOBase::INT: componentID = Component::ID::Int; break;
case itk::ImageIOBase::FLOAT: componentID = Component::ID::Float; break;
case itk::ImageIOBase::DOUBLE: componentID = Component::ID::Double; break;
default: componentID = Component::ID::Double; break;
}
if (mitkImage->GetPixelType().GetNumberOfComponents() == 1)
{
pixelID = Pixel::ID::Scalar;
}
if (mitkImage->GetPixelType().GetNumberOfComponents() == 3)
{
pixelID = Pixel::ID::Rgb;
}
if (mitkImage->GetPixelType().GetNumberOfComponents() == 4)
{
pixelID = Pixel::ID::Rgba;
}
dimension = mitkImage->GetDimension();
this->m_dimension = dimension;
this->m_pixelID = pixelID;
this->m_componentID = componentID;
}
示例3: CompareImageMetaData
bool CompareImageMetaData( mitk::Image::Pointer image, mitk::Image::Pointer reference)
{
// switch to AreIdentical() methods as soon as Bug 11925 (Basic comparison operators) is fixed
if( image->GetDimension() != reference->GetDimension() )
{
MITK_ERROR << "The image dimension differs: IN (" << image->GetDimension() << ") REF(" << reference->GetDimension() << ")";
return false;
}
// pixel type
if( image->GetPixelType() != reference->GetPixelType()
&& image->GetPixelType().GetBitsPerComponent() != reference->GetPixelType().GetBitsPerComponent() )
{
MITK_ERROR << "Pixeltype differs ";
return false;
}
return true;
}
示例4: mitkThrow
void mitk::pa::SpectralUnmixingSO2::CheckPreConditions(mitk::Image::Pointer inputHbO2, mitk::Image::Pointer inputHb)
{
unsigned int xDimHb = inputHb->GetDimensions()[0];
unsigned int yDimHb = inputHb->GetDimensions()[1];
unsigned int zDimHb = inputHb->GetDimensions()[2];
unsigned int xDimHbO2 = inputHbO2->GetDimensions()[0];
unsigned int yDimHbO2 = inputHbO2->GetDimensions()[1];
unsigned int zDimHbO2 = inputHbO2->GetDimensions()[2];
if (xDimHb != xDimHbO2 || yDimHb != yDimHbO2 || zDimHb != zDimHbO2)
mitkThrow() << "DIMENTIONALITY ERROR!";
if (inputHbO2->GetPixelType() != mitk::MakeScalarPixelType<float>())
mitkThrow() << "PIXELTYPE ERROR! FLOAT REQUIRED";
if (inputHb->GetPixelType() != mitk::MakeScalarPixelType<float>())
mitkThrow() << "PIXELTYPE ERROR! FLOAT REQUIRED";
MITK_INFO(m_Verbose) << "CHECK PRECONDITIONS ...[DONE]";
}
示例5: parameters
void mitk::RegistrationWrapper::ApplyTransformationToImage(mitk::Image::Pointer img, const mitk::RegistrationWrapper::RidgidTransformType &transformation,double* offset, mitk::Image* resampleReference, bool binary)
{
typedef mitk::DiffusionImage<short> DiffusionImageType;
if (dynamic_cast<DiffusionImageType*> (img.GetPointer()) == NULL)
{
ItkImageType::Pointer itkImage = ItkImageType::New();
MITK_ERROR << "imgCopy 0 " << "/" << img->GetReferenceCount();
MITK_ERROR << "pixel type " << img->GetPixelType().GetComponentTypeAsString();
CastToItkImage(img, itkImage);
typedef itk::Euler3DTransform< double > RigidTransformType;
RigidTransformType::Pointer rtransform = RigidTransformType::New();
RigidTransformType::ParametersType parameters(RigidTransformType::ParametersDimension);
for (int i = 0; i<6;++i)
parameters[i] = transformation[i];
rtransform->SetParameters( parameters );
mitk::Point3D origin = itkImage->GetOrigin();
origin[0]-=offset[0];
origin[1]-=offset[1];
origin[2]-=offset[2];
mitk::Point3D newOrigin = rtransform->GetInverseTransform()->TransformPoint(origin);
itk::Matrix<double,3,3> dir = itkImage->GetDirection();
itk::Matrix<double,3,3> transM ( vnl_inverse(rtransform->GetMatrix().GetVnlMatrix()));
itk::Matrix<double,3,3> newDirection = transM * dir;
itkImage->SetOrigin(newOrigin);
itkImage->SetDirection(newDirection);
// Perform Resampling if reference image is provided
if (resampleReference != NULL)
{
typedef itk::ResampleImageFilter<ItkImageType, ItkImageType> ResampleFilterType;
ItkImageType::Pointer itkReference = ItkImageType::New();
CastToItkImage(resampleReference,itkReference);
typedef itk::WindowedSincInterpolateImageFunction< ItkImageType, 3> WindowedSincInterpolatorType;
WindowedSincInterpolatorType::Pointer sinc_interpolator = WindowedSincInterpolatorType::New();
typedef itk::NearestNeighborInterpolateImageFunction< ItkImageType, double > NearestNeighborInterpolatorType;
NearestNeighborInterpolatorType::Pointer nn_interpolator = NearestNeighborInterpolatorType::New();
ResampleFilterType::Pointer resampler = ResampleFilterType::New();
resampler->SetInput(itkImage);
resampler->SetReferenceImage( itkReference );
resampler->UseReferenceImageOn();
if (binary)
resampler->SetInterpolator(nn_interpolator);
else
resampler->SetInterpolator(sinc_interpolator);
resampler->Update();
GrabItkImageMemory(resampler->GetOutput(), img);
}
else
{
// !! CastToItk behaves very differently depending on the original data type
// if the target type is the same as the original, only a pointer to the data is set
// and an additional GrabItkImageMemory will cause a segfault when the image is destroyed
// GrabItkImageMemory - is not necessary in this case since we worked on the original data
// See Bug 17538.
if (img->GetPixelType().GetComponentTypeAsString() != "double")
img = GrabItkImageMemory(itkImage);
}
}
else
{
DiffusionImageType::Pointer diffImages = dynamic_cast<DiffusionImageType*>(img.GetPointer());
typedef itk::Euler3DTransform< double > RigidTransformType;
RigidTransformType::Pointer rtransform = RigidTransformType::New();
RigidTransformType::ParametersType parameters(RigidTransformType::ParametersDimension);
for (int i = 0; i<6;++i)
{
parameters[i] = transformation[i];
}
rtransform->SetParameters( parameters );
mitk::Point3D b0origin = diffImages->GetVectorImage()->GetOrigin();
b0origin[0]-=offset[0];
b0origin[1]-=offset[1];
b0origin[2]-=offset[2];
mitk::Point3D newOrigin = rtransform->GetInverseTransform()->TransformPoint(b0origin);
//.........这里部分代码省略.........