Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkCalculateOversamplingFactor.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
4  Queen's University, Kingston, ON, Canada. All Rights Reserved.
5 
6  See COPYRIGHT.txt
7  or http://www.slicer.org/copyright/copyright.txt for details.
8 
9  Unless required by applicable law or agreed to in writing, software
10  distributed under the License is distributed on an "AS IS" BASIS,
11  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  See the License for the specific language governing permissions and
13  limitations under the License.
14 
15  This file was originally developed by Csaba Pinter, PerkLab, Queen's University
16  and was supported through the Applied Cancer Research Unit program of Cancer Care
17  Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
18 
19 ==============================================================================*/
20 
21 // .NAME vtkCalculateOversamplingFactor - Calculate oversampling factor based on model properties
22 // .SECTION Description
23 
24 #ifndef __vtkCalculateOversamplingFactor_h
25 #define __vtkCalculateOversamplingFactor_h
26 
27 // VTK includes
28 #include <vtkObject.h>
29 #include <vtkMassProperties.h>
30 #include <vtkPolyData.h>
31 
32 // SegmentationCore includes
33 #include "vtkOrientedImageData.h"
34 
35 #include "vtkSegmentationCoreConfigure.h"
36 
37 class vtkPiecewiseFunction;
38 
41 class vtkSegmentationCore_EXPORT vtkCalculateOversamplingFactor : public vtkObject
42 {
43 public:
44  static vtkCalculateOversamplingFactor *New();
45  vtkTypeMacro(vtkCalculateOversamplingFactor, vtkObject);
46  void PrintSelf(ostream& os, vtkIndent indent) override;
47 
48 public:
51  bool CalculateOversamplingFactor();
52 
57  static void ApplyOversamplingOnImageGeometry(vtkOrientedImageData* imageData, double oversamplingFactor);
58 
59 protected:
62  bool CalculateRelativeStructureSize();
63 
66  bool CalculateComplexityMeasure();
67 
70  double DetermineOversamplingFactor();
71 
77  void ClipMembershipFunction(vtkPiecewiseFunction* membershipFunction, double clipValue);
78 
79 public:
80  vtkGetObjectMacro(InputPolyData, vtkPolyData);
81  vtkSetObjectMacro(InputPolyData, vtkPolyData);
82 
83  vtkGetObjectMacro(ReferenceGeometryImageData, vtkOrientedImageData);
84  vtkSetObjectMacro(ReferenceGeometryImageData, vtkOrientedImageData);
85 
86  vtkGetMacro(OutputOversamplingFactor, double);
87 
88  vtkGetMacro(OutputRelativeStructureSize, double);
89  vtkGetMacro(OutputComplexityMeasure, double);
90  vtkGetMacro(OutputNormalizedShapeIndex, double);
91 
92  vtkGetMacro(LogSpeedMeasurements, bool);
93  vtkSetMacro(LogSpeedMeasurements, bool);
94  vtkBooleanMacro(LogSpeedMeasurements, bool);
95 
96 protected:
97  vtkGetObjectMacro(MassPropertiesAlgorithm, vtkMassProperties);
98  vtkSetObjectMacro(MassPropertiesAlgorithm, vtkMassProperties);
99 
100 protected:
102  vtkPolyData* InputPolyData;
103 
106 
109 
116 
119 
122  vtkMassProperties* MassPropertiesAlgorithm;
123 
124 protected:
126  ~vtkCalculateOversamplingFactor() override;
127 
128 private:
130  void operator=(const vtkCalculateOversamplingFactor&) = delete;
131  //ETX
132 };
133 
134 #endif
135 
double OutputOversamplingFactor
Calculated oversampling factor for the segmentation node and its reference volume.
double OutputRelativeStructureSize
Calculated relative structure size.
double OutputComplexityMeasure
Calculated complexity measure.
Image data containing orientation information.
double OutputNormalizedShapeIndex
Calculated normalized shape index (NSI), for debugging purposes.
Calculate oversampling factor based on model properties using fuzzy logics.
vtkOrientedImageData * ReferenceGeometryImageData
Image containing the rasterization reference geometry.
vtkPolyData * InputPolyData
Input poly data to rasterize.
bool LogSpeedMeasurements
Flag telling whether the speed measurements are logged on standard output.