Cloned library of VTK-5.0.0 with extra build files for internal package management.
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.
 
 
 
 
 
 

89 lines
2.5 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkImageIslandRemoval2D.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 vtkImageIslandRemoval2D - Removes small clusters in masks.
// .SECTION Description
// vtkImageIslandRemoval2D computes the area of separate islands in
// a mask image. It removes any island that has less than AreaThreshold
// pixels. Output has the same ScalarType as input. It generates
// the whole 2D output image for any output request.
#ifndef __vtkImageIslandRemoval2D_h
#define __vtkImageIslandRemoval2D_h
#include "vtkImageAlgorithm.h"
//BTX
typedef struct{
void *inPtr;
void *outPtr;
int idx0;
int idx1;
} vtkImage2DIslandPixel;
//ETX
class VTK_IMAGING_EXPORT vtkImageIslandRemoval2D : public vtkImageAlgorithm
{
public:
// Description:
// Constructor: Sets default filter to be identity.
static vtkImageIslandRemoval2D *New();
vtkTypeRevisionMacro(vtkImageIslandRemoval2D,vtkImageAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set/Get the cutoff area for removal
vtkSetMacro(AreaThreshold, int);
vtkGetMacro(AreaThreshold, int);
// Description:
// Set/Get whether to use 4 or 8 neighbors
vtkSetMacro(SquareNeighborhood, int);
vtkGetMacro(SquareNeighborhood, int);
vtkBooleanMacro(SquareNeighborhood, int);
// Description:
// Set/Get the value to remove.
vtkSetMacro(IslandValue, double);
vtkGetMacro(IslandValue, double);
// Description:
// Set/Get the value to put in the place of removed pixels.
vtkSetMacro(ReplaceValue, double);
vtkGetMacro(ReplaceValue, double);
protected:
vtkImageIslandRemoval2D();
~vtkImageIslandRemoval2D() {};
int AreaThreshold;
int SquareNeighborhood;
double IslandValue;
double ReplaceValue;
virtual int RequestData(vtkInformation *,
vtkInformationVector **,
vtkInformationVector *);
private:
vtkImageIslandRemoval2D(const vtkImageIslandRemoval2D&); // Not implemented.
void operator=(const vtkImageIslandRemoval2D&); // Not implemented.
};
#endif