Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

VxFrmFtorLocMax.h

00001 /*
00002  *
00003  *  Copyright (c) 2001, TNO TPD, The Netherlands.
00004  *  All rights reserved. No part of this software may be handed to or used by persons 
00005  *  or organisation outside Kenniscentrum Watergraafsmeer (UvA-ISIS, TNO TPD) without 
00006  *  the written permission of TNO TPD.
00007  *
00008  *  Author(s):
00009  *      Jan Baan (baan@tpd.tno.nl)
00010  *      Jeroen Vendrig
00011  *
00012  * 
00013  */
00014 
00015 #ifndef VxFrmFtorLocMax_h
00016 #define VxFrmFtorLocMax_h
00017 
00018 #include "VxFrmFtorNgb.h"
00019 
00020 template<class T>
00021 class VxFrmFtorLocMax : public VxFrmFtorNgb {
00022 public:
00023     VxFrmFtorLocMax(int kernelSize) {
00024         for(int i=-kernelSize; i<=kernelSize; i++) {
00025             _kernel.push_back(i);
00026         }
00027     }
00028     
00029     VxFrmFtorLocMax(std::vector<int> kernel) {
00030         _kernel = kernel;
00031     }
00032 
00033     virtual void        Init(int frame) {
00034         _frameNr = frame;
00035         _output = 0;
00036     };
00037 
00038     virtual void        pushInput(int frame, const VxValue& input) {
00039         T inp;
00040         input.get(inp);
00041         if(inp>_output) {
00042             _output = inp;
00043         }
00044     }
00045 
00046     virtual VxValue     getOutput() {
00047         return VxValue((T) _output);
00048     }
00049 
00050     virtual std::vector<int> getKernel(int frame) {
00051         return _kernel;
00052     }
00053         
00054     virtual HxString    getInputClass() const {
00055         return HxClassName<T>();
00056     }
00057 
00058     virtual HxString    getOutputClass() const {
00059         return HxClassName<T>();
00060     }
00061 
00062     virtual HxString    name() const {
00063         return HxString("LocalMax");
00064     }
00065 
00066 
00067     virtual VxFrmFtorNgb* clone() const {
00068         return new VxFrmFtorLocMax(_kernel);
00069     }
00070     
00071 private:
00072 
00073     std::vector<int>    _kernel;
00074     int                 _frameNr;
00075     T                   _output;
00076     
00077 };
00078 #endif

Generated on Tue Feb 3 14:18:45 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001