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_GRADIENT_IMAGE_FILTER_H_
00025 #define _SO_GRADIENT_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
00130 class SoGradientOperatorProcessing2d : public SoImageVizEngine
00131 {
00132
00133 SO_IMAGEVIZ_ENGINE_HEADER(SoGradientOperatorProcessing2d);
00134
00135 public:
00137 SoGradientOperatorProcessing2d();
00138
00140 SoSFImageDataAdapter inImage;
00141
00145 enum GradientOperator{
00151 CANNY_DERICHE = 0,
00156 SHEN_CASTAN = 1,
00157 SoDEPRECATED
00162 KERNEL3X3 = 6,
00163
00168 CANNY = 3,
00174 GAUSSIAN = 4,
00180 SOBEL = 5,
00186 PREWITT = 6
00187 };
00188
00192 SoSFEnum gradientOperator;
00193
00197 enum GradientMode{
00203 AMPLITUDE_MAX_OF_MAGS = 0,
00209 AMPLITUDE_EUCLIDEAN = 1,
00217 AMPLITUDE_AND_ORIENTATION = 2,
00224 X_AND_Y_GRADIENTS = 3
00225 };
00226
00230 SoSFEnum gradientMode;
00231
00233 SoSFFloat standardDeviation;
00234
00236 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outGradientXImage;
00237
00239 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outGradientYImage;
00240
00242 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outAmplitudeImage;
00243
00245 SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> outOrientationImage;
00246
00247
00248 private:
00250 virtual ~SoGradientOperatorProcessing2d();
00251
00252 };
00253
00254 #endif