iSpike
2.1
Spike conversion library for robotics
|
00001 #ifndef VISUALINPUTCHANNEL_HPP_ 00002 #define VISUALINPUTCHANNEL_HPP_ 00003 00004 //iSpike includes 00005 #include <iSpike/Channel/InputChannel/InputChannel.hpp> 00006 #include <iSpike/Reader/VisualReader.hpp> 00007 #include <iSpike/VisualDataReducer/LogPolarVisualDataReducer.hpp> 00008 #include <iSpike/VisualFilter/DOGVisualFilter.hpp> 00009 #include <iSpike/NeuronSim/IzhikevichNeuronSim.hpp> 00010 00011 //Other includes 00012 #include <string> 00013 #include <vector> 00014 using namespace std; 00015 00016 namespace ispike { 00017 00019 class VisualInputChannel : public InputChannel { 00020 public: 00021 VisualInputChannel(); 00022 virtual ~VisualInputChannel(); 00023 const vector<unsigned>& getFiring() { return neuronSim.getSpikes(); } 00024 void initialize(Reader* reader, map<string, Property>& properties); 00025 void setProperties(map<string, Property>& properties); 00026 void step(); 00027 00028 00029 protected: 00030 void updateProperties(map<string, Property>& properties); 00031 00032 00033 private: 00035 VisualReader* reader; 00036 00038 LogPolarVisualDataReducer* dataReducer; 00039 00041 DOGVisualFilter* dogFilter; 00042 00044 IzhikevichNeuronSim neuronSim; 00045 00047 double currentFactor; 00048 00050 double constantCurrent; 00051 00053 unsigned currentImageID; 00054 00055 }; 00056 } 00057 00058 #endif /* VISUALINPUTCHANNEL_HPP_ */