You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.3 KiB
69 lines
2.3 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkImageSkeleton2D.h,v $
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkImageSkeleton2D - Skeleton of 2D images.
|
|
// .SECTION Description
|
|
// vtkImageSkeleton2D should leave only single pixel width lines
|
|
// of non-zero-valued pixels (values of 1 are not allowed).
|
|
// It works by erosion on a 3x3 neighborhood with special rules.
|
|
// The number of iterations determines how far the filter can erode.
|
|
// There are three pruning levels:
|
|
// prune == 0 will leave traces on all angles...
|
|
// prune == 1 will not leave traces on 135 degree angles, but will on 90.
|
|
// prune == 2 does not leave traces on any angles leaving only closed loops.
|
|
// Prune defaults to zero. The output scalar type is the same as the input.
|
|
|
|
|
|
|
|
#ifndef __vtkImageSkeleton2D_h
|
|
#define __vtkImageSkeleton2D_h
|
|
|
|
#include "vtkImageIterateFilter.h"
|
|
|
|
class VTK_IMAGING_EXPORT vtkImageSkeleton2D : public vtkImageIterateFilter
|
|
{
|
|
public:
|
|
static vtkImageSkeleton2D *New();
|
|
vtkTypeRevisionMacro(vtkImageSkeleton2D,vtkImageIterateFilter);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// When prune is on, only closed loops are left unchanged.
|
|
vtkSetMacro(Prune,int);
|
|
vtkGetMacro(Prune,int);
|
|
vtkBooleanMacro(Prune,int);
|
|
|
|
// Description:
|
|
// Sets the number of cycles in the erosion.
|
|
void SetNumberOfIterations(int num);
|
|
|
|
protected:
|
|
vtkImageSkeleton2D();
|
|
~vtkImageSkeleton2D() {};
|
|
|
|
int Prune;
|
|
|
|
virtual int IterativeRequestUpdateExtent(vtkInformation* in,
|
|
vtkInformation* out);
|
|
void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
|
|
int outExt[6], int id);
|
|
private:
|
|
vtkImageSkeleton2D(const vtkImageSkeleton2D&); // Not implemented.
|
|
void operator=(const vtkImageSkeleton2D&); // Not implemented.
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|