Class CImageGrabber_dc1394
Defined in File CImageGrabber_dc1394.h
Nested Relationships
Nested Types
Class Documentation
-
class CImageGrabber_dc1394
A class for grabbing 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.
See also
The most generic camera grabber in MRPT: mrpt::hwdrivers::CCameraSensor
Note
This class requires MRPT compiled with “libdc1394-2” (Only works under Linux for now) and “opencv”.
Note
In Linux you may need to execute “chmod 666 /dev/video1394/ * “ and “chmod 666 /dev/raw1394” for allowing any user R/W access to firewire cameras.
Note
[New in MRPT 1.3.0] Length of ring buffer is now configurable via TCaptureOptions_dc1394::ring_buffer_size
Public Types
-
using TCameraInfoList = std::list<TCameraInfo>
Public 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.
- Parameters:
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.
-
virtual ~CImageGrabber_dc1394()
Destructor
-
inline bool isOpen() const
Check whether the camera has been open successfully.
-
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.
- Returns:
false on error
-
bool getObservation(mrpt::obs::CObservationImage &out_observation)
Grab an image from the opened camera (for monocular cameras).
Note
This may be blocking when using software trigger and no frame is available yet. Ensure trigger before getObservation() or take into account that this call may block.
- Parameters:
out_observation – The object to be filled with sensed data.
- Returns:
false on any error, true if all go fine.
-
bool getObservation(mrpt::obs::CObservationStereoImages &out_observation)
Grab an image from the opened camera (for stereo cameras).
- Parameters:
out_observation – The object to be filled with sensed data.
- Returns:
false on any error, true if all go fine.
-
bool setSoftwareTriggerLevel(bool level)
Changes the boolean level associated to Software Trigger (ON/OFF) Can be used to control camera triggering trough software
- Returns:
false on error
Public Static Functions
-
static void enumerateCameras(TCameraInfoList &out_list)
Generates a list with the information on all the existing (Firewire) cameras in the system.
- Throws:
std::runtime_error – On any error calling libdc1394.
Protected Attributes
-
bool m_bInitialized = {false}
Set to false if we could not initialize the camera.
-
void *m_dc1394_lib_context = {nullptr}
Internal use:
-
void *m_dc1394camera = {nullptr}
-
int m_desired_mode
-
TCaptureOptions_dc1394 m_options
-
struct TCameraInfo
Used in enumerateCameras
Public Members
-
uint64_t guid
-
int unit
-
uint32_t unit_spec_ID
-
uint32_t unit_sw_version
-
uint32_t unit_sub_sw_version
-
uint32_t command_registers_base
-
uint32_t unit_directory
-
uint32_t unit_dependent_directory
-
uint64_t advanced_features_csr
-
uint64_t PIO_control_csr
-
uint64_t SIO_control_csr
-
uint64_t strobe_control_csr
-
uint64_t format7_csr[16]
-
int iidc_version
-
std::string vendor
-
std::string model
-
uint32_t vendor_id
-
uint32_t model_id
-
bool bmode_capable
-
bool one_shot_capable
-
bool multi_shot_capable
-
bool can_switch_on_off
-
bool has_vmode_error_status
-
bool has_feature_error_status
-
int max_mem_channel
-
uint64_t guid
-
using TCameraInfoList = std::list<TCameraInfo>