JeVois  1.20
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
CameraSensor.H
Go to the documentation of this file.
1 // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2 //
3 // JeVois Smart Embedded Machine Vision Toolkit - Copyright (C) 2018 by Laurent Itti, the University of Southern
4 // California (USC), and iLab at USC. See http://iLab.usc.edu and http://jevois.org for information about this project.
5 //
6 // This file is part of the JeVois Smart Embedded Machine Vision Toolkit. This program is free software; you can
7 // redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
8 // Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
9 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
10 // License for more details. You should have received a copy of the GNU General Public License along with this program;
11 // if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
12 //
13 // Contact information: Laurent Itti - 3641 Watt Way, HNB-07A - Los Angeles, CA 90089-2520 - USA.
14 // Tel: +1 213 740 3527 - itti@pollux.usc.edu - http://iLab.usc.edu - http://jevois.org
15 // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
16 /*! \file */
17 
18 #pragma once
19 
20 #include <jevois/Types/Enum.H>
21 
22 namespace jevois
23 {
24  class VideoMapping;
25  class Camera;
26 
27  /*! \defgroup camerasensor Helper definitions for different camera sensors
28  \ingroup core */
29 
30  /*! @{ */ // **********************************************************************
31 
32  //! Enum for different sensor models
33  /*! Use 'any' when you either don't know (e.g., running in host mode with an unknown dumb USB webcam), or when you
34  don't care (e.g., we use 'any' in jevois-add-videomapping so that it will always succeed).
35 
36  - Parallel CSI sensors are for JeVois-A33 hardware: ov9650, ov2640, ov7725, ar0135
37  - MIPI sensors are for JeVois-Pro hardware: imx290, os08a10, ar0234 */
38 #ifdef JEVOIS_PRO
39  JEVOIS_DEFINE_ENUM_CLASS(CameraSensor, (any) (imx290) (os08a10) (ar0234) );
40 #else
41  JEVOIS_DEFINE_ENUM_CLASS(CameraSensor, (any) (ov9650) (ov2640) (ov7725) (ar0135) );
42 #endif
43 
44  //! Check whether a given resolution and frame rate is supported by a sensor
45  /*! Returns true if the sensor is capable of capturing video at the given format, resolution, and frame rate.*/
46  bool sensorSupportsFormat(CameraSensor s, VideoMapping const & m);
47 
48  //! Check whether sensor has an IMU (inertial measurement unit)
49  bool sensorHasIMU(CameraSensor s);
50 
51  //! Load a sensor preset (JeVois-Pro only) and return native sensor grab dims (when cropping and/or scaling)
52  void sensorPrepareSetFormat(CameraSensor s, VideoMapping const & m, unsigned int & capw, unsigned int & caph,
53  int & preset);
54 
55  /*! @} */ // **********************************************************************
56 }
jevois::sensorSupportsFormat
bool sensorSupportsFormat(CameraSensor s, VideoMapping const &m)
Check whether a given resolution and frame rate is supported by a sensor.
jevois
Definition: Concepts.dox:1
jevois::sensorHasIMU
bool sensorHasIMU(CameraSensor s)
Check whether sensor has an IMU (inertial measurement unit)
Definition: CameraSensor.C:279
jevois::sensorPrepareSetFormat
void sensorPrepareSetFormat(CameraSensor s, VideoMapping const &m, unsigned int &capw, unsigned int &caph, int &preset)
Load a sensor preset (JeVois-Pro only) and return native sensor grab dims (when cropping and/or scali...
jevois::JEVOIS_DEFINE_ENUM_CLASS
JEVOIS_DEFINE_ENUM_CLASS(CameraSensor,(any)(imx290)(os08a10)(ar0234))
Enum for different sensor models.
Enum.H