JeVoisBase
1.12
JeVois Smart Embedded Machine Vision Toolkit Base Modules
|
|
Simple demo of QR-code and barcode detection and decoding using the ZBar library. More...
Public Member Functions | |
DemoQRcode (std::string const &instance) | |
Constructor. More... | |
virtual | ~DemoQRcode () |
Virtual destructor for safe inheritance. More... | |
virtual void | process (jevois::InputFrame &&inframe) override |
Processing function, no video output. More... | |
virtual void | process (jevois::InputFrame &&inframe, jevois::OutputFrame &&outframe) override |
Processing function with video output to USB. More... | |
DemoQRcode (std::string const &instance) | |
Constructor. More... | |
virtual | ~DemoQRcode () |
Virtual destructor for safe inheritance. More... | |
virtual void | process (jevois::InputFrame &&inframe) override |
Processing function, no video output. More... | |
virtual void | process (jevois::InputFrame &&inframe, jevois::OutputFrame &&outframe) override |
Processing function with video output to USB. More... | |
![]() | |
StdModule (std::string const &instance) | |
virtual | ~StdModule () |
void | sendSerialImg1Dx (unsigned int camw, float x, float size=0.0F, std::string const &id="", std::string const &extra="") |
void | sendSerialStd1Dx (float x, float size=0.0F, std::string const &id="", std::string const &extra="") |
void | sendSerialImg1Dy (unsigned int camh, float y, float size=0.0F, std::string const &id="", std::string const &extra="") |
void | sendSerialStd1Dy (float y, float size=0.0F, std::string const &id="", std::string const &extra="") |
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="") |
void | sendSerialStd2D (float x, float y, float w=0.0F, float h=0.0F, std::string const &id="", std::string const &extra="") |
void | sendSerialContour2D (unsigned int camw, unsigned int camh, std::vector< cv::Point_< T > > points, std::string const &id="", std::string const &extra="") |
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="") |
void | sendSerialStd3D (std::vector< cv::Point3f > points, std::string const &id="", std::string const &extra="") |
void | sendSerialObjReco (std::vector< ObjReco > const &res) |
void | sendSerialObjDetImg2D (unsigned int camw, unsigned int camh, float x, float y, float w, float h, std::vector< ObjReco > const &res) |
JEVOIS_DEFINE_ENUM_CLASS (SerStyle,(Terse)(Normal)(Detail)(Fine)) JEVOIS_DECLARE_PARAMETER(serstyle | |
JEVOIS_DECLARE_PARAMETER (serprec, unsigned int, "Number of decimal points in standardized serial messages as " "defined in http://jevois.org/doc/UserSerialStyle.html", 0U, jevois::Range< unsigned int >(0U, 10U), ParamCateg) | |
JEVOIS_DEFINE_ENUM_CLASS (SerStamp,(None)(Frame)(Time)(FrameTime)(FrameDateTime)) JEVOIS_DECLARE_PARAMETER(serstamp | |
JEVOIS_DEFINE_ENUM_CLASS (SerMark,(None)(Start)(Stop)(Both)) JEVOIS_DECLARE_PARAMETER(sermark | |
![]() | |
Module (std::string const &instance) | |
virtual | ~Module () |
virtual void | sendSerial (std::string const &str) |
virtual void | parseSerial (std::string const &str, std::shared_ptr< UserInterface > s) |
virtual void | supportedCommands (std::ostream &os) |
size_t | frameNum () const |
void | writeCamRegister (unsigned short reg, unsigned short val) |
unsigned short | readCamRegister (unsigned short reg) |
void | writeIMUregister (unsigned short reg, unsigned short val) |
unsigned short | readIMUregister (unsigned short reg) |
void | writeIMUregisterArray (unsigned short reg, unsigned char const *vals, size_t num) |
void | readIMUregisterArray (unsigned short reg, unsigned char *vals, size_t num) |
![]() | |
Component (std::string const &instance) | |
virtual | ~Component () |
std::shared_ptr< Component > | getSubComponent (std::string const &instance) const |
std::shared_ptr< Comp > | addSubComponent (std::string const &instance, Args &&...args) |
void | removeSubComponent (std::shared_ptr< Comp > &component) |
void | removeSubComponent (std::string const &instance, bool warnIfNotFound=true) |
std::shared_ptr< Comp > | getSubComponent (std::string const &instance) const |
bool | isTopLevel () const |
Engine * | engine () const |
bool | initialized () const |
std::string const & | className () const |
std::string const & | instanceName () const |
std::vector< std::string > | setParamVal (std::string const ¶mdescriptor, T const &val) |
void | setParamValUnique (std::string const ¶mdescriptor, T const &val) |
std::vector< std::pair< std::string, T > > | getParamVal (std::string const ¶mdescriptor) const |
T | getParamValUnique (std::string const ¶mdescriptor) const |
std::vector< std::string > | setParamString (std::string const ¶mdescriptor, std::string const &val) |
void | setParamStringUnique (std::string const ¶mdescriptor, std::string const &val) |
std::vector< std::pair< std::string, std::string > > | getParamString (std::string const ¶mdescriptor) const |
std::string | getParamStringUnique (std::string const ¶mdescriptor) const |
void | freezeParam (std::string const ¶mdescriptor) |
void | unFreezeParam (std::string const ¶mdescriptor) |
void | freezeAllParams () |
void | unFreezeAllParams () |
std::string | descriptor () const |
void | setParamsFromFile (std::string const &filename) |
std::istream & | setParamsFromStream (std::istream &is, std::string const &absfile) |
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="") |
void | setPath (std::string const &path) |
std::string | absolutePath (std::string const &path="") |
std::shared_ptr< Comp > | addSubComponent (std::string const &instance, Args &&...args) |
void | removeSubComponent (std::shared_ptr< Comp > &component) |
void | removeSubComponent (std::string const &instance, bool warnIfNotFound=true) |
std::shared_ptr< Comp > | getSubComponent (std::string const &instance) const |
bool | isTopLevel () const |
Engine * | engine () const |
bool | initialized () const |
std::string const & | className () const |
std::string const & | instanceName () const |
std::vector< std::string > | setParamVal (std::string const ¶mdescriptor, T const &val) |
void | setParamValUnique (std::string const ¶mdescriptor, T const &val) |
std::vector< std::pair< std::string, T > > | getParamVal (std::string const ¶mdescriptor) const |
T | getParamValUnique (std::string const ¶mdescriptor) const |
std::vector< std::string > | setParamString (std::string const ¶mdescriptor, std::string const &val) |
void | setParamStringUnique (std::string const ¶mdescriptor, std::string const &val) |
std::vector< std::pair< std::string, std::string > > | getParamString (std::string const ¶mdescriptor) const |
std::string | getParamStringUnique (std::string const ¶mdescriptor) const |
void | freezeParam (std::string const ¶mdescriptor) |
void | unFreezeParam (std::string const ¶mdescriptor) |
void | freezeAllParams () |
void | unFreezeAllParams () |
std::string | descriptor () const |
void | setParamsFromFile (std::string const &filename) |
std::istream & | setParamsFromStream (std::istream &is, std::string const &absfile) |
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="") |
void | setPath (std::string const &path) |
std::string | absolutePath (std::string const &path="") |
![]() | |
virtual | ~ParameterRegistry () |
Protected Attributes | |
std::shared_ptr< QRcode > | itsQRcode |
Additional Inherited Members | |
![]() | |
void | sendSerialMarkStart () |
void | sendSerialMarkStop () |
std::string | getStamp () const |
![]() | |
virtual void | preInit () |
virtual void | postInit () |
virtual void | preUninit () |
virtual void | postUninit () |
virtual void | preInit () |
virtual void | postInit () |
virtual void | preUninit () |
virtual void | postUninit () |
![]() | |
void | addParameter (ParameterBase *const param) |
void | removeParameter (ParameterBase *const param) |
void | callbackInitCall () |
Simple demo of QR-code and barcode detection and decoding using the ZBar library.
Detect barcodes and QR-codes, and decode their contents.
QR-codes (Quick Response Codes) are popular 2D patterns that contain embedded information, such as a string of text, a URL, etc. They basically work like barcodes, coding information into a high-contrast, geometric pattern that is easier to detect and decode by a machine that more conventional human-written text or drawings.
One can generate QR-codes containing different kinds of information, for example using online QR-code generators, such as http://www.qr-code-generator.com/
JeVois detects and decodes QR-codes and other barcodes. The implementation of the detection and decoding algorithm used in JeVois is from the popular library ZBar, found at http://zbar.sourceforge.net/
You should be able to sustain 30 frames/s with camera resolution 320x240, and 15 frames/s with camera resolution 640x480 when running this module inside the JeVois smart camera.
This module can send standardized serial messages as described in Standardized serial messages formatting. One message is issued for every detected QR-code or barcode, on every video frame.
id
: type of symbol (e.g., QR-Code, ISBN13, etc).x
, y
, or vertices: standardized 2D coordinates of symbol center or of corners of bounding box (depending on serstyle
)w
, h
: standardized object sizeextra
: decoded contents (e.g., URL that was in a QR-code, ISBN number from a barcode, etc)Note that when serstyle
is Fine, only 4 corners are returned for each detected QR-code, but many points are returned all over each detected barcode. Beware to not exceed your serial bandwidth in that case.
See Standardized serial messages formatting for more on standardized serial messages, and Helper functions to convert coordinates from camera resolution to standardized for more info on standardized coordinates.
Definition at line 79 of file DemoQRcode.C.
|
inline |
|
inlinevirtual |
Virtual destructor for safe inheritance.
Definition at line 92 of file DemoQRcode.C.
|
inline |
|
inlinevirtual |
Virtual destructor for safe inheritance.
Definition at line 92 of file DemoQRcode.C.
|
inlineoverridevirtual |
Processing function, no video output.
Reimplemented from jevois::Module.
Definition at line 98 of file DemoQRcode.C.
References jevois::rawimage::convertToCvGray(), jevois::RawImage::height, itsQRcode, and jevois::RawImage::width.
|
inlineoverridevirtual |
Processing function, no video output.
Reimplemented from jevois::Module.
Definition at line 98 of file DemoQRcode.C.
References jevois::rawimage::convertToCvGray(), jevois::RawImage::height, itsQRcode, and jevois::RawImage::width.
|
inlineoverridevirtual |
Processing function with video output to USB.
Reimplemented from jevois::Module.
Definition at line 124 of file DemoQRcode.C.
References jevois::rawimage::convertToCvGray(), jevois::rawimage::drawFilledRect(), jevois::RawImage::fmt, jevois::RawImage::height, itsQRcode, JEVOIS_REGISTER_MODULE(), jevois::rawimage::paste(), jevois::RawImage::require(), jevois::Timer::start(), jevois::Timer::stop(), jevois::RawImage::width, and jevois::rawimage::writeText().
|
inlineoverridevirtual |
Processing function with video output to USB.
Reimplemented from jevois::Module.
Definition at line 124 of file DemoQRcode.C.
References jevois::rawimage::convertToCvGray(), jevois::rawimage::drawFilledRect(), jevois::RawImage::fmt, jevois::RawImage::height, itsQRcode, jevois::rawimage::paste(), jevois::RawImage::require(), jevois::Timer::start(), jevois::Timer::stop(), jevois::RawImage::width, and jevois::rawimage::writeText().
|
protected |
Definition at line 179 of file DemoQRcode.C.
Referenced by DemoQRcode(), and process().