ITK/Examples/ImageProcessing/BinaryImageToShapeLabelMapFilter: Difference between revisions
(CreateImage must be static to avoid duplicate symbols in test driver.) |
|||
Line 7: | Line 7: | ||
typedef itk::Image<unsigned char, 2> ImageType; | typedef itk::Image<unsigned char, 2> ImageType; | ||
void CreateImage(ImageType::Pointer image); | static void CreateImage(ImageType::Pointer image); | ||
int main(int, char *[]) | int main(int, char *[]) |
Revision as of 15:19, 10 December 2010
BinaryImageToShapeLabelMapFilter.cxx
<source lang="cpp">
- include "itkImage.h"
- include "itkImageFileWriter.h"
- include "itkImageRegionIterator.h"
- include "itkBinaryImageToShapeLabelMapFilter.h"
typedef itk::Image<unsigned char, 2> ImageType; static void CreateImage(ImageType::Pointer image);
int main(int, char *[]) {
ImageType::Pointer image = ImageType::New(); CreateImage(image); typedef itk::BinaryImageToShapeLabelMapFilter<ImageType> LabelMapFilterType; LabelMapFilterType::Pointer labelMapFilter = LabelMapFilterType::New(); labelMapFilter->SetInput(image); labelMapFilter->Update(); LabelMapFilterType::OutputImageType * labelMap = labelMapFilter->GetOutput(); std::cout << "There are " << labelMap->GetNumberOfLabelObjects() << " objects." << std::endl; for(unsigned int i = 0; i < labelMap->GetNumberOfLabelObjects(); i++) { std::cout << "Object " << i << " has bounding box " << labelMap->GetNthLabelObject(i)->GetBoundingBox() << std::endl; } return EXIT_SUCCESS;
}
void CreateImage(ImageType::Pointer image) {
ImageType::IndexType start; start.Fill(0);
ImageType::SizeType size; size.Fill(20);
ImageType::RegionType region; region.SetSize(size); region.SetIndex(start); image->SetRegions(region); image->Allocate();
itk::ImageRegionIterator<ImageType> imageIterator(image,image->GetLargestPossibleRegion());
// Make a square while(!imageIterator.IsAtEnd()) { if((imageIterator.GetIndex()[0] > 5 && imageIterator.GetIndex()[0] < 10) && (imageIterator.GetIndex()[1] > 5 && imageIterator.GetIndex()[1] < 10) ) { imageIterator.Set(255); } else { imageIterator.Set(0); }
++imageIterator; }
} </source>
CMakeLists.txt
<source lang="cmake"> cmake_minimum_required(VERSION 2.6)
PROJECT(BinaryImageToShapeLabelMapFilter)
FIND_PACKAGE(ITK REQUIRED) INCLUDE(${ITK_USE_FILE})
ADD_EXECUTABLE(BinaryImageToShapeLabelMapFilter BinaryImageToShapeLabelMapFilter.cxx) TARGET_LINK_LIBRARIES(BinaryImageToShapeLabelMapFilter ITKIO ITKBasicFilters ITKCommon ITKReview ) </source>