Filter Library Camera Interface Physics

ScanFilterBgsDiff.h

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 

Camera Filter Library documentation © 2004-2007 by Leiden Probe Microscopy