JeVois  1.21
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Loading...
Searching...
No Matches
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
22namespace 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
39 Here, we also define a CameraLens enum that is used for camera calibration. */
40#ifdef JEVOIS_PRO
41 JEVOIS_DEFINE_ENUM_CLASS(CameraSensor, (any) (imx290) (os08a10) (ar0234) );
42 JEVOIS_DEFINE_ENUM_CLASS(CameraLens, (standard) (custom1) (custom2) (custom3) (custom4) (custom5) );
43#else
44 JEVOIS_DEFINE_ENUM_CLASS(CameraSensor, (any) (ov9650) (ov2640) (ov7725) (ar0135) );
45 JEVOIS_DEFINE_ENUM_CLASS(CameraLens, (standard) (noir) (wide90) (wide120)
46 (m12_18) (m12_25) (m12_36) (m12_6) (m12_12)
47 (custom1) (custom2) (custom3) (custom4) (custom5) );
48#endif
49
50 //! Check whether a given resolution and frame rate is supported by a sensor
51 /*! Returns true if the sensor is capable of capturing video at the given format, resolution, and frame rate.*/
52 bool sensorSupportsFormat(CameraSensor s, VideoMapping const & m);
53
54 //! Check whether sensor has an IMU (inertial measurement unit)
55 bool sensorHasIMU(CameraSensor s);
56
57 //! Load a sensor preset (JeVois-Pro only) and return native sensor grab dims (when cropping and/or scaling)
58 void sensorPrepareSetFormat(CameraSensor s, VideoMapping const & m, unsigned int & capw, unsigned int & caph,
59 int & preset);
60
61 /*! @} */ // **********************************************************************
62}
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_DEFINE_ENUM_CLASS(CameraSensor,(any)(imx290)(os08a10)(ar0234))
Enum for different sensor models.
bool sensorHasIMU(CameraSensor s)
Check whether sensor has an IMU (inertial measurement unit)
bool sensorSupportsFormat(CameraSensor s, VideoMapping const &m)
Check whether a given resolution and frame rate is supported by a sensor.
Main namespace for all JeVois classes and functions.
Definition Concepts.dox:2
Simple struct to hold video mapping definitions for the processing Engine.