[Insight-users] BinaryFillHoleImageFilter not recognized as a	member of itk
    dakai 
    wang.hongkai at gmail.com
       
    Sun Jun 16 19:16:51 EDT 2013
    
    
  
Hello,
Maybe this question is week, but I cannot figure out the answer. I am using
ITK4.4, Microsoft Visual Studio Professional 2012 in windows 8. I built
ITK4.4 using Cmake 2.8.11.1 without problem. Then I tried to compile my own
exe using the itkBinaryFillHoleImageFilter, and Visual Studio told me:
"error C2039: 'BinaryFillHoleImageFilter' : is not a member of 'itk'".
Actually, before the compilation, visual studio already told me the line 
"typedef itk::BinaryFillHoleImageFilter<Binary2DImageType>
HoleFillFilterType;" has problem:"Error: qualified name not allowed."
I also tried other filters under ITK\Modules\Filtering\LabelMap\, and they
have the same problem.
I know the filters under ITK\Modules\Filtering\LabelMap\ all came from
Gaëtan's contribution
(http://www.insight-journal.org/browse/publication/176), but as I googled
itkBinaryFillHoleImageFilter, it seems nobody had the same problem as mine. 
My codes and cmake file are as below.
Thank you!
Hongkai
#include <fstream>
#include "itkImage.h"
#include "itkBinaryThresholdImageFilter.h"
#include "itkSliceBySliceImageFilter.h"
#include "itkBinaryFillholeImageFilter.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "stdlib.h"
int main(int argc, char *argv[] )
{
  const  unsigned int   Dimension = 3;
  typedef   float  InputPixelType;
  typedef   unsigned char  BinaryPixelType;
  typedef   float  OutputPixelType;    
  typedef itk::Image< InputPixelType,  Dimension >   InputImageType;
  typedef itk::Image< BinaryPixelType,  Dimension >   BinaryImageType;
  typedef itk::Image< BinaryPixelType,  2 >   Binary2DImageType;
  typedef itk::Image< OutputPixelType, Dimension >   OutputImageType;
  typedef itk::ImageFileReader< InputImageType  >  ReaderType;
  typedef itk::ImageFileWriter< BinaryImageType >  WriterType;
  ReaderType::Pointer reader = ReaderType::New();
  WriterType::Pointer writer = WriterType::New();
  reader->SetFileName( argv[1] );
  writer->SetFileName( argv[2] );
  reader->Update();
  //----------- Thresholding filter -------------------------------//
  typedef itk::BinaryThresholdImageFilter< InputImageType, BinaryImageType > 
ThresholdFilterType;
  ThresholdFilterType::Pointer ThresholdFilter = ThresholdFilterType::New();
  ThresholdFilter->SetOutsideValue( 0 );
  ThresholdFilter->SetInsideValue( 1 );
  ThresholdFilter->SetLowerThreshold( -100 );
  ThresholdFilter->SetUpperThreshold( 1e30 );
  
  //------------ Slice by slice filling holes -----------------------//
  typedef itk::SliceBySliceImageFilter< BinaryImageType, BinaryImageType>
SbSFilterType;
  SbSFilterType::Pointer SbSFilter = SbSFilterType::New();
  typedef itk::BinaryFillHoleImageFilter<Binary2DImageType>
HoleFillFilterType;
  HoleFillFilterType::Pointer HoleFillFilter = HoleFillFilterType::New();
  SbSFilter->SetFilter(HoleFillFilter);
  
  //Assemble the processing pipeline
  ThresholdFilter->SetInput( reader->GetOutput() );
  SbSFilter->SetInput(ThresholdFilter->GetOutput());
  writer->SetInput(SbSFilter->GetOutput() );
  writer->Update();
  return EXIT_SUCCESS;
}
CMake list:
PROJECT(MyProject)
FIND_PACKAGE(ITK)
IF(ITK_FOUND)
  INCLUDE(${ITK_USE_FILE})
ELSE(ITK_FOUND)
  MESSAGE(FATAL_ERROR
  "ITK not found. Please set ITK_DIR.")
ENDIF(ITK_FOUND)
ADD_EXECUTABLE(MyProject MyProject.cxx )
TARGET_LINK_LIBRARIES(MyProject 
  ${ITK_LIBRARIES}
  )
--
View this message in context: http://itk-users.7.n7.nabble.com/BinaryFillHoleImageFilter-not-recognized-as-a-member-of-itk-tp31707.html
Sent from the ITK - Users mailing list archive at Nabble.com.
    
    
More information about the Insight-users
mailing list