JeVois  1.20
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
__MODULE__ Class Reference

JeVois sample module.

This module is provided as an example of how to create a new standalone module.

By default, we get the next video frame from the camera as an OpenCV BGR (color) image named 'inimg'. We then apply some image processing to it to create an overlay in Pro/GUI mode, an output BGR image named 'outimg' in Legacy mode, or no image in Headless mode.

  • In Legacy mode (JeVois-A33 or JeVois-Pro acts as a webcam connected to a host): process(inframe, outframe) is called on every frame. A video frame from the camera sensor is given in 'inframe' and the process() function create an output frame that is sent over USB to the host computer (JeVois-A33) or displayed (JeVois-Pro).
  • In Pro/GUI mode (JeVois-Pro is connected to an HDMI display): process(inframe, helper) is called on every frame. A video frame from the camera is given, as well as a GUI helper that can be used to create overlay drawings.
  • In Headless mode (JeVois-A33 or JeVois-Pro only produces text messages over serial port, no video output): process(inframe) is called on every frame. A video frame from the camera is given, and the module sends messages over serial to report what it sees.

Which mode is activated depends on which VideoMapping was selected by the user. The VideoMapping specifies camera format and framerate, and what kind of mode and output format to use.

See http://jevois.org/tutorials for tutorials on getting started with programming JeVois in Python without having to install any development software on your host computer.

Author
AUTHOR

@videomapping VIDEOMAPPING @email EMAIL @address fixme

Definition at line 59 of file Module.C.

Inheritance diagram for __MODULE__:
Collaboration diagram for __MODULE__:

Public Member Functions

virtual ~__MODULE__ ()
 Virtual destructor for safe inheritance. More...
 
virtual void process (jevois::InputFrame &&inframe, jevois::OutputFrame &&outframe) override
 Processing function. More...
 
virtual void process (jevois::InputFrame &&inframe) override
 Processing function with no USB output (headless) More...
 
virtual void process (jevois::InputFrame &&inframe, jevois::GUIhelper &helper) override
 Processing function with zero-copy and GUI on JeVois-Pro. More...
 
- Public Member Functions inherited from jevois::StdModule
 StdModule (std::string const &instance)
 Constructor. More...
 
virtual ~StdModule ()
 Virtual destructor for safe inheritance. More...
 
void sendSerialImg1Dx (unsigned int camw, float x, float size=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 1D message for an X image coordinate. More...
 
void sendSerialStd1Dx (float x, float size=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 1D message for a standardized X coordinate. More...
 
void sendSerialImg1Dy (unsigned int camh, float y, float size=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 1D message for an Y image coordinate. More...
 
void sendSerialStd1Dy (float y, float size=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 1D message for a standardized Y coordinate. More...
 
void sendSerialImg2D (unsigned int camw, unsigned int camh, float x, float y, float w=0.0F, float h=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 2D message for image coordinates. More...
 
void sendSerialStd2D (float x, float y, float w=0.0F, float h=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 2D message for standardized coordinates. More...
 
template<typename T = int>
void sendSerialContour2D (unsigned int camw, unsigned int camh, std::vector< cv::Point_< T > > points, std::string const &id="", std::string const &extra="")
 Send standardized 2D message for polygons in image coordinates. More...
 
void sendSerialStd3D (float x, float y, float z, float w=0.0F, float h=0.0F, float d=0.0F, float q1=0.0F, float q2=0.0F, float q3=0.0f, float q4=0.0F, std::string const &id="", std::string const &extra="")
 Send standardized 3D message. More...
 
void sendSerialStd3D (std::vector< cv::Point3f > points, std::string const &id="", std::string const &extra="")
 Send standardized 3D message. More...
 
void sendSerialObjReco (std::vector< ObjReco > const &res)
 Send a standardized object recognition message. More...
 
void sendSerialObjDetImg2D (unsigned int camw, unsigned int camh, float x, float y, float w, float h, std::vector< ObjReco > const &res)
 Send a standardized object detection + recognition message. More...
 
void sendSerialObjDetImg2D (unsigned int camw, unsigned int camh, ObjDetect const &det)
 Send a standardized object detection + recognition message. More...
 
- Public Member Functions inherited from jevois::Module
 Module (std::string const &instance)
 Constructor. More...
 
virtual ~Module ()
 Virtual destructor for safe inheritance. More...
 
virtual void sendSerial (std::string const &str)
 Send a string over the 'serout' serial port. More...
 
virtual void parseSerial (std::string const &str, std::shared_ptr< UserInterface > s)
 Receive a string from a serial port which contains a user command. More...
 
virtual void supportedCommands (std::ostream &os)
 Human-readable description of this Module's supported custom commands. More...
 
- Public Member Functions inherited from jevois::Component
 Component (std::string const &instance)
 Constructor. More...
 
virtual ~Component ()
 Virtual destructor for safe inheritance. More...
 
template<class Comp , typename... Args>
std::shared_ptr< Comp > addSubComponent (std::string const &instance, Args &&...args)
 Pseudo-constructor: construct and add another component as a subcomponent of this one. More...
 
template<class Comp >
void removeSubComponent (std::shared_ptr< Comp > &component)
 Remove a sub-Component from this Component, by shared_ptr. More...
 
void removeSubComponent (std::string const &instance, bool warnIfNotFound=true)
 Remove a sub-Component from this Component, by instance name. More...
 
template<class Comp = jevois::Component>
std::shared_ptr< Comp > getSubComponent (std::string const &instance) const
 Get a sub-component by instance name. More...
 
bool isTopLevel () const
 Returns true if this component is top-level, i.e., its parent is jevois::Manager. More...
 
Engineengine () const
 Get a handle to our Engine, or throw if we do not have an Engine as root ancestor. More...
 
bool initialized () const
 Has this component been initialized yet? More...
 
const std::string & className () const
 The class name of this component. More...
 
const std::string & instanceName () const
 The instance name of this component. More...
 
template<typename T >
std::vector< std::string > setParamVal (std::string const &paramdescriptor, T const &val)
 Set a parameter value. More...
 
template<typename T >
void setParamValUnique (std::string const &paramdescriptor, T const &val)
 Set a parameter value, simple version assuming only one parameter match. More...
 
template<typename T >
std::vector< std::pair< std::string, T > > getParamVal (std::string const &paramdescriptor) const
 Get parameter(s) value(s) by descriptor. More...
 
template<typename T >
getParamValUnique (std::string const &paramdescriptor) const
 Get a parameter value, simple version assuming only one parameter match. More...
 
std::vector< std::string > setParamString (std::string const &paramdescriptor, std::string const &val)
 Set a parameter value, by string. More...
 
void setParamStringUnique (std::string const &paramdescriptor, std::string const &val)
 Set a parameter value by string, simple version assuming only one parameter match. More...
 
std::vector< std::pair< std::string, std::string > > getParamString (std::string const &paramdescriptor) const
 Get a parameter value, by string. More...
 
std::string getParamStringUnique (std::string const &paramdescriptor) const
 Get a parameter value by string, simple version assuming only one parameter match. More...
 
void freezeParam (std::string const &paramdescriptor)
 Freeze a parameter, by name, see ParameterBase::freeze() More...
 
void unFreezeParam (std::string const &paramdescriptor)
 Unfreeze a parameter, by name, see ParameterBase::unFreeze() More...
 
void freezeAllParams ()
 Freeze all parameters. More...
 
void unFreezeAllParams ()
 Unfreeze all parameters. More...
 
std::string descriptor () const
 Get our full descriptor (including all parents) as [Instancename]:[...]:[...]. More...
 
void setParamsFromFile (std::string const &filename)
 Set some parameters from a file. More...
 
std::istream & setParamsFromStream (std::istream &is, std::string const &absfile)
 Set some parameters from an open stream. More...
 
virtual void paramInfo (std::shared_ptr< UserInterface > s, std::map< std::string, std::string > &categs, bool skipFrozen, std::string const &cname="", std::string const &pfx="")
 Get machine-oriented descriptions of all parameters. More...
 
void foreachParam (std::function< void(std::string const &compname, ParameterBase *p)> func, std::string const &cname="")
 Run a function on every param we hold. More...
 
template<typename T >
std::shared_ptr< DynamicParameter< T > > addDynamicParameter (std::string const &name, std::string const &description, T const &defaultValue, ParameterCategory const &category)
 Add a new parameter after the Component has already been constructed. More...
 
template<typename T , template< typename > class ValidValuesSpec>
std::shared_ptr< DynamicParameter< T > > addDynamicParameter (std::string const &name, std::string const &description, T const &defaultValue, ValidValuesSpec< T > const &validValuesSpec, ParameterCategory const &category)
 Add a new parameter after the Component has already been constructed. More...
 
template<typename T >
void setDynamicParameterCallback (std::string const &name, std::function< void(T const &)> cb, bool callnow=true)
 Register a callback with a previously created dynamic parameter. More...
 
void removeDynamicParameter (std::string const &name)
 Remove a previously added dynamic parameter. More...
 
void setPath (std::string const &path)
 Assign a filesystem path to this component. More...
 
std::filesystem::path absolutePath (std::filesystem::path const &path="")
 If given path is relative (not starting with /), prepend the Component path to it. More...
 
- Public Member Functions inherited from jevois::ParameterRegistry
virtual ~ParameterRegistry ()
 Virtual destructor for safe inheritance. More...
 

Additional Inherited Members

- Protected Member Functions inherited from jevois::StdModule
void sendSerialMarkStart ()
 Send a message MARK START to indicate the beginning of processing. More...
 
void sendSerialMarkStop ()
 Send a message MARK STOP to indicate the end of processing. More...
 
std::string getStamp () const
 Get a string with the frame/date/time stamp in it, depending on serstamp parameter. More...
 
- Protected Member Functions inherited from jevois::Component
virtual void preInit ()
 Called before all sub-Components are init()ed. More...
 
virtual void postInit ()
 Called after all sub-Components are init()ed. More...
 
virtual void preUninit ()
 Called before all sub-Components are uninit()ed. More...
 
virtual void postUninit ()
 Called after all sub-Components are uninit()ed. More...
 
- Protected Member Functions inherited from jevois::ParameterRegistry
void addParameter (ParameterBase *const param)
 The Parameter class uses this method to register itself on construction with its owning Component. More...
 
void removeParameter (ParameterBase *const param)
 The Parameter class uses this method to un-register itself on destruction with its owning Component. More...
 
void callbackInitCall ()
 For all parameters that have a callback which has never been called, call it with the default param value. More...
 

Constructor & Destructor Documentation

◆ ~__MODULE__()

virtual __MODULE__::~__MODULE__ ( )
inlinevirtual

Virtual destructor for safe inheritance.

Definition at line 66 of file Module.C.

Member Function Documentation

◆ process() [1/3]

virtual void __MODULE__::process ( jevois::InputFrame &&  inframe)
inlineoverridevirtual

Processing function with no USB output (headless)

Reimplemented from jevois::Module.

Definition at line 101 of file Module.C.

References jevois::Module::sendSerial().

◆ process() [2/3]

virtual void __MODULE__::process ( jevois::InputFrame &&  inframe,
jevois::GUIhelper helper 
)
inlineoverridevirtual

◆ process() [3/3]

virtual void __MODULE__::process ( jevois::InputFrame &&  inframe,
jevois::OutputFrame &&  outframe 
)
inlineoverridevirtual

The documentation for this class was generated from the following file: