00001
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 #ifndef INC_RVC_SPATFILT_H
00065 #define INC_RVC_SPATFILT_H
00066
00067 #ifndef INC_RVC_SIMPLE_H
00068 #include <rvc/simple.h>
00069 #endif
00070
00071 #ifndef INC_MI32_DOUBLEAR_H
00072 #include <mi32/doublear.h>
00073 #endif
00074
00075 namespace RVC {
00076
00077 class SPATIALFILTER : public RVC::SIMPLE {
00078 public:
00079
00080 enum FILTERTYPE {
00081 FILTERTYPE_LowPass = 1,
00082 FILTERTYPE_HighPass,
00083 FILTERTYPE_HighBoost,
00084 FILTERTYPE_Median,
00085 FILTERTYPE_Modal,
00086 FILTERTYPE_StdDev,
00087 FILTERTYPE_Gradient,
00088 FILTERTYPE_Sigma,
00089 FILTERTYPE_Frost,
00090 FILTERTYPE_LocalContrast,
00091 FILTERTYPE_Range,
00092 FILTERTYPE_Olympic,
00093 FILTERTYPE_Teager,
00094 FILTERTYPE_Volterra,
00095 FILTERTYPE_LUM,
00096 FILTERTYPE_CS,
00097 FILTERTYPE_Lee,
00098 FILTERTYPE_MLM,
00099 FILTERTYPE_PM,
00100 FILTERTYPE_AMPM,
00101 FILTERTYPE_WMMR,
00102 FILTERTYPE_KuanLLMMSE,
00103 FILTERTYPE_KuanMAP,
00104 FILTERTYPE_Froelich,
00105 FILTERTYPE_UserDefinedSharp,
00106 FILTERTYPE_UserDefinedSmooth
00107 };
00108
00109 SPATIALFILTER (
00110 );
00111
00112 SPATIALFILTER (
00113 const RVC::SPATIALFILTER& rhs
00114 );
00115
00116 virtual ~SPATIALFILTER (
00117 );
00118
00119 RVC::SPATIALFILTER& operator= (
00120 const RVC::SPATIALFILTER& rhs
00121 );
00122
00125 double GetBoost (
00126 ) const { return (m_Boost); }
00127
00130 INT16 GetCenterColumn (
00131 ) const { return (m_CenterColumn); }
00132
00135 INT16 GetCenterLine (
00136 ) const { return (m_CenterLine); }
00137
00140 const DOUBLE_ARRAY<double>& GetFilterData (
00141 ) const { return (m_FilterData); }
00142
00145 FILTERTYPE GetFilterType (
00146 ) const { return (m_FilterType); }
00147
00150 double GetMinInputThresh (
00151 ) const { return (m_MinInputThresh); }
00152
00155 double GetMaxInputThresh (
00156 ) const { return (m_MaxInputThresh); }
00157
00160 double GetMinOutputThresh (
00161 ) const { return (m_MinOutputThresh); }
00162
00165 double GetMaxOutputThresh (
00166 ) const { return (m_MaxOutputThresh); }
00167
00170 INT16 GetNumColumns (
00171 ) const { return (m_NumFiltColumns); }
00172
00175 INT16 GetNumLines (
00176 ) const { return (m_NumFiltLines); }
00177
00180 double GetOffset (
00181 ) const { return (m_Offset); }
00182
00185 double GetScale (
00186 ) const { return (m_Scale); }
00187
00190 UINT8 GetVersion (
00191 ) const { return (m_Version); }
00192
00194 void SetBoost (
00195 double boost
00196 ) { m_Boost = boost; }
00197
00199 void SetCenterColumn (
00200 INT16 CenterColumn
00201 ) { m_CenterColumn = CenterColumn; }
00202
00204 void SetCenterLine (
00205 INT16 CenterLine
00206 ) { m_CenterLine = CenterLine; }
00207
00209 void SetFilterData (
00210 const DOUBLE_ARRAY<double>& FilterData
00211 ) { m_FilterData = FilterData; }
00212
00214 void SetFilterType (
00215 FILTERTYPE FilterType
00216 ) { m_FilterType = FilterType; }
00217
00219 void SetMinInputThresh (
00220 double MinInputThresh
00221 ) { m_MinInputThresh = MinInputThresh; }
00222
00224 void SetMaxInputThresh (
00225 double MaxInputThresh
00226 ) { m_MaxInputThresh = MaxInputThresh; }
00227
00229 void SetMinOutputThresh (
00230 double MinOutputThresh
00231 ) { m_MinOutputThresh = MinOutputThresh; }
00232
00234 void SetMaxOutputThresh (
00235 double MaxOutputThresh
00236 ) { m_MaxOutputThresh = MaxOutputThresh; }
00237
00239 void SetNumColumns (
00240 INT16 NumColumns
00241 ) { m_NumFiltColumns = NumColumns; }
00242
00244 void SetNumLines (
00245 INT16 NumLines
00246 ) { m_NumFiltLines = NumLines; }
00247
00249 void SetOffset (
00250 double offset
00251 ) { m_Offset = offset; }
00252
00254 void SetScale (
00255 double scale
00256 ) { m_Scale = scale; }
00257
00259 void SetVersion (
00260 UINT8 Version
00261 ) { m_Version = Version; }
00262
00263 protected:
00264
00265 private:
00266 #ifndef GENERATING_DOXYGEN_OUTPUT
00267
00269 virtual OBJTYPE v_GetDftObjectType () const;
00270
00272 virtual ERRVALUE v_GetDftNameDesc (const OBJECT& parent, DESCRIPTOR& Descriptor);
00273 virtual ERRVALUE v_MakeData (RVC::OBJMAKEPARMS& ObjMakeParms);
00274 virtual ERRVALUE v_ReadData (RVC::OBJOPENPARMS& ObjOpenParms);
00275 virtual ERRVALUE v_WriteData (RVC::OBJOPENPARMS& ObjOpenParms);
00276
00277 INT16 m_NumFiltLines;
00278 INT16 m_NumFiltColumns;
00279 INT16 m_CenterLine;
00280 INT16 m_CenterColumn;
00281 double m_Boost;
00282 double m_Scale;
00283 double m_Offset;
00284 double m_MinInputThresh;
00285 double m_MaxInputThresh;
00286 double m_MinOutputThresh;
00287 double m_MaxOutputThresh;
00288 UINT8 m_Version;
00289 FILTERTYPE m_FilterType;
00290 DOUBLE_ARRAY<double> m_FilterData;
00291 #endif // GENERATING_DOXYGEN_OUTPUT
00292
00293 };
00294
00295 }
00296
00297 #endif