From 49c5386438703b6a4303a2fca216b6acb9e36f33 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leonardo=20Fl=C3=B3rez-Valencia?= Date: Wed, 2 Nov 2016 16:27:16 -0500 Subject: [PATCH] ... --- CMakeLists.txt | 2 +- lib/CMakeLists.txt | 12 ++ lib/Instances/CMakeLists.txt | 13 ++- lib/Instances/fpa_Filters.i | 14 +-- lib/fpa/Image/SkeletonFilter.h | 1 + lib/fpa/Image/SkeletonFilter.hxx | 2 - plugins/CMakeLists.txt | 30 +++-- plugins/Plugins/BaseImageFilter.cxx | 8 +- plugins/Plugins/BaseImageFilter.h | 2 +- plugins/Plugins/EndPointsFilter.cxx | 109 ------------------ plugins/Plugins/EndPointsFilter.h | 32 ----- .../ExtractPathFromMinimumSpanningTree.cxx | 8 +- .../ExtractPathFromMinimumSpanningTree.h | 2 +- plugins/Plugins/GaussianModelCost.cxx | 3 +- plugins/Plugins/GaussianModelCost.h | 2 +- plugins/Plugins/ImageDijkstra.cxx | 12 +- plugins/Plugins/ImageDijkstra.h | 2 +- plugins/Plugins/InvertCost.cxx | 3 +- plugins/Plugins/InvertCost.h | 2 +- plugins/Plugins/SimpleImageDijkstraCost.cxx | 14 +-- plugins/Plugins/SimpleImageDijkstraCost.h | 2 +- plugins/Plugins/SimpleImageNeighborhood.cxx | 13 ++- plugins/Plugins/SimpleImageNeighborhood.h | 2 +- plugins/Plugins/SkeletonFilter.cxx | 29 ++--- plugins/Plugins/SkeletonFilter.h | 6 +- plugins/Plugins/fpaPlugins.i | 26 +++++ 26 files changed, 135 insertions(+), 216 deletions(-) delete mode 100644 plugins/Plugins/EndPointsFilter.cxx delete mode 100644 plugins/Plugins/EndPointsFilter.h create mode 100644 plugins/Plugins/fpaPlugins.i diff --git a/CMakeLists.txt b/CMakeLists.txt index fec6ee2..4175ddb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,6 +56,6 @@ INCLUDE(cmake/Functions.cmake) ## =========================== ## SUBDIRS(appli cmake lib plugins) -SUBDIRS(lib) +SUBDIRS(lib plugins) ## eof - $RCSfile$ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index c3d3e5d..b3bea38 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -8,8 +8,20 @@ CompileLibFromDir(fpa SHARED ${CMAKE_CURRENT_SOURCE_DIR}/fpa) ## == Build instances for cpPlugins == ## =================================== +SET(fpa_DynLibs "${CMAKE_INSTALL_PREFIX}/bin|fpa") +LIST(APPEND fpa_DynLibs "${CMAKE_INSTALL_PREFIX}/lib|fpa") +LIST(APPEND fpa_DynLibs "${LIBRARY_OUTPUT_PATH}|fpa") IF(USE_cpPlugins) SUBDIRS(Instances) + FOREACH(_lib ${fpa_Instances}) + LIST(APPEND fpa_DynLibs "${CMAKE_INSTALL_PREFIX}/bin|${_lib}") + LIST(APPEND fpa_DynLibs "${CMAKE_INSTALL_PREFIX}/lib|${_lib}") + LIST(APPEND fpa_DynLibs "${LIBRARY_OUTPUT_PATH}|${_lib}") + ENDFOREACH(_lib) ENDIF(USE_cpPlugins) +FILE(WRITE ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "") +FOREACH(_lib ${fpa_DynLibs}) + FILE(APPEND ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "${_lib}\n") +ENDFOREACH(_lib) ## eof - $RCSfile$ diff --git a/lib/Instances/CMakeLists.txt b/lib/Instances/CMakeLists.txt index efcdf87..ebc9cdc 100644 --- a/lib/Instances/CMakeLists.txt +++ b/lib/Instances/CMakeLists.txt @@ -14,8 +14,19 @@ FOREACH(_def ${_all_defs}) fpa_${_def}.i ${cpPlugins_CONFIG_NUMBER_OF_FILES} ) - LIST(APPEND _all_libs cpInstances_${_def}) + LIST(APPEND _all_libs fpaInstances_${_def}) ENDFOREACH(_def) + +TARGET_LINK_LIBRARIES( + fpaInstances_DataObjects + ${VTK_LIBRARIES} + ${cpPlugins_Instances} + ) +TARGET_LINK_LIBRARIES( + fpaInstances_Filters + fpaInstances_DataObjects + ) + SET( fpa_Instances ${_all_libs} CACHE INTERNAL "All valid instances." FORCE diff --git a/lib/Instances/fpa_Filters.i b/lib/Instances/fpa_Filters.i index a72f3ad..e019334 100644 --- a/lib/Instances/fpa_Filters.i +++ b/lib/Instances/fpa_Filters.i @@ -1,12 +1,12 @@ +header #define ITK_MANUAL_INSTANTIATION -d i_pixels=#pixels# -d o_pixels=#pixels# +define i_pixels=#scalar_pixels# +define o_pixels=#scalar_pixels# -i cpPlugins_Images.h -t fpa/Base/Algorithm -t fpa/Image/Algorithm +tinclude fpa/Base/Algorithm:h|hxx +tinclude fpa/Image/Algorithm:h|hxx -c fpa::Base::Algorithm< itk::ImageToImageFilter< itk::Image< #i_pixels#, #process_dims# >, itk::Image< #o_pixels#, #process_dims# > >, itk::Index< #process_dims# >, #o_pixels# > -c fpa::Image::Algorithm< itk::Image< #i_pixels#, #process_dims# >, itk::Image< #o_pixels#, #process_dims# > > +instances fpa::Base::Algorithm< itk::ImageToImageFilter< itk::Image< #i_pixels#, #process_dims# >, itk::Image< #o_pixels#, #process_dims# > >, itk::Index< #process_dims# >, #o_pixels# > +instances fpa::Image::Algorithm< itk::Image< #i_pixels#, #process_dims# >, itk::Image< #o_pixels#, #process_dims# > > ** eof - $RCSfile$ diff --git a/lib/fpa/Image/SkeletonFilter.h b/lib/fpa/Image/SkeletonFilter.h index 5951709..85618d7 100644 --- a/lib/fpa/Image/SkeletonFilter.h +++ b/lib/fpa/Image/SkeletonFilter.h @@ -2,6 +2,7 @@ #define __fpa__Image__SkeletonFilter__h__ #include +#include #include #include #include diff --git a/lib/fpa/Image/SkeletonFilter.hxx b/lib/fpa/Image/SkeletonFilter.hxx index 9488ed8..fa78819 100644 --- a/lib/fpa/Image/SkeletonFilter.hxx +++ b/lib/fpa/Image/SkeletonFilter.hxx @@ -173,8 +173,6 @@ _EndPoints( if( m != 0 || ( n.first / init_v ) < double( 1e-1 ) ) continue; - std::cout << n.second << " " << n.first << " " << dmap->GetPixel( n.second ) << std::endl; - // Mark it and update end-points m |= 0x01; marks->SetPixel( n.second, m ); diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 6900f77..bbc5d32 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -2,14 +2,26 @@ ## == Build plugin library == ## ========================== -IF(USE_cpPlugins) - Wrap_cpPlugins( - _plugin - ${CMAKE_CURRENT_SOURCE_DIR}/Plugins - ${prj_VERSION} ${prj_SHORT_VERSION} - fpa - ) - TARGET_LINK_LIBRARIES(${_plugin} ${VTK_LIBRARIES} ${cpPlugins_LIB} ${cpPlugins_ImageIterators_LIB} ${fpa_Instances}) -ENDIF(USE_cpPlugins) +INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/lib + ${PROJECT_BINARY_DIR}/lib + ) +CreatePlugin(fpaPlugins Plugins ${cpPlugins_CONFIG_NUMBER_OF_FILES}) +TARGET_LINK_LIBRARIES( + fpaPlugins + cpPlugins cpExtensions + ${cpPlugins_Instances} + ${fpa_Instances} + ) + +#IF(USE_cpPlugins) +# Wrap_cpPlugins( +# _plugin +# ${CMAKE_CURRENT_SOURCE_DIR}/Plugins +# ${prj_VERSION} ${prj_SHORT_VERSION} +# fpa +# ) +# TARGET_LINK_LIBRARIES(${_plugin} ${VTK_LIBRARIES} ${cpPlugins_LIB} ${cpPlugins_ImageIterators_LIB} ${fpa_Instances}) +#ENDIF(USE_cpPlugins) ## eof - $RCSfile$ \ No newline at end of file diff --git a/plugins/Plugins/BaseImageFilter.cxx b/plugins/Plugins/BaseImageFilter.cxx index cb3f433..746bd31 100644 --- a/plugins/Plugins/BaseImageFilter.cxx +++ b/plugins/Plugins/BaseImageFilter.cxx @@ -1,4 +1,4 @@ -#include +#include #include // ------------------------------------------------------------------------- @@ -14,10 +14,8 @@ BaseImageFilter( ) this->_ConfigureInput< _TData >( "Neighborhood", false, false ); this->_ConfigureOutput< _TImage >( "Output" ); - this->m_Parameters.ConfigureAsBool( "VisualDebug" ); - this->m_Parameters.ConfigureAsBool( "StopAtOneFront" ); - this->m_Parameters.SetBool( "VisualDebug", false ); - this->m_Parameters.SetBool( "StopAtOneFront", false ); + this->m_Parameters.ConfigureAsBool( "VisualDebug", false ); + this->m_Parameters.ConfigureAsBool( "StopAtOneFront", false ); } // ------------------------------------------------------------------------- diff --git a/plugins/Plugins/BaseImageFilter.h b/plugins/Plugins/BaseImageFilter.h index 30cb7d1..8afadd6 100644 --- a/plugins/Plugins/BaseImageFilter.h +++ b/plugins/Plugins/BaseImageFilter.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__BaseImageFilter__h__ #define __fpa__Plugins__BaseImageFilter__h__ -#include +#include #include namespace fpaPlugins diff --git a/plugins/Plugins/EndPointsFilter.cxx b/plugins/Plugins/EndPointsFilter.cxx deleted file mode 100644 index 6d34f8c..0000000 --- a/plugins/Plugins/EndPointsFilter.cxx +++ /dev/null @@ -1,109 +0,0 @@ -#include -#include -#include -#include -#include - -// ------------------------------------------------------------------------- -fpaPlugins::EndPointsFilter:: -EndPointsFilter( ) - : Superclass( ) -{ - typedef cpPlugins::DataObjects::Image _TImage; - typedef cpPlugins::DataObjects::Mesh _TMesh; - - this->_ConfigureInput< _TImage >( "DistanceMap", true, false ); - this->_ConfigureInput< _TImage >( "CostMap", true, false ); - this->_ConfigureInput< _TImage >( "MST", true, false ); - this->_ConfigureOutput< _TMesh >( "EndPoints" ); - this->_ConfigureOutput< _TMesh >( "Bifurcations" ); -} - -// ------------------------------------------------------------------------- -fpaPlugins::EndPointsFilter:: -~EndPointsFilter( ) -{ -} - -// ------------------------------------------------------------------------- -void fpaPlugins::EndPointsFilter:: -_GenerateData( ) -{ - auto o = this->GetInputData( "DistanceMap" ); - cpPlugins_Demangle_ImageScalars_Dims( o, _GD0 ); - else this->_Error( "Invalid input image." ); -} - -// ------------------------------------------------------------------------- -template< class _TDistanceMap > -void fpaPlugins::EndPointsFilter:: -_GD0( _TDistanceMap* dmap ) -{ - auto cmap = this->GetInputData< _TDistanceMap >( "CostMap" ); - if( cmap != NULL ) - this->_GD1( dmap, cmap ); - else - this->_Error( "Temporary error: invalid cost map." ); -} - -// ------------------------------------------------------------------------- -template< class _TDistanceMap, class _TCostMap > -void fpaPlugins::EndPointsFilter:: -_GD1( _TDistanceMap* dmap, _TCostMap* cmap ) -{ - typedef fpa::Image::EndPointsFilter< _TDistanceMap, _TCostMap > _TFilter; - typedef typename _TFilter::TMST _TMST; - - auto mst = this->GetInputData< _TMST >( "MST" ); - if( mst == NULL ) - this->_Error( "Invalid MST." ); - - - auto filter = this->_CreateITK< _TFilter >( ); - filter->SetDistanceMap( dmap ); - filter->SetCostMap( cmap ); - filter->SetMST( mst ); - filter->Compute( ); - - auto ep = filter->GetEndPoints( ); - auto bi = filter->GetBifurcations( ); - - auto ep_pd = this->GetOutputData< vtkPolyData >( "EndPoints" ); - if( ep_pd == NULL ) - { - auto points = vtkSmartPointer< vtkPoints >::New( ); - auto verts = vtkSmartPointer< vtkCellArray >::New( ); - auto lines = vtkSmartPointer< vtkCellArray >::New( ); - auto polys = vtkSmartPointer< vtkCellArray >::New( ); - auto strips = vtkSmartPointer< vtkCellArray >::New( ); - auto pd = vtkSmartPointer< vtkPolyData >::New( ); - pd->SetPoints( points ); - pd->SetVerts( verts ); - pd->SetLines( lines ); - pd->SetPolys( polys ); - pd->SetStrips( strips ); - - this->GetOutput( "EndPoints" )->SetVTK( pd ); - ep_pd = this->GetOutputData< vtkPolyData >( "EndPoints" ); - - } // fi - - for( auto iIt = ep.begin( ); iIt != ep.end( ); ++iIt ) - { - typename _TCostMap::PointType p; - cmap->TransformIndexToPhysicalPoint( *iIt, p ); - - if( _TCostMap::ImageDimension == 1 ) - ep_pd->GetPoints( )->InsertNextPoint( p[ 0 ], 0, 0 ); - else if( _TCostMap::ImageDimension == 2 ) - ep_pd->GetPoints( )->InsertNextPoint( p[ 0 ], p[ 1 ], 0 ); - else if( _TCostMap::ImageDimension > 2 ) - ep_pd->GetPoints( )->InsertNextPoint( p[ 0 ], p[ 1 ], p[ 2 ] ); - - ep_pd->GetVerts( )->InsertNextCell( 1 ); - ep_pd->GetVerts( )->InsertCellPoint( ep_pd->GetNumberOfPoints( ) - 1 ); - - } // rof -} - -// eof - $RCSfile$ diff --git a/plugins/Plugins/EndPointsFilter.h b/plugins/Plugins/EndPointsFilter.h deleted file mode 100644 index 209c9a7..0000000 --- a/plugins/Plugins/EndPointsFilter.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __fpa__Plugins__EndPointsFilter__h__ -#define __fpa__Plugins__EndPointsFilter__h__ - -#include -#include - -namespace fpaPlugins -{ - /** - */ - class fpaPlugins_EXPORT EndPointsFilter - : public cpPlugins::BaseObjects::ProcessObject - { - cpPluginsObject( - EndPointsFilter, - cpPlugins::BaseObjects::ProcessObject, - fpa - ); - - protected: - template< class _TDistanceMap > - inline void _GD0( _TDistanceMap* dmap ); - - template< class _TDistanceMap, class _TCostMap > - inline void _GD1( _TDistanceMap* dmap, _TCostMap* cmap ); - }; - -} // ecapseman - -#endif // __fpa__Plugins__EndPointsFilter__h__ - -// eof - $RCSfile$ diff --git a/plugins/Plugins/ExtractPathFromMinimumSpanningTree.cxx b/plugins/Plugins/ExtractPathFromMinimumSpanningTree.cxx index c80ffde..2853448 100644 --- a/plugins/Plugins/ExtractPathFromMinimumSpanningTree.cxx +++ b/plugins/Plugins/ExtractPathFromMinimumSpanningTree.cxx @@ -1,8 +1,8 @@ -#include +#include #include #include -#include #include +#include // ------------------------------------------------------------------------- fpaPlugins::ExtractPathFromMinimumSpanningTree:: @@ -15,7 +15,7 @@ ExtractPathFromMinimumSpanningTree( ) this->_ConfigureInput< _TMST >( "MST", true, false ); this->_ConfigureInput< _TData >( "Seeds", true, false ); - this->_ConfigureOutput< _TPath >( "Paths" ); + this->_ConfigureOutput< _TPath >( "Output" ); } // ------------------------------------------------------------------------- @@ -74,7 +74,7 @@ _GD0( _TMST* mst ) typename _TPath::Pointer path; mst->GetPath( path, seeds[ 0 ], seeds[ 1 ] ); - this->GetOutput( "Paths" )->SetITK( path ); + this->GetOutput( "Output" )->SetITK( path ); } // eof - $RCSfile$ diff --git a/plugins/Plugins/ExtractPathFromMinimumSpanningTree.h b/plugins/Plugins/ExtractPathFromMinimumSpanningTree.h index c3f8496..6a46fa9 100644 --- a/plugins/Plugins/ExtractPathFromMinimumSpanningTree.h +++ b/plugins/Plugins/ExtractPathFromMinimumSpanningTree.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__ExtractPathFromMinimumSpanningTree__h__ #define __fpa__Plugins__ExtractPathFromMinimumSpanningTree__h__ -#include +#include #include namespace fpaPlugins diff --git a/plugins/Plugins/GaussianModelCost.cxx b/plugins/Plugins/GaussianModelCost.cxx index c6b962b..e817fb6 100644 --- a/plugins/Plugins/GaussianModelCost.cxx +++ b/plugins/Plugins/GaussianModelCost.cxx @@ -1,8 +1,7 @@ -#include +#include #include #include -#include // ------------------------------------------------------------------------- fpaPlugins::GaussianModelCost:: diff --git a/plugins/Plugins/GaussianModelCost.h b/plugins/Plugins/GaussianModelCost.h index 845f57f..b4d2763 100644 --- a/plugins/Plugins/GaussianModelCost.h +++ b/plugins/Plugins/GaussianModelCost.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__GaussianModelCost__h__ #define __fpa__Plugins__GaussianModelCost__h__ -#include +#include #include namespace fpaPlugins diff --git a/plugins/Plugins/ImageDijkstra.cxx b/plugins/Plugins/ImageDijkstra.cxx index 7017c77..d5ce7df 100644 --- a/plugins/Plugins/ImageDijkstra.cxx +++ b/plugins/Plugins/ImageDijkstra.cxx @@ -1,10 +1,9 @@ -#include +#include #include -#include +#include #include -#include -#include +#include // ------------------------------------------------------------------------- fpaPlugins::ImageDijkstra:: @@ -36,8 +35,8 @@ void fpaPlugins::ImageDijkstra:: _GenerateData( ) { auto o = this->GetInputData( "Input" ); - cpPlugins_Demangle_ImageScalars_Dims( o, _GD0 ); - else this->_Error( "Invalid input image." ); + cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 ) + this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- @@ -87,6 +86,7 @@ _GD1( _TInputImage* image ) typename _TInputImage::IndexType idx; unsigned int dim = ( _TInputImage::ImageDimension < 3 )? _TInputImage::ImageDimension: 3; + for( int i = 0; i < seeds->GetNumberOfPoints( ); ++i ) { double buf[ 3 ]; diff --git a/plugins/Plugins/ImageDijkstra.h b/plugins/Plugins/ImageDijkstra.h index 74198c3..a76df17 100644 --- a/plugins/Plugins/ImageDijkstra.h +++ b/plugins/Plugins/ImageDijkstra.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__ImageDijkstra__h__ #define __fpa__Plugins__ImageDijkstra__h__ -#include +#include namespace fpaPlugins { diff --git a/plugins/Plugins/InvertCost.cxx b/plugins/Plugins/InvertCost.cxx index fe77e0f..488e88c 100644 --- a/plugins/Plugins/InvertCost.cxx +++ b/plugins/Plugins/InvertCost.cxx @@ -1,8 +1,7 @@ -#include +#include #include #include -#include // ------------------------------------------------------------------------- fpaPlugins::InvertCost:: diff --git a/plugins/Plugins/InvertCost.h b/plugins/Plugins/InvertCost.h index f113068..2a3a738 100644 --- a/plugins/Plugins/InvertCost.h +++ b/plugins/Plugins/InvertCost.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__InvertCost__h__ #define __fpa__Plugins__InvertCost__h__ -#include +#include #include namespace fpaPlugins diff --git a/plugins/Plugins/SimpleImageDijkstraCost.cxx b/plugins/Plugins/SimpleImageDijkstraCost.cxx index c87b912..4662b62 100644 --- a/plugins/Plugins/SimpleImageDijkstraCost.cxx +++ b/plugins/Plugins/SimpleImageDijkstraCost.cxx @@ -1,7 +1,9 @@ -#include +#include #include +#include -#include +#include +#include // ------------------------------------------------------------------------- fpaPlugins::SimpleImageDijkstraCost:: @@ -18,10 +20,8 @@ SimpleImageDijkstraCost( ) choices.push_back( "float" ); choices.push_back( "double" ); this->m_Parameters.ConfigureAsChoices( "ResultType", choices ); - this->m_Parameters.ConfigureAsBool( "UseImageSpacing" ); - this->m_Parameters.SetSelectedChoice( "ResultType", "float" ); - this->m_Parameters.SetBool( "UseImageSpacing", false ); + this->m_Parameters.ConfigureAsBool( "UseImageSpacing", false ); } // ------------------------------------------------------------------------- @@ -35,8 +35,8 @@ void fpaPlugins::SimpleImageDijkstraCost:: _GenerateData( ) { auto o = this->GetInputData( "Input" ); - cpPlugins_Demangle_ImageScalars_Dims( o, _GD0 ); - else this->_Error( "Invalid input image." ); + cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 ) + this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- diff --git a/plugins/Plugins/SimpleImageDijkstraCost.h b/plugins/Plugins/SimpleImageDijkstraCost.h index 80ae8f9..f5d5968 100644 --- a/plugins/Plugins/SimpleImageDijkstraCost.h +++ b/plugins/Plugins/SimpleImageDijkstraCost.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__SimpleImageDijkstraCost__h__ #define __fpa__Plugins__SimpleImageDijkstraCost__h__ -#include +#include #include namespace fpaPlugins diff --git a/plugins/Plugins/SimpleImageNeighborhood.cxx b/plugins/Plugins/SimpleImageNeighborhood.cxx index 11f2658..37382a8 100644 --- a/plugins/Plugins/SimpleImageNeighborhood.cxx +++ b/plugins/Plugins/SimpleImageNeighborhood.cxx @@ -1,7 +1,9 @@ -#include +#include #include +#include -#include +#include +#include // ------------------------------------------------------------------------- fpaPlugins::SimpleImageNeighborhood:: @@ -14,8 +16,7 @@ SimpleImageNeighborhood( ) this->_ConfigureInput< _TImage >( "Input", true, false ); this->_ConfigureOutput< _TData >( "Output" ); - this->m_Parameters.ConfigureAsUint( "Order" ); - this->m_Parameters.SetUint( "Order", 1 ); + this->m_Parameters.ConfigureAsUint( "Order", 1 ); } // ------------------------------------------------------------------------- @@ -29,8 +30,8 @@ void fpaPlugins::SimpleImageNeighborhood:: _GenerateData( ) { auto o = this->GetInputData( "Input" ); - cpPlugins_Demangle_ImageProcessDims( o, _GD0 ); - else this->_Error( "Invalid input image." ); + cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 ) + this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- diff --git a/plugins/Plugins/SimpleImageNeighborhood.h b/plugins/Plugins/SimpleImageNeighborhood.h index e47b42d..6c0ac92 100644 --- a/plugins/Plugins/SimpleImageNeighborhood.h +++ b/plugins/Plugins/SimpleImageNeighborhood.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__SimpleImageNeighborhood__h__ #define __fpa__Plugins__SimpleImageNeighborhood__h__ -#include +#include #include namespace fpaPlugins diff --git a/plugins/Plugins/SkeletonFilter.cxx b/plugins/Plugins/SkeletonFilter.cxx index f00a0bf..d68db4f 100644 --- a/plugins/Plugins/SkeletonFilter.cxx +++ b/plugins/Plugins/SkeletonFilter.cxx @@ -1,9 +1,15 @@ -#include +#include #include +#include #include + #include -#include -#include +#include + +/* TODO + #include + #include +*/ // ------------------------------------------------------------------------- fpaPlugins::SkeletonFilter:: @@ -35,8 +41,8 @@ void fpaPlugins::SkeletonFilter:: _GenerateData( ) { auto o = this->GetInputData( "DistanceMap" ); - cpPlugins_Demangle_ImageScalars_Dims( o, _GD0 ); - else this->_Error( "Invalid input image." ); + cpPlugins_Demangle_Image_RealPixels_AllDims_1( o, _GD0 ) + this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- @@ -44,17 +50,15 @@ template< class _TDistanceMap > void fpaPlugins::SkeletonFilter:: _GD0( _TDistanceMap* dmap ) { - auto cmap = this->GetInputData< _TDistanceMap >( "CostMap" ); - if( cmap != NULL ) - this->_GD1( dmap, cmap ); - else - this->_Error( "Temporary error: invalid cost map." ); + auto o = this->GetInputData( "CostMap" ); + cpPlugins_Demangle_Image_RealPixels_2( o, _GD1, _TDistanceMap::ImageDimension, dmap ) + this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- -template< class _TDistanceMap, class _TCostMap > +template< class _TCostMap, class _TDistanceMap > void fpaPlugins::SkeletonFilter:: -_GD1( _TDistanceMap* dmap, _TCostMap* cmap ) +_GD1( _TCostMap* cmap, _TDistanceMap* dmap ) { typedef fpa::Image::SkeletonFilter< _TDistanceMap, _TCostMap > _TFilter; typedef typename _TFilter::TMST _TMST; @@ -71,7 +75,6 @@ _GD1( _TDistanceMap* dmap, _TCostMap* cmap ) this->GetOutput( "Skeleton" )->SetITK( filter->GetSkeleton( ) ); this->GetOutput( "Marks" )->SetITK( filter->GetMarks( ) ); - /* TODO auto ep = filter->GetEndPoints( ); auto bi = filter->GetBifurcations( ); diff --git a/plugins/Plugins/SkeletonFilter.h b/plugins/Plugins/SkeletonFilter.h index a24de80..1337ca2 100644 --- a/plugins/Plugins/SkeletonFilter.h +++ b/plugins/Plugins/SkeletonFilter.h @@ -1,7 +1,7 @@ #ifndef __fpa__Plugins__SkeletonFilter__h__ #define __fpa__Plugins__SkeletonFilter__h__ -#include +#include #include namespace fpaPlugins @@ -21,8 +21,8 @@ namespace fpaPlugins template< class _TDistanceMap > inline void _GD0( _TDistanceMap* dmap ); - template< class _TDistanceMap, class _TCostMap > - inline void _GD1( _TDistanceMap* dmap, _TCostMap* cmap ); + template< class _TCostMap, class _TDistanceMap > + inline void _GD1( _TCostMap* cmap, _TDistanceMap* dmap ); }; } // ecapseman diff --git a/plugins/Plugins/fpaPlugins.i b/plugins/Plugins/fpaPlugins.i new file mode 100644 index 0000000..57709d3 --- /dev/null +++ b/plugins/Plugins/fpaPlugins.i @@ -0,0 +1,26 @@ +header #define ITK_MANUAL_INSTANTIATION + +define i_real=#real_types# +define o_real=#real_types# + +tinclude fpa/Image/Functors/SimpleNeighborhood:h|hxx +tinclude fpa/Image/Functors/SimpleDijkstraCost:h|hxx +tinclude fpa/Base/Functors/Inverse:h|hxx +tinclude fpa/Base/Functors/GaussianModel:h|hxx +tinclude fpa/Image/Dijkstra:h|hxx +tinclude fpa/Image/SkeletonFilter:h|hxx + +cinclude itkImage.h +cinclude itkSimpleDataObjectDecorator.hxx +cinclude fpa/Base/Dijkstra.hxx + +instances fpa::Image::Functors::SimpleNeighborhood< itk::Image< #scalar_pixels#, #process_dims# > > +instances fpa::Image::Functors::SimpleDijkstraCost< itk::Image< #scalar_pixels#, #process_dims# >, #real_types# > + +instances fpa::Base::Functors::Inverse< #i_real#, #o_real# > +instances fpa::Base::Functors::GaussianModel< #i_real#, #o_real# > + +instances fpa::Image::Dijkstra< itk::Image< #scalar_pixels#, #process_dims# >, itk::Image< #real_types#, #process_dims# > > +instances fpa::Image::SkeletonFilter< itk::Image< #i_real#, #process_dims# >, itk::Image< #o_real#, #process_dims# > > + +** eof - $RCSfile$ -- 2.45.1