JeVois  1.16
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Core classes and definitions

Core types, components, hardware drivers, debugging tools, etc.

Collaboration diagram for Core classes and definitions:

Classes

class  jevois::Camera
 JeVois camera driver class - grabs frames from a Video4Linux camera sensor. More...
 
class  jevois::CameraDevice
 Accessory class to hold all the data associated with a V4L2 camera device. More...
 
class  jevois::DynamicLoader
 Class to open shared object (.so) files and load functions contained in them. More...
 
class  jevois::Engine
 JeVois processing engine - gets images from camera sensor, processes them, and sends results over USB. More...
 
class  jevois::Gadget
 JeVois gadget driver - exposes a uvcvideo interface to host computer connected over USB. More...
 
class  jevois::InputFrame
 Exception-safe wrapper around a raw camera input frame. More...
 
class  jevois::Module
 Virtual base class for a vision processing module. More...
 
class  jevois::StdModule
 Base class for a module that supports standardized serial messages. More...
 
class  jevois::MovieInput
 Movie input, can be used as a replacement for Camera to debug algorithms using a fixed video sequence. More...
 
class  jevois::MovieOutput
 Video output to a movie file, using OpenCV video encoding. More...
 
class  jevois::OutputFrame
 Exception-safe wrapper around a raw image to be sent over USB. More...
 
class  jevois::Serial
 Interface to a serial port. More...
 
class  jevois::StdioInterface
 String-based user interface, simple terminal input/output to use on host. More...
 
class  jevois::UserInterface
 Abstract base class for a string-based user interface. More...
 
class  jevois::VideoBuf
 A V4L2 video buffer, to be held in a shared_ptr. More...
 
class  jevois::VideoBuffers
 Collection of buffers for V4L2 video frames (Camera or Gadget) with hooks to the MMAP'd areas. More...
 
class  jevois::VideoDisplay
 Video output to local screen. More...
 
class  jevois::VideoDisplayGL
 Video output to local screen. More...
 
class  jevois::VideoDisplayGUI
 Video output to local screen with basic GUI. More...
 
class  jevois::VideoInput
 Base class for video input, which will get derived into Camera and MovieInput. More...
 
class  jevois::VideoOutput
 Base class for video output. Gadget, MovieOutput, VideoDisplay, and VideoOutputNone derive from it. More...
 
class  jevois::VideoOutputNone
 No-op VideoOutput derivative for when there is no video output. More...
 
class  jevois::ImGuiBackend
 Backend for ImGui on JeVois-Pro. More...
 
class  jevois::VideoDisplayBackend
 Backend for VideoDisplay on JeVois-Pro. More...
 

Modules

 Model components, parameters, manager, and associated classes
 These classes define how a complex model or vision processing pipeline with user-tunable parameters can be built from components.
 
 Helper definitions for different camera sensors
 
 Inertial Measurement Unit (IMU) classes and functions
 
 Support for JeVois modules written in Python
 In addition to writing modules in C++, JeVois supports writing modules in Python. JeVois provides two-way mappings:
 
 Tensor/Neural Processing networks
 Classes and utilities to provide abstraction to deep neural networks. Provides interfacing to OpenCV backends (CPU, OpenCL), tensor processing units (TPU) such as Coral Edge TPU and neural processing units (NPU) such as Amlogic A311D NPU. Supported on JeVois-Pro only.
 

Functions

() Scale() jevois::Crop (CropScale)) struct VideoMapping
 Simple struct to hold video mapping definitions for the processing Engine. More...
 

Function Documentation

◆ Crop()

() Scale() jevois::Crop ( CropScale  )

Simple struct to hold video mapping definitions for the processing Engine.

This struct specifies an output video format, resolution, and frame rate (to be send to the end user over USB), the corresponding camera capture video format, resolution and frame rate, and the Module to use to process the camera frames and generate the corresponding output frames. This class also provides conversion functions between frame rate and frame interval periods for both USB and V4L2, which use different units.

Operation of JeVois is based on a list of available VideoMapping definitions, which is configured in a file called JEVOIS:config/videomappings.cfg on the microSD card. The video mappings indicate which output formats are exposed to the host computer connected over USB, and which corresponding camera format and vision processing module should be used when a given output format is selected by video capture software running on the host computer.

See User guide to video modes and mappings for explanations about how to organize videomappings.cfg

< output pixel format, or 0 for no output over USB

< output width

< output height

< output frame rate in frames/sec

< camera pixel format

< camera width

< camera height

< camera frame rate in frames/sec

< USB-UVC format number (1-based)

< USB UVC frame number (1-based)

< Module creator name, used as a directory to organize the modules

< Name of the Module that will process this mapping

< Type of wide-dynamic-range (WDR) to use, if sensor supports it

< Type of crop or scaling to apply if camera frame size does not match sensor native

< True if the module is written in Python; affects behavior of sopath() only

< When crop is CropScale, pixel format of the scaled images, otherwise 0

< When crop is CropScale, width of the scaled images, otherwise 0

< When crop is CropScale, height of the scaled images, otherwise 0

Return the full absolute path and file name of the module's .so or .py file

Return the full absolute path and file name of the module's .C or .py file

Return the size in bytes of an output image

Return the size in bytes of a camera image

Return the size in bytes of a scaled camera image, if stream==RawAndScaled, otherwise 0

Convert from USB/UVC interval to fps

This function rounds to the nearest 1/100 fps.

Convert from fps to USB/UVC interval

Convert from V4L2 interval to fps

This function rounds to the nearest 1/100 fps.

Convert from fps to V4L2 interval

Return true if this VideoMapping's output format is a match to the given output parameters

Return true if camera sensor can support this mapping

Convenience function to print out FCC WxH @ fps, for the output (UVC) format

Convenience function to print out FCC WxH @ fps, for the input (camera) format

Convenience function to print out FCC WxH @ fps, for the scaled camera input format, if stream==RawAndScaled

Convenience function to print out FCC WxH @ fps plus possibly second stream, for the input (camera) format

Convenience function to print out the whole mapping in a human-friendly way

Convenience function to print out the whole mapping in a human-friendly way to be used in a menu

Equality operator for specs but not vendor or module name

Note that two mappings will be declared to match if their fps values are within 0.01fps, to avoid mismatches due to floating point representation and rounding.

Equality operator for specs and also vendor or module name

Note that two mappings will be declared to match if their fps values are within 0.01fps, to avoid mismatches due to floating point representation and rounding.

Determine whether module is C++ or python and set ispython flag accordingly

The other fields should have been initialized already. operator>> and loadVideoMappings use this function insternally, so no need to call it after making a VideoMapping from sream. This function throws if neither a .so nor .py file is found in the appropriate place given module vendor and name.

Definition at line 43 of file VideoMapping.H.

Referenced by jevois::GUIhelper::drawNewModuleForm().