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 153 of file CImageGrabber_dc1394.h.
#include <mrpt/hwdrivers/CImageGrabber_dc1394.h>
Classes | |
struct | TCameraInfo |
Used in enumerateCameras. More... | |
Public Types | |
using | TCameraInfoList = std::list< TCameraInfo > |
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 |
using mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfoList = std::list<TCameraInfo> |
Definition at line 249 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 33 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, 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 463 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 692 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 778 of file CImageGrabber_dc1394.cpp.
References mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::advanced_features_csr, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::bmode_capable, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::can_switch_on_off, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::command_registers_base, mrpt::format(), mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::format7_csr, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::guid, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::has_feature_error_status, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::has_vmode_error_status, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::iidc_version, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::max_mem_channel, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::model, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::model_id, MRPT_END, MRPT_START, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::multi_shot_capable, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::one_shot_capable, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::PIO_control_csr, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::SIO_control_csr, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::strobe_control_csr, THROW_EXCEPTION, THROW_STACKED_EXCEPTION, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::unit, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::unit_dependent_directory, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::unit_directory, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::unit_spec_ID, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::unit_sub_sw_version, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::unit_sw_version, mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::vendor, and mrpt::hwdrivers::CImageGrabber_dc1394::TCameraInfo::vendor_id.
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 493 of file CImageGrabber_dc1394.cpp.
References mrpt::hwdrivers::TCaptureOptions_dc1394::deinterlace_stereo, mrpt::obs::CObservationImage::image, mrpt::img::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 609 of file CImageGrabber_dc1394.cpp.
References mrpt::hwdrivers::TCaptureOptions_dc1394::deinterlace_stereo, mrpt::obs::CObservationStereoImages::imageLeft, mrpt::obs::CObservationStereoImages::imageRight, mrpt::img::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 189 of file CImageGrabber_dc1394.h.
References m_bInitialized.
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 753 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 158 of file CImageGrabber_dc1394.h.
Referenced by changeCaptureOptions(), CImageGrabber_dc1394(), getObservation(), isOpen(), setSoftwareTriggerLevel(), and ~CImageGrabber_dc1394().
|
protected |
Internal use:
Definition at line 161 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394().
|
protected |
Definition at line 162 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394().
|
protected |
Definition at line 163 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394().
|
protected |
Definition at line 165 of file CImageGrabber_dc1394.h.
Referenced by CImageGrabber_dc1394(), and getObservation().
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |