本文整理汇总了C++中tracttype::Pointer::back方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::back方法的具体用法?C++ Pointer::back怎么用?C++ Pointer::back使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tracttype::Pointer
的用法示例。
在下文中一共展示了Pointer::back方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FiberToSegmentationCoords
mitk::ConnectomicsNetworkCreator::ImageLabelPairType mitk::ConnectomicsNetworkCreator::JustEndPointVerticesNoLabelTest( TractType::Pointer singleTract )
{
ImageLabelPairType labelpair;
{// Note: .fib image tracts are safed using index coordinates
mitk::Point3D firstElementFiberCoord, lastElementFiberCoord;
mitk::Point3D firstElementSegCoord, lastElementSegCoord;
itk::Index<3> firstElementSegIndex, lastElementSegIndex;
if( singleTract->front().Size() != 3 )
{
MBI_ERROR << mitk::ConnectomicsConstantsManager::CONNECTOMICS_ERROR_INVALID_DIMENSION_NEED_3;
}
for( unsigned int index = 0; index < singleTract->front().Size(); index++ )
{
firstElementFiberCoord.SetElement( index, singleTract->front().GetElement( index ) );
lastElementFiberCoord.SetElement( index, singleTract->back().GetElement( index ) );
}
// convert from fiber index coordinates to segmentation index coordinates
FiberToSegmentationCoords( firstElementFiberCoord, firstElementSegCoord );
FiberToSegmentationCoords( lastElementFiberCoord, lastElementSegCoord );
for( int index = 0; index < 3; index++ )
{
firstElementSegIndex.SetElement( index, firstElementSegCoord.GetElement( index ) );
lastElementSegIndex.SetElement( index, lastElementSegCoord.GetElement( index ) );
}
int firstLabel = 1 * firstElementSegIndex[ 0 ] + 1000 * firstElementSegIndex[ 1 ] + 1000000 * firstElementSegIndex[ 2 ];
int lastLabel = 1 * firstElementSegIndex[ 0 ] + 1000 * firstElementSegIndex[ 1 ] + 1000000 * firstElementSegIndex[ 2 ];
labelpair.first = firstLabel;
labelpair.second = lastLabel;
// Add property to property map
CreateNewNode( firstLabel, firstElementSegIndex, m_UseCoMCoordinates );
CreateNewNode( lastLabel, lastElementSegIndex, m_UseCoMCoordinates );
}
return labelpair;
}
示例2: extendFront
mitk::ConnectomicsNetworkCreator::ImageLabelPairType mitk::ConnectomicsNetworkCreator::EndElementPositionLabelAvoidingWhiteMatter( TractType::Pointer singleTract )
{
ImageLabelPairType labelpair;
{// Note: .fib image tracts are safed using index coordinates
mitk::Point3D firstElementFiberCoord, lastElementFiberCoord;
mitk::Point3D firstElementSegCoord, lastElementSegCoord;
itk::Index<3> firstElementSegIndex, lastElementSegIndex;
if( singleTract->front().Size() != 3 )
{
MBI_ERROR << mitk::ConnectomicsConstantsManager::CONNECTOMICS_ERROR_INVALID_DIMENSION_NEED_3;
}
for( unsigned int index = 0; index < singleTract->front().Size(); index++ )
{
firstElementFiberCoord.SetElement( index, singleTract->front().GetElement( index ) );
lastElementFiberCoord.SetElement( index, singleTract->back().GetElement( index ) );
}
// convert from fiber index coordinates to segmentation index coordinates
FiberToSegmentationCoords( firstElementFiberCoord, firstElementSegCoord );
FiberToSegmentationCoords( lastElementFiberCoord, lastElementSegCoord );
for( int index = 0; index < 3; index++ )
{
firstElementSegIndex.SetElement( index, firstElementSegCoord.GetElement( index ) );
lastElementSegIndex.SetElement( index, lastElementSegCoord.GetElement( index ) );
}
int firstLabel = m_SegmentationItk->GetPixel(firstElementSegIndex);
int lastLabel = m_SegmentationItk->GetPixel(lastElementSegIndex );
// Check whether the labels belong to the white matter (which means, that the fibers ended early)
bool extendFront(false), extendEnd(false), retractFront(false), retractEnd(false);
extendFront = !IsNonWhiteMatterLabel( firstLabel );
extendEnd = !IsNonWhiteMatterLabel( lastLabel );
retractFront = IsBackgroundLabel( firstLabel );
retractEnd = IsBackgroundLabel( lastLabel );
//if( extendFront || extendEnd )
//{
//MBI_INFO << "Before Start: " << firstLabel << " at " << firstElementSegIndex[ 0 ] << " " << firstElementSegIndex[ 1 ] << " " << firstElementSegIndex[ 2 ] << " End: " << lastLabel << " at " << lastElementSegIndex[ 0 ] << " " << lastElementSegIndex[ 1 ] << " " << lastElementSegIndex[ 2 ];
//}
if ( extendFront )
{
std::vector< int > indexVectorOfPointsToUse;
//Use first two points for direction
indexVectorOfPointsToUse.push_back( 1 );
indexVectorOfPointsToUse.push_back( 0 );
// label and coordinate temp storage
int tempLabel( firstLabel );
itk::Index<3> tempIndex = firstElementSegIndex;
LinearExtensionUntilGreyMatter( indexVectorOfPointsToUse, singleTract, tempLabel, tempIndex );
firstLabel = tempLabel;
firstElementSegIndex = tempIndex;
}
if ( extendEnd )
{
std::vector< int > indexVectorOfPointsToUse;
//Use last two points for direction
indexVectorOfPointsToUse.push_back( singleTract->Size() - 2 );
indexVectorOfPointsToUse.push_back( singleTract->Size() - 1 );
// label and coordinate temp storage
int tempLabel( lastLabel );
itk::Index<3> tempIndex = lastElementSegIndex;
LinearExtensionUntilGreyMatter( indexVectorOfPointsToUse, singleTract, tempLabel, tempIndex );
lastLabel = tempLabel;
lastElementSegIndex = tempIndex;
}
if ( retractFront )
{
// label and coordinate temp storage
int tempLabel( firstLabel );
itk::Index<3> tempIndex = firstElementSegIndex;
RetractionUntilBrainMatter( true, singleTract, tempLabel, tempIndex );
firstLabel = tempLabel;
firstElementSegIndex = tempIndex;
}
if ( retractEnd )
{
// label and coordinate temp storage
int tempLabel( lastLabel );
itk::Index<3> tempIndex = lastElementSegIndex;
RetractionUntilBrainMatter( false, singleTract, tempLabel, tempIndex );
//.........这里部分代码省略.........
示例3: FiberToSegmentationCoords
mitk::ConnectomicsNetworkCreator::ImageLabelPairType mitk::ConnectomicsNetworkCreator::JustEndPointVerticesNoLabelTest( TractType::Pointer singleTract )
{
ImageLabelPairType labelpair;
{// Note: .fib image tracts are safed using index coordinates
mitk::Point3D firstElementFiberCoord, lastElementFiberCoord;
mitk::Point3D firstElementSegCoord, lastElementSegCoord;
mitk::Index3D firstElementSegIndex, lastElementSegIndex;
if( singleTract->front().Size() != 3 )
{
MBI_ERROR << mitk::ConnectomicsConstantsManager::CONNECTOMICS_ERROR_INVALID_DIMENSION_NEED_3;
}
for( int index = 0; index < singleTract->front().Size(); index++ )
{
firstElementFiberCoord.SetElement( index, singleTract->front().GetElement( index ) );
lastElementFiberCoord.SetElement( index, singleTract->back().GetElement( index ) );
}
// convert from fiber index coordinates to segmentation index coordinates
FiberToSegmentationCoords( firstElementFiberCoord, firstElementSegCoord );
FiberToSegmentationCoords( lastElementFiberCoord, lastElementSegCoord );
for( int index = 0; index < 3; index++ )
{
firstElementSegIndex.SetElement( index, firstElementSegCoord.GetElement( index ) );
lastElementSegIndex.SetElement( index, lastElementSegCoord.GetElement( index ) );
}
int firstLabel = 1 * firstElementSegIndex[ 0 ] + 1000 * firstElementSegIndex[ 1 ] + 1000000 * firstElementSegIndex[ 2 ];
int lastLabel = 1 * firstElementSegIndex[ 0 ] + 1000 * firstElementSegIndex[ 1 ] + 1000000 * firstElementSegIndex[ 2 ];
labelpair.first = firstLabel;
labelpair.second = lastLabel;
// Add property to property map
if( ! ( m_LabelToNodePropertyMap.count( firstLabel ) > 0 ) )
{
NetworkNode firstNode;
firstNode.coordinates.resize( 3 );
for( unsigned int index = 0; index < firstNode.coordinates.size() ; index++ )
{
firstNode.coordinates[ index ] = firstElementSegIndex[ index ] ;
}
firstNode.label = LabelToString( firstLabel );
m_LabelToNodePropertyMap.insert( std::pair< ImageLabelType, NetworkNode >( firstLabel, firstNode ) );
}
if( ! ( m_LabelToNodePropertyMap.count( lastLabel ) > 0 ) )
{
NetworkNode lastNode;
lastNode.coordinates.resize( 3 );
for( unsigned int index = 0; index < lastNode.coordinates.size() ; index++ )
{
lastNode.coordinates[ index ] = lastElementSegIndex[ index ] ;
}
lastNode.label = LabelToString( lastLabel );
m_LabelToNodePropertyMap.insert( std::pair< ImageLabelType, NetworkNode >( lastLabel, lastNode ) );
}
}
return labelpair;
}