00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SO_GRADIENT3D_IMAGE_FILTER_H_
00025 #define _SO_GRADIENT3D_IMAGE_FILTER_H_
00026 #include <ImageViz/SoImageViz.h>
00027 #include <ImageViz/Engines/SoSubImageVizEngine.h>
00028 #include <ImageViz/Engines/SoImageVizEngineOutput.h>
00029 #include <ImageViz/Engines/SoImageVizEngine.h>
00030
00031 #include <Inventor/fields/SoSFEnum.h>
00032 #include <Inventor/fields/SoSFFloat.h>
00033 #include <ImageViz/Fields/SoSFImageDataAdapter.h>
00034
00035
00092 class SoGradientOperatorProcessing3d : public SoImageVizEngine
00093 {
00094
00095 SO_IMAGEVIZ_ENGINE_HEADER(SoGradientOperatorProcessing3d);
00096
00097 public:
00099 SoGradientOperatorProcessing3d();
00100
00102 SoSFImageDataAdapter inImage;
00103
00107 enum GradientOperator{
00112 CANNY_DERICHE = 0,
00117 CANNY = 1,
00122 GAUSSIAN = 2,
00127 SOBEL = 4,
00132 PREWITT = 3
00133 };
00134
00138 SoSFEnum gradientOperator;
00139
00143 enum GradientMode{
00149 AMPLITUDE_MAX_OF_MAGS = 0,
00157 X_Y_AND_Z_GRADIENTS = 1,
00163 AMPLITUDE_EUCLIDEAN = 2
00164 };
00165
00169 SoSFEnum gradientMode;
00170
00172 SoSFFloat standardDeviation;
00173
00175 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outGradientXImage;
00176
00178 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outGradientYImage;
00179
00181 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outGradientZImage;
00182
00184 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outAmplitudeImage;
00185
00186
00187 private:
00189 virtual ~SoGradientOperatorProcessing3d();
00190
00191 };
00192
00193 #endif