A class for grabing images from a IEEE1394 (Firewire) camera using the libdc1394-2 library.
See the constructor for the options when opening the camera. Notice that you may have to carefully set the resolution, framerate and color_mode. See the verbose parameter of the constructor, which can display a list of supported modes in your camera.
This class is able to manage any Firewire cameras, including Stereo or multi-cameras in general, so this can be used to open the Bumblebee camera (not tested yet).
A static method (CImageGrabber_dc1394::enumerateCameras) is provided to enumerate all existing cameras and their properties. It can be used to find the GUID of the desired camera, then open it at the constructor.
Definition at line 124 of file CImageGrabber_dc1394.h.
#include <mrpt/hwdrivers/CImageGrabber_dc1394.h>
Classes | |
struct | TCameraInfo |
Used in enumerateCameras. More... | |
Public Types | |
typedef std::list< TCameraInfo > | TCameraInfoList |
Public Member Functions | |
CImageGrabber_dc1394 (uint64_t cameraGUID=0, uint16_t cameraUnit=0, const TCaptureOptions_dc1394 &options=TCaptureOptions_dc1394(), bool verbose=false) | |
Constructor: open an ieee1394 camera. More... | |
virtual | ~CImageGrabber_dc1394 () |
Destructor. More... | |
bool | isOpen () const |
Check whether the camera has been open successfully. More... | |
bool | changeCaptureOptions (const TCaptureOptions_dc1394 &options) |
Changes the capture properties (brightness, gain, shutter, etc) The frame size, framerate, and color_coding fields in options are ignored since they can be only set at construction time. More... | |
bool | getObservation (mrpt::obs::CObservationImage &out_observation) |
Grab an image from the opened camera (for monocular cameras). More... | |
bool | getObservation (mrpt::obs::CObservationStereoImages &out_observation) |
Grab an image from the opened camera (for stereo cameras). More... | |
bool | setSoftwareTriggerLevel (bool level) |
Changes the boolean level associated to Software Trigger (ON/OFF) Can be used to control camera triggering trough software. More... | |
Static Public Member Functions | |
static void | enumerateCameras (TCameraInfoList &out_list) |
Generates a list with the information on all the existing (Firewire) cameras in the system. More... | |
Protected Attributes | |
bool | m_bInitialized |
Set to false if we could not initialize the camera. More... | |
void * | m_dc1394_lib_context |
Internal use: More... | |
void * | m_dc1394camera |
int | m_desired_mode |
TCaptureOptions_dc1394 | m_options |
typedef std::list<TCameraInfo> mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfoList |
Definition at line 219 of file CImageGrabber_dc1394.h.
CImageGrabber_dc1394::CImageGrabber_dc1394 | ( | uint64_t | cameraGUID = 0 , |
uint16_t | cameraUnit = 0 , |
||
const TCaptureOptions_dc1394 & | options = TCaptureOptions_dc1394() , |
||
bool | verbose = false |
||
) |
Constructor: open an ieee1394 camera.
cameraGUID | Set the camera GUID to open, or 0 to open the first found camera. |
cameraUnit | (Ignored if cameraGUID=0). The number of camera to open within the device with the given GUID: In a stereo camera this may be 0 or 1. Normally this is 0. |
options | Capture options, defined in mrpt::hwdrivers::TCaptureOptions_dc1394. |
verbose | Displays a lot of information about the camera to be open and its valid video modes. |
Definition at line 34 of file CImageGrabber_dc1394.cpp.
References ASSERT_, changeCaptureOptions(), mrpt::hwdrivers::TCaptureOptions_dc1394::color_coding, mrpt::format(), mrpt::hwdrivers::TCaptureOptions_dc1394::frame_height, mrpt::hwdrivers::TCaptureOptions_dc1394::frame_width, mrpt::hwdrivers::TCaptureOptions_dc1394::framerate, mrpt::hwdrivers::FRAMERATE_120, mrpt::hwdrivers::FRAMERATE_15, mrpt::hwdrivers::FRAMERATE_1_875, mrpt::hwdrivers::FRAMERATE_240, mrpt::hwdrivers::FRAMERATE_30, mrpt::hwdrivers::FRAMERATE_3_75, mrpt::hwdrivers::FRAMERATE_60, mrpt::hwdrivers::FRAMERATE_7_5, jpeg_error_mgr::i, m_bInitialized, m_dc1394_lib_context, m_dc1394camera, m_desired_mode, m_options, mrpt::hwdrivers::TCaptureOptions_dc1394::mode7, MRPT_END, MRPT_START, mrpt::hwdrivers::TCaptureOptions_dc1394::ring_buffer_size, THE_CAMERA, THE_CONTEXT, THROW_EXCEPTION, and mrpt::hwdrivers::TCaptureOptions_dc1394::trigger_power.
|
virtual |
Destructor.
Definition at line 338 of file CImageGrabber_dc1394.cpp.
References m_bInitialized, THE_CAMERA, and THE_CONTEXT.
bool CImageGrabber_dc1394::changeCaptureOptions | ( | const TCaptureOptions_dc1394 & | options | ) |
Changes the capture properties (brightness, gain, shutter, etc) The frame size, framerate, and color_coding fields in options are ignored since they can be only set at construction time.
Definition at line 534 of file CImageGrabber_dc1394.cpp.
References m_bInitialized, MRPT_END, MRPT_START, and THROW_EXCEPTION.
Referenced by CImageGrabber_dc1394().
|
static |
Generates a list with the information on all the existing (Firewire) cameras in the system.
std::runtime_error | On any error calling libdc1394. |
Definition at line 607 of file CImageGrabber_dc1394.cpp.
References mrpt::format(), jpeg_error_mgr::i, info, MRPT_END, MRPT_START, THROW_EXCEPTION, and THROW_STACKED_EXCEPTION.
bool CImageGrabber_dc1394::getObservation | ( | mrpt::obs::CObservationImage & | out_observation | ) |
Grab an image from the opened camera (for monocular cameras).
out_observation | The object to be filled with sensed data. |
Definition at line 367 of file CImageGrabber_dc1394.cpp.
References mrpt::hwdrivers::TCaptureOptions_dc1394::deinterlace_stereo, mrpt::obs::CObservationImage::image, mrpt::utils::CImage::loadFromMemoryBuffer(), m_bInitialized, m_options, MRPT_END, MRPT_START, mrpt::system::now(), THE_CAMERA, THROW_EXCEPTION, and mrpt::obs::CObservation::timestamp.
Referenced by mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394::getStereoObservation().
bool CImageGrabber_dc1394::getObservation | ( | mrpt::obs::CObservationStereoImages & | out_observation | ) |
Grab an image from the opened camera (for stereo cameras).
out_observation | The object to be filled with sensed data. |
Definition at line 464 of file CImageGrabber_dc1394.cpp.
References mrpt::hwdrivers::TCaptureOptions_dc1394::deinterlace_stereo, mrpt::obs::CObservationStereoImages::imageLeft, mrpt::obs::CObservationStereoImages::imageRight, mrpt::utils::CImage::loadFromMemoryBuffer(), m_bInitialized, m_options, MRPT_END, MRPT_START, mrpt::system::now(), THE_CAMERA, THROW_EXCEPTION, and mrpt::obs::CObservation::timestamp.
|
inline |
Check whether the camera has been open successfully.
Definition at line 157 of file CImageGrabber_dc1394.h.
Referenced by mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394::CStereoGrabber_Bumblebee_libdc1394(), and mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394::getStereoObservation().
bool CImageGrabber_dc1394::setSoftwareTriggerLevel | ( | bool | level | ) |
Changes the boolean level associated to Software Trigger (ON/OFF) Can be used to control camera triggering trough software.
Definition at line 584 of file CImageGrabber_dc1394.cpp.
References m_bInitialized, MRPT_END, MRPT_START, THE_CAMERA, and THROW_EXCEPTION.
|
protected |
Set to false if we could not initialize the camera.
Definition at line 129 of file CImageGrabber_dc1394.h.
Referenced by changeCaptureOptions(), CImageGrabber_dc1394(), getObservation(), setSoftwareTriggerLevel(), and ~CImageGrabber_dc1394().
|
protected |
Internal use:
Definition at line 132 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394().
|
protected |
Definition at line 133 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394().
|
protected |
Definition at line 134 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394().
|
protected |
Definition at line 136 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394(), and getObservation().
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |