7 #ifndef __vtkPlusBoneEnhancer_h 8 #define __vtkPlusBoneEnhancer_h 11 #include "vtkPlusImageProcessingExport.h" 13 #include "vtkImageAlgorithm.h" 16 #include <vtkSmartPointer.h> 17 #include <vtkSetGet.h> 20 class vtkImageThreshold;
21 class vtkImageGaussianSmooth;
22 class vtkImageSobel2D;
23 class vtkImageIslandRemoval2D;
24 class vtkImageDilateErode3D;
37 virtual void PrintSelf(ostream& os, vtkIndent indent);
52 vtkSetMacro(IntermediateImageFileName, std::string);
53 vtkSetMacro(SaveIntermediateResults,
bool);
54 vtkGetMacro(SaveIntermediateResults,
bool);
57 vtkSetMacro(NumberOfScanLines,
int);
58 vtkGetMacro(NumberOfScanLines,
int);
60 vtkSetMacro(NumberOfSamplesPerScanLine,
int);
61 vtkGetMacro(NumberOfSamplesPerScanLine,
int);
63 vtkSetVector3Macro(MmToPixelFanImage,
double);
64 vtkGetVector3Macro(MmToPixelFanImage,
double);
66 vtkSetMacro(RadiusStartMm,
int);
67 vtkGetMacro(RadiusStartMm,
int);
69 vtkSetMacro(RadiusStopMm,
int);
70 vtkGetMacro(RadiusStopMm,
int);
72 vtkSetMacro(ThetaStartDeg,
int);
73 vtkGetMacro(ThetaStartDeg,
int);
75 vtkSetMacro(ThetaStopDeg,
int);
76 vtkGetMacro(ThetaStopDeg,
int);
78 void SetGaussianStdDev(
double GaussianStdDev);
79 void SetGaussianKernelSize(
double GaussianKernelSize);
81 void SetIslandAreaThreshold(
int islandAreaThreshold);
82 vtkGetMacro(IslandAreaThreshold,
int);
84 vtkSetVector2Macro(ErosionKernelSize,
int);
85 vtkGetVector2Macro(ErosionKernelSize,
int);
87 vtkSetVector2Macro(DilationKernelSize,
int);
88 vtkGetVector2Macro(DilationKernelSize,
int);
90 void ThresholdViaStdDeviation(vtkSmartPointer<vtkImageData> inputImage);
94 void RemoveNoise(vtkSmartPointer<vtkImageData> inputImage);
95 vtkSmartPointer<vtkImageData> UnprocessedFrameToLinearImage(igsioTrackedFrame* inputFrame);
96 void LinearToFanImage(vtkSmartPointer<vtkImageData> inputImage, igsioTrackedFrame* outputFrame);
99 void MarkShadowOutline(vtkSmartPointer<vtkImageData> inputImage);
102 std::map<char*, vtkSmartPointer<vtkIGSIOTrackedFrameList> >
GetIntermediateImageMap() {
return (this->IntermediateImageMap); };
103 PlusStatus SaveAllIntermediateResultsToFile();
104 PlusStatus SaveIntermediateResultToFile(
char* fileNamePostfix);
110 void FillLinesImage(vtkSmartPointer<vtkImageData> inputImageData);
111 void VectorImageToUchar(vtkSmartPointer<vtkImageData> inputImage);
113 void ImageConjunction(vtkSmartPointer<vtkImageData> inputImage, vtkSmartPointer<vtkImageData> maskImage);
115 void AddIntermediateImage(
char* fileNamePostfix, vtkSmartPointer<vtkImageData> image);
116 void AddIntermediateFromFilter(
char* fileNamePostfix, vtkImageAlgorithm* imageAlgorithm);
134 double MmToPixelFanImage[3];
148 int ErosionKernelSize[2];
149 int DilationKernelSize[2];
vtkSmartPointer< vtkImageGaussianSmooth > GaussianSmooth
vtkSmartPointer< vtkImageSobel2D > EdgeDetector
vtkSmartPointer< vtkImageDilateErode3D > ImageDialator
double GaussianKernelSize
vtkSmartPointer< vtkPlusUsScanConvert > ScanConverter
virtual void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
virtual const char * GetProcessorTypeName()
vtkSmartPointer< vtkImageThreshold > ImageBinarizer
vtkSmartPointer< vtkImageData > ProcessedLinesImage
vtkSmartPointer< vtkImageIslandRemoval2D > IslandRemover
std::vector< char * > IntermediatePostfixes
virtual PlusStatus ProcessFrame(igsioTrackedFrame *inputFrame, igsioTrackedFrame *outputFrame)=0
vtkImageData * GetProcessedLinesImage()
Simple interface class to allow running various algorithms that process tracked frame lists.
virtual PlusStatus ReadConfiguration(vtkXMLDataElement *processingElement)
This is a base class for defining a common scan conversion algorithm interface for all kinds of probe...
std::string IntermediateImageFileName
virtual PlusStatus WriteConfiguration(vtkXMLDataElement *processingElement)
vtkSmartPointer< vtkImageData > ConversionImage
vtkSmartPointer< vtkImageDilateErode3D > ImageEroder
std::map< char *, vtkSmartPointer< vtkIGSIOTrackedFrameList > > IntermediateImageMap
bool SaveIntermediateResults
std::vector< std::map< std::string, int > > BoneAreasInfo
vtkSmartPointer< vtkImageData > BinaryImageForMorphology
int NumberOfSamplesPerScanLine
vtkSmartPointer< vtkImageData > LinesImage
Localize bone surfaces in ultrasound images.
std::map< char *, vtkSmartPointer< vtkIGSIOTrackedFrameList > > GetIntermediateImageMap()