ITK/Examples/EdgesAndGradients/BinaryContourImageFilter: Difference between revisions
(Use QuickView) |
No edit summary |
||
Line 1: | Line 1: | ||
<div class="floatright">[[File:ITK_Examples_Baseline_EdgesAndGradients_TestBinaryContourImageFilter.png]]</div> | |||
This example demonstrates how to find the edges of binary blobs in an image. An example image with two solid white rectangles is programmatically created. This original image and the blob outlines are displayed. | This example demonstrates how to find the edges of binary blobs in an image. An example image with two solid white rectangles is programmatically created. This original image and the blob outlines are displayed. | ||
Revision as of 04:38, 13 December 2010
This example demonstrates how to find the edges of binary blobs in an image. An example image with two solid white rectangles is programmatically created. This original image and the blob outlines are displayed.
BinaryContourImageFilter.cxx
<source lang="cpp">
- include "itkImage.h"
- include "itkImageFileWriter.h"
- include "itkBinaryContourImageFilter.h"
- include "QuickView.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::BinaryContourImageFilter <ImageType, ImageType > binaryContourImageFilterType;
binaryContourImageFilterType::Pointer binaryContourFilter = binaryContourImageFilterType::New (); binaryContourFilter->SetInput(image);
QuickView viewer; viewer.AddImage<ImageType>(image); viewer.AddImage<ImageType>(binaryContourFilter->GetOutput()); viewer.Visualize();
return EXIT_SUCCESS;
}
void CreateImage(ImageType::Pointer image) {
// Create an image with 2 connected components ImageType::RegionType region; ImageType::IndexType start; start[0] = 0; start[1] = 0;
ImageType::SizeType size; unsigned int NumRows = 200; unsigned int NumCols = 300; size[0] = NumRows; size[1] = NumCols;
region.SetSize(size); region.SetIndex(start);
image->SetRegions(region); image->Allocate();
// Make a square for(unsigned int r = 20; r < 80; r++) { for(unsigned int c = 30; c < 100; c++) { ImageType::IndexType pixelIndex; pixelIndex[0] = r; pixelIndex[1] = c;
image->SetPixel(pixelIndex, 255); } }
// Make another square for(unsigned int r = 100; r < 130; r++) { for(unsigned int c = 115; c < 160; c++) { ImageType::IndexType pixelIndex; pixelIndex[0] = r; pixelIndex[1] = c;
image->SetPixel(pixelIndex, 255); } }
} </source>
CMakeLists.txt
<source lang="cmake"> cmake_minimum_required(VERSION 2.6)
PROJECT(BinaryContourImageFilter)
include_directories(/home/doriad/src/ITK/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/src/)
FIND_PACKAGE(VTK REQUIRED) INCLUDE(${VTK_USE_FILE})
FIND_PACKAGE(ITK REQUIRED) INCLUDE(${ITK_USE_FILE})
ADD_EXECUTABLE(BinaryContourImageFilter BinaryContourImageFilter.cxx) TARGET_LINK_LIBRARIES(BinaryContourImageFilter vtkHybrid ITKBasicFilters ITKCommon ITKIO) </source>