/usr/include/InsightToolkit/Review/itkAnchorOpenCloseLine.h is in libinsighttoolkit3-dev 3.20.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | /*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: itkAnchorOpenCloseLine.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/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 notices for more information.
=========================================================================*/
#ifndef __itkAnchorOpenCloseLine_h
#define __itkAnchorOpenCloseLine_h
#include "itkAnchorHistogram.h"
//#define RAWHIST
namespace itk {
/**
* \class AnchorOpenCloseLine
* \brief class to implement openings and closings using anchor
* methods. This is the base class that must be instantiated with
* appropriate definitions of greater, less and so on
*/
template<class TInputPix, class THistogramCompare,
class TFunction1, class TFunction2>
class ITK_EXPORT AnchorOpenCloseLine
{
public:
/** Some convenient typedefs. */
typedef TInputPix InputImagePixelType;
AnchorOpenCloseLine();
~AnchorOpenCloseLine()
{
delete m_Histo;
}
void PrintSelf(std::ostream& os, Indent indent) const;
/** Single-threaded version of GenerateData. This filter delegates
* to GrayscaleGeodesicErodeImageFilter. */
void DoLine(InputImagePixelType * buffer, unsigned bufflength);
void SetSize(unsigned int size)
{
m_Size = size;
}
private:
unsigned int m_Size;
TFunction1 m_TF1;
TFunction2 m_TF2;
typedef MorphologyHistogram<InputImagePixelType> Histogram;
typedef MorphologyHistogramVec<InputImagePixelType,THistogramCompare> VHistogram;
typedef MorphologyHistogramMap<InputImagePixelType,THistogramCompare> MHistogram;
bool StartLine(InputImagePixelType * buffer,
InputImagePixelType &Extreme,
Histogram &histo,
unsigned &outLeftP,
unsigned &outRightP,
unsigned bufflength);
void FinishLine(InputImagePixelType * buffer,
InputImagePixelType &Extreme,
unsigned &outLeftP,
unsigned &outRightP,
unsigned bufflength);
bool UseVectorBasedHistogram()
{
// bool, short and char are acceptable for vector based algorithm: they do not require
// too much memory. Other types are not usable with that algorithm
return typeid(InputImagePixelType) == typeid(unsigned char)
|| typeid(InputImagePixelType) == typeid(signed char)
|| typeid(InputImagePixelType) == typeid(unsigned short)
|| typeid(InputImagePixelType) == typeid(signed short)
|| typeid(InputImagePixelType) == typeid(bool);
}
Histogram * m_Histo;
}; // end of class
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkAnchorOpenCloseLine.txx"
#endif
#endif
|