Filter Library | Camera | Interface Physics |
00001 /* 00002 * ScanFilterBgsDiff.h - background subtraction plus differential filter. 00003 * 00004 * This file is part of the Camera Filter Library. 00005 * Computer Aided Measurement Environment for Realtime Atomic imaging (Camera) 00006 * 00007 * Copyright (C) 2004-2005, Leiden Probe Microscopy. 00008 * Copyright (C) 2004-2005, Universiteit Leiden. 00009 * 00010 * Authors: Martin J. Moene (original) 00011 * 00012 * $Id: ScanFilterBgsDiff.h 236 2005-06-27 09:03:17Z moene $ 00013 */ 00014 00015 #ifndef CFL_SCANFILTERBGSDIFF_H 00016 #define CFL_SCANFILTERBGSDIFF_H 00017 00018 #if _MSC_VER > 1000 00019 #pragma once 00020 #endif // _MSC_VER > 1000 00021 00022 #include <cfl/ScanFilter.h> // for base class 00023 #include <cfl/ScanBaseBuffer.h> // for class CScanBaseBuffer 00024 #include <cfl/ScanFilterBgs_Planar.h> // for class CScanFilterBGS_Planar 00025 #include <cfl/ScanFilterDifferential.h> // for class CScanFilterDifferential 00026 00027 /** 00028 * \addtogroup cfl_filterbgsdiff Background Subtraction Plus Differential Filter (On-line, Frame by Frame). 00029 * \brief background subtraction plus differential filter (on-line, frame by frame). 00030 * 00031 00032 <h3>Purpose</h3> 00033 00034 Provide combined background subtraction -- differential filter for on-line use. 00035 00036 <h3>Description</h3> 00037 00038 This filter provides background subtraction combined with differential 00039 filtering for on-line use. 00040 00041 <h3>Algorithm</h3> 00042 00043 See \ref cfl_filterbgsplanar and \ref cfl_filterdifferential. 00044 00045 <h3>Examples</h3> 00046 Try to find some interesting pictures for most filters. 00047 00048 <h3>Contact</h3> 00049 Dipl.phys. M.J. Rost<br> 00050 Huygens Laboratorium<br> 00051 Universiteit Leiden<br> 00052 Niels Bohrweg 2<br> 00053 2333 CA Leiden, The Netherlands<br> 00054 <br> 00055 Tel: +31 71 5275600<br> 00056 Fax: +31 71 5275404<br> 00057 <br> 00058 E-mail: rost@physics.LeidenUniv.nl<br> 00059 Web: http://www.geocities.com/marcel_rost/<br> 00060 00061 * 00062 * @{ 00063 */ 00064 00065 DECLARE_CLASS( CScanFilterBgsDiff ); // create various types 00066 00067 /** 00068 * \brief on-line background subtraction plus differential combined filter. 00069 */ 00070 class CScanFilterBgsDiff : public CScanFilter 00071 { 00072 public: 00073 /// 00074 /// \name Construction 00075 /// @{ 00076 00077 /** 00078 * default constructor. 00079 */ 00080 CScanFilterBgsDiff(); 00081 00082 /** 00083 * destructor. 00084 */ 00085 ~CScanFilterBgsDiff(); 00086 00087 /// @} 00088 /// \name Camera--Filter Interface 00089 /// @{ 00090 00091 /** 00092 * this filter does not provide a dialog. 00093 */ 00094 virtual BOOL CanDoDialogEntry() const; 00095 00096 /** 00097 * check parameters, take care of a properly sized output buffer, 00098 * set its name and copy filter parameters and process; 00099 * see also CScanFilterNull::ApplyCore(). 00100 */ 00101 virtual BOOL Apply(); 00102 00103 /// @} 00104 /// \name Predicates 00105 /// @{ 00106 00107 /// @} 00108 /// \name Accessors 00109 /// @{ 00110 00111 /// @} 00112 /// \name Mutators 00113 /// @{ 00114 00115 /// @} 00116 00117 public: 00118 /** 00119 * the filter name. 00120 */ 00121 static LPCTSTR m_lpcsFilterName; 00122 00123 /** 00124 * the class short filtername. 00125 */ 00126 static LPCTSTR m_lpcsShortFilterName; 00127 00128 protected: 00129 /** 00130 * store or retrieve the object's settings. 00131 */ 00132 virtual void Serialize( CArchive& ar ); 00133 DECLARE_SERIAL( CScanFilterBgsDiff ) 00134 00135 protected: 00136 /** 00137 * the planar background subtraction filter. 00138 */ 00139 CScanFilterBGS_Planar m_bgsFilter; 00140 00141 /** 00142 * the frame by frame differential filter. 00143 */ 00144 CScanFilterDifferential m_diffFilter; 00145 00146 /** 00147 * the intermediate result buffer. 00148 */ 00149 CScanBaseBufferPtr m_lpsbTmp; 00150 }; 00151 00152 /// @} cfl_filterbgsdiff 00153 00154 #endif // CFL_SCANFILTERBGSDIFF_H 00155 00156 /* 00157 * end of file 00158 */ 00159