![]() |
Visual Servoing Platform
version 3.3.0
|
#include <vp1394TwoGrabber.h>
Public Types | |
enum | vp1394TwoIsoSpeedType { vpISO_SPEED_100 = DC1394_ISO_SPEED_100, vpISO_SPEED_200 = DC1394_ISO_SPEED_200, vpISO_SPEED_400 = DC1394_ISO_SPEED_400, vpISO_SPEED_800 = DC1394_ISO_SPEED_800, vpISO_SPEED_1600 = DC1394_ISO_SPEED_1600, vpISO_SPEED_3200 = DC1394_ISO_SPEED_3200 } |
enum | vp1394TwoVideoModeType { vpVIDEO_MODE_160x120_YUV444 = DC1394_VIDEO_MODE_160x120_YUV444, vpVIDEO_MODE_320x240_YUV422 = DC1394_VIDEO_MODE_320x240_YUV422, vpVIDEO_MODE_640x480_YUV411 = DC1394_VIDEO_MODE_640x480_YUV411, vpVIDEO_MODE_640x480_YUV422 = DC1394_VIDEO_MODE_640x480_YUV422, vpVIDEO_MODE_640x480_RGB8 = DC1394_VIDEO_MODE_640x480_RGB8, vpVIDEO_MODE_640x480_MONO8 = DC1394_VIDEO_MODE_640x480_MONO8, vpVIDEO_MODE_640x480_MONO16 = DC1394_VIDEO_MODE_640x480_MONO16, vpVIDEO_MODE_800x600_YUV422 = DC1394_VIDEO_MODE_800x600_YUV422, vpVIDEO_MODE_800x600_RGB8 = DC1394_VIDEO_MODE_800x600_RGB8, vpVIDEO_MODE_800x600_MONO8 = DC1394_VIDEO_MODE_800x600_MONO8, vpVIDEO_MODE_1024x768_YUV422 = DC1394_VIDEO_MODE_1024x768_YUV422, vpVIDEO_MODE_1024x768_RGB8 = DC1394_VIDEO_MODE_1024x768_RGB8, vpVIDEO_MODE_1024x768_MONO8 = DC1394_VIDEO_MODE_1024x768_MONO8, vpVIDEO_MODE_800x600_MONO16 = DC1394_VIDEO_MODE_800x600_MONO16, vpVIDEO_MODE_1024x768_MONO16 = DC1394_VIDEO_MODE_1024x768_MONO16, vpVIDEO_MODE_1280x960_YUV422 = DC1394_VIDEO_MODE_1280x960_YUV422, vpVIDEO_MODE_1280x960_RGB8 = DC1394_VIDEO_MODE_1280x960_RGB8, vpVIDEO_MODE_1280x960_MONO8 = DC1394_VIDEO_MODE_1280x960_MONO8, vpVIDEO_MODE_1600x1200_YUV422 = DC1394_VIDEO_MODE_1600x1200_YUV422, vpVIDEO_MODE_1600x1200_RGB8 = DC1394_VIDEO_MODE_1600x1200_RGB8, vpVIDEO_MODE_1600x1200_MONO8 = DC1394_VIDEO_MODE_1600x1200_MONO8, vpVIDEO_MODE_1280x960_MONO16 = DC1394_VIDEO_MODE_1280x960_MONO16, vpVIDEO_MODE_1600x1200_MONO16 = DC1394_VIDEO_MODE_1600x1200_MONO16, vpVIDEO_MODE_EXIF = DC1394_VIDEO_MODE_EXIF, vpVIDEO_MODE_FORMAT7_0 = DC1394_VIDEO_MODE_FORMAT7_0, vpVIDEO_MODE_FORMAT7_1 = DC1394_VIDEO_MODE_FORMAT7_1, vpVIDEO_MODE_FORMAT7_2 = DC1394_VIDEO_MODE_FORMAT7_2, vpVIDEO_MODE_FORMAT7_3 = DC1394_VIDEO_MODE_FORMAT7_3, vpVIDEO_MODE_FORMAT7_4 = DC1394_VIDEO_MODE_FORMAT7_4, vpVIDEO_MODE_FORMAT7_5 = DC1394_VIDEO_MODE_FORMAT7_5, vpVIDEO_MODE_FORMAT7_6 = DC1394_VIDEO_MODE_FORMAT7_6, vpVIDEO_MODE_FORMAT7_7 = DC1394_VIDEO_MODE_FORMAT7_7 } |
enum | vp1394TwoFramerateType { vpFRAMERATE_1_875 = DC1394_FRAMERATE_1_875, vpFRAMERATE_3_75 = DC1394_FRAMERATE_3_75, vpFRAMERATE_7_5 = DC1394_FRAMERATE_7_5, vpFRAMERATE_15 = DC1394_FRAMERATE_15, vpFRAMERATE_30 = DC1394_FRAMERATE_30, vpFRAMERATE_60 = DC1394_FRAMERATE_60, vpFRAMERATE_120 = DC1394_FRAMERATE_120, vpFRAMERATE_240 = DC1394_FRAMERATE_240 } |
enum | vp1394TwoColorCodingType { vpCOLOR_CODING_MONO8 = DC1394_COLOR_CODING_MONO8, vpCOLOR_CODING_YUV411 = DC1394_COLOR_CODING_YUV411, vpCOLOR_CODING_YUV422 = DC1394_COLOR_CODING_YUV422, vpCOLOR_CODING_YUV444 = DC1394_COLOR_CODING_YUV444, vpCOLOR_CODING_RGB8 = DC1394_COLOR_CODING_RGB8, vpCOLOR_CODING_MONO16 = DC1394_COLOR_CODING_MONO16, vpCOLOR_CODING_RGB16 = DC1394_COLOR_CODING_RGB16, vpCOLOR_CODING_MONO16S = DC1394_COLOR_CODING_MONO16S, vpCOLOR_CODING_RGB16S = DC1394_COLOR_CODING_RGB16S, vpCOLOR_CODING_RAW8 = DC1394_COLOR_CODING_RAW8, vpCOLOR_CODING_RAW16 = DC1394_COLOR_CODING_RAW16 } |
enum | vp1394TwoParametersType { vpFEATURE_BRIGHTNESS = DC1394_FEATURE_BRIGHTNESS, vpFEATURE_EXPOSURE = DC1394_FEATURE_EXPOSURE, vpFEATURE_SHARPNESS = DC1394_FEATURE_SHARPNESS, vpFEATURE_HUE = DC1394_FEATURE_HUE, vpFEATURE_SATURATION = DC1394_FEATURE_SATURATION, vpFEATURE_GAMMA = DC1394_FEATURE_GAMMA, vpFEATURE_SHUTTER = DC1394_FEATURE_SHUTTER, vpFEATURE_GAIN = DC1394_FEATURE_GAIN, vpFEATURE_IRIS = DC1394_FEATURE_IRIS } |
Public Member Functions | |
vp1394TwoGrabber (bool reset=true) | |
virtual | ~vp1394TwoGrabber () |
void | acquire (vpImage< unsigned char > &I) |
void | acquire (vpImage< unsigned char > &I, uint64_t ×tamp, uint32_t &id) |
void | acquire (vpImage< vpRGBa > &I) |
void | acquire (vpImage< vpRGBa > &I, uint64_t ×tamp, uint32_t &id) |
void | close () |
dc1394video_frame_t * | dequeue () |
dc1394video_frame_t * | dequeue (vpImage< unsigned char > &I) |
dc1394video_frame_t * | dequeue (vpImage< unsigned char > &I, uint64_t ×tamp, uint32_t &id) |
dc1394video_frame_t * | dequeue (vpImage< vpRGBa > &I) |
dc1394video_frame_t * | dequeue (vpImage< vpRGBa > &I, uint64_t ×tamp, uint32_t &id) |
void | enqueue (dc1394video_frame_t *frame) |
void | getAutoGain (unsigned int &minvalue, unsigned int &maxvalue) |
void | getAutoShutter (unsigned int &minvalue, unsigned int &maxvalue) |
uint64_t | getCamera () |
void | getCamera (uint64_t &camera) |
void | getColorCoding (vp1394TwoColorCodingType &coding) |
uint32_t | getColorCodingSupported (vp1394TwoVideoModeType videomode, std::list< vp1394TwoColorCodingType > &codings) |
void | getFramerate (vp1394TwoFramerateType &fps) |
uint32_t | getFramerateSupported (vp1394TwoVideoModeType videomode, std::list< vp1394TwoFramerateType > &fps) |
uint64_t | getGuid () |
void | getGuid (uint64_t &guid) |
void | getHeight (unsigned int &height) |
unsigned int | getHeight () |
void | getNumCameras (unsigned int &ncameras) const |
unsigned int | getNumCameras () const |
unsigned int | getParameterValue (vp1394TwoParametersType param) |
unsigned int | getRingBufferSize () const |
void | getVideoMode (vp1394TwoVideoModeType &videomode) |
uint32_t | getVideoModeSupported (std::list< vp1394TwoVideoModeType > &videomodes) |
void | getWidth (unsigned int &width) |
unsigned int | getWidth () |
bool | isColor () |
bool | isColorCodingSupported (vp1394TwoVideoModeType videomode, vp1394TwoColorCodingType coding) |
bool | isFramerateSupported (vp1394TwoVideoModeType videomode, vp1394TwoFramerateType fps) |
bool | isVideoModeSupported (vp1394TwoVideoModeType videomode) |
bool | isVideoModeFormat7 (vp1394TwoVideoModeType videomode) |
void | open (vpImage< unsigned char > &I) |
void | open (vpImage< vpRGBa > &I) |
vp1394TwoGrabber & | operator>> (vpImage< unsigned char > &I) |
vp1394TwoGrabber & | operator>> (vpImage< vpRGBa > &I) |
void | printCameraInfo () |
void | resetBus () |
void | setAutoGain (bool enable=true) |
void | setAutoGain (unsigned int minvalue, unsigned int maxvalue) |
void | setAutoShutter (bool enable=true) |
void | setAutoShutter (unsigned int minvalue, unsigned int maxvalue) |
void | setCamera (uint64_t camera) |
void | setColorCoding (vp1394TwoColorCodingType coding) |
void | setFormat7ROI (unsigned int left=0, unsigned int top=0, unsigned int width=0, unsigned int height=0) |
void | setFramerate (vp1394TwoFramerateType fps) |
void | setIsoTransmissionSpeed (vp1394TwoIsoSpeedType isospeed) |
void | setPanControl (unsigned int panControlValue) |
void | setParameterValue (vp1394TwoParametersType param, unsigned int val) |
void | setRingBufferSize (unsigned int size) |
void | setVideoMode (vp1394TwoVideoModeType videomode) |
Inherited functionalities from vpFramegrabber | |
unsigned int | getHeight () const |
unsigned int | getWidth () const |
Static Public Member Functions | |
static std::string | colorCoding2string (vp1394TwoColorCodingType colorcoding) |
static std::string | framerate2string (vp1394TwoFramerateType fps) |
static vp1394TwoVideoModeType | string2videoMode (std::string videomode) |
static vp1394TwoFramerateType | string2framerate (std::string fps) |
static vp1394TwoColorCodingType | string2colorCoding (std::string colorcoding) |
static std::string | videoMode2string (vp1394TwoVideoModeType videomode) |
Public Attributes | |
bool | init |
Static Public Attributes | |
static const char * | strVideoMode [DC1394_VIDEO_MODE_NUM] |
static const char * | strFramerate [DC1394_FRAMERATE_NUM] |
static const char * | strColorCoding [DC1394_COLOR_CODING_NUM] |
Protected Attributes | |
unsigned int | height |
unsigned int | width |
Class for firewire ieee1394 video devices using libdc1394-2.x api.
Needs libraw1394-1.2.0 and libdc1394-2.0.0 or more recent versions available on http://sourceforge.net.
This class was tested with Marlin F033C and F131B cameras and with Point Grey Dragonfly 2, Flea 2 and Flea 3 cameras.
This grabber allows single or multi camera acquisition.
Definition at line 183 of file vp1394TwoGrabber.h.
Enumeration of color codings. See libdc1394 2.x header file dc1394/control.h
Definition at line 262 of file vp1394TwoGrabber.h.
Enumeration of framerates. See libdc1394 2.x header file dc1394/control.h
Enumerator | |
---|---|
vpFRAMERATE_1_875 | |
vpFRAMERATE_3_75 | |
vpFRAMERATE_7_5 | |
vpFRAMERATE_15 | |
vpFRAMERATE_30 | |
vpFRAMERATE_60 | |
vpFRAMERATE_120 | |
vpFRAMERATE_240 |
Definition at line 247 of file vp1394TwoGrabber.h.
Enumeration of iso speed. See libdc1394 2.x header file dc1394/control.h
Enumerator | |
---|---|
vpISO_SPEED_100 | |
vpISO_SPEED_200 | |
vpISO_SPEED_400 | |
vpISO_SPEED_800 | |
vpISO_SPEED_1600 | |
vpISO_SPEED_3200 |
Definition at line 195 of file vp1394TwoGrabber.h.
Enumeration of the parameters that can be modified. See libdc1394 2.x header file dc1394/control.h
Enumerator | |
---|---|
vpFEATURE_BRIGHTNESS | |
vpFEATURE_EXPOSURE | |
vpFEATURE_SHARPNESS | |
vpFEATURE_HUE | |
vpFEATURE_SATURATION | |
vpFEATURE_GAMMA | |
vpFEATURE_SHUTTER | |
vpFEATURE_GAIN | |
vpFEATURE_IRIS |
Definition at line 280 of file vp1394TwoGrabber.h.
Enumeration of video modes. See libdc1394 2.x header file dc1394/control.h
Definition at line 208 of file vp1394TwoGrabber.h.
|
explicit |
Default constructor.
By default:
Current camera settings can be changed using setCamera() to select the active camera on the bus and than setVideoMode() or setFramerate() to fix the active camera settings. The list of supported video modes and framerates is available using respectively getVideoModeSupported() and getFramerateSupported(). To change the ring buffer size use setRingBufferSize().
reset | : If "true", reset the bus attached to the first camera found. Bus reset may help to make firewire working if the program was not properly stopped by a CTRL-C. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
Definition at line 122 of file vp1394TwoGrabber.cpp.
|
virtual |
Destructor.
Close the firewire grabber.
Definition at line 152 of file vp1394TwoGrabber.cpp.
|
virtual |
Acquire a grey level image from the active camera.
I | : Image data structure (8 bits image). |
vpFrameGrabberException::initializationError | : If no camera found on the bus or if can't get camera settings. |
vpFrameGrabberException::otherError | : If format conversion to return a 8 bits image is not implemented. |
Implements vpFrameGrabber.
Definition at line 2490 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::acquire | ( | vpImage< unsigned char > & | I, |
uint64_t & | timestamp, | ||
uint32_t & | id | ||
) |
Acquire a grey level image from the active camera.
I | : Image data structure (8 bits image). |
timestamp | : The unix time in microseconds at which the frame was captured in the ring buffer. |
id | : The frame position in the ring buffer. |
vpFrameGrabberException::initializationError | : If no camera found on the bus or if can't get camera settings. |
vpFrameGrabberException::otherError | : If format conversion to return a 8 bits image is not implemented. |
Definition at line 2519 of file vp1394TwoGrabber.cpp.
Acquire a color image from the active camera.
I | : Image data structure (32 bits RGBa image). |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::otherError | : If format conversion to return a RGBa bits image is not implemented. |
Implements vpFrameGrabber.
Definition at line 2541 of file vp1394TwoGrabber.cpp.
Acquire a color image from the active camera.
I | : Image data structure (32 bits RGBa image). |
timestamp | : The unix time in microseconds at which the frame was captured in the ring buffer. |
id | : The frame position in the ring buffer. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::otherError | : If format conversion to return a RGBa bits image is not implemented. |
Definition at line 2570 of file vp1394TwoGrabber.cpp.
|
virtual |
Close the firewire grabber.
Stops the capture and the iso transmission of the active cameras and than releases all the cameras.
Implements vpFrameGrabber.
Definition at line 1450 of file vp1394TwoGrabber.cpp.
|
static |
Converts the color coding identifier into a string containing the description of the color coding.
colorcoding | : The color coding format. |
Definition at line 2832 of file vp1394TwoGrabber.cpp.
dc1394video_frame_t * vp1394TwoGrabber::dequeue | ( | ) |
Get an image from the active camera frame buffer. This buffer neads to be released by enqueue().
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images. The dequeue() ensure to get the last image, while the enqueue() frees the ring buffer to be sure that the next image is the last one.
Definition at line 2124 of file vp1394TwoGrabber.cpp.
dc1394video_frame_t * vp1394TwoGrabber::dequeue | ( | vpImage< unsigned char > & | I | ) |
Get an image from the active camera frame buffer. This buffer neads to be released by enqueue().
I | : Image data structure (8 bits image). |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images. The dequeue() ensure to get the last image, while the enqueue() frees the ring buffer to be sure that the next image is the last one.
Definition at line 2182 of file vp1394TwoGrabber.cpp.
dc1394video_frame_t * vp1394TwoGrabber::dequeue | ( | vpImage< unsigned char > & | I, |
uint64_t & | timestamp, | ||
uint32_t & | id | ||
) |
Get an image from the active camera frame buffer. This buffer neads to be released by enqueue().
I | : Image data structure (8 bits image). |
timestamp | : The unix time in microseconds at which the frame was captured in the ring buffer. |
id | : The frame position in the ring buffer. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images. The dequeue() ensure to get the last image, while the enqueue() frees the ring buffer to be sure that the next image is the last one.
Definition at line 2241 of file vp1394TwoGrabber.cpp.
Get an image from the active camera frame buffer. This buffer neads to be released by enqueue().
I | : Image data structure (32 bits RGBa image). |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab color images. The dequeue() ensure to get the last image, while the enqueue() frees the ring buffer to be sure that the next image is the last one.
Definition at line 2337 of file vp1394TwoGrabber.cpp.
dc1394video_frame_t * vp1394TwoGrabber::dequeue | ( | vpImage< vpRGBa > & | I, |
uint64_t & | timestamp, | ||
uint32_t & | id | ||
) |
Get an image from the active camera frame buffer. This buffer neads to be released by enqueue().
I | : Image data structure (32 bits RGBa image). |
timestamp | : The unix time in microseconds at which the frame was captured in the ring buffer. |
id | : The frame position in the ring buffer. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab color images. The dequeue() ensure to get the last image, while the enqueue() frees the ring buffer to be sure that the next image is the last one.
Definition at line 2396 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::enqueue | ( | dc1394video_frame_t * | frame | ) |
Release the frame buffer used by the active camera.
frame | : Pointer to the libdc1394-2.x image data structure. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 2464 of file vp1394TwoGrabber.cpp.
|
static |
Converts the framerate identifier into a string containing the description of the framerate.
fps | : The camera capture framerate. |
Definition at line 2806 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getAutoGain | ( | unsigned int & | minvalue, |
unsigned int & | maxvalue | ||
) |
Get auto gain min and max values.
minvalue | : Min gain. |
maxvalue | : Max gain. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 1846 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getAutoShutter | ( | unsigned int & | minvalue, |
unsigned int & | maxvalue | ||
) |
Get auto shutter min and max values.
minvalue | : Min shutter exposure time. |
maxvalue | : Max shutter exposure time. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 1702 of file vp1394TwoGrabber.cpp.
uint64_t vp1394TwoGrabber::getCamera | ( | ) |
Get the active camera identifier on the bus.
vpFrameGrabberException::initializationError | : If no camera is found. |
Definition at line 353 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getCamera | ( | uint64_t & | cam_id | ) |
Get the active camera identifier on the bus.
cam_id | : The active camera identifier. The value is comprised between 0 (the first camera) and the number of cameras found on the bus returned by getNumCameras() minus 1. |
vpFrameGrabberException::initializationError | : If no camera is found. |
Definition at line 328 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getColorCoding | ( | vp1394TwoColorCodingType & | coding | ) |
Query the actual color coding of the active camera. The camera supported color codings are given by getColorCodingSupported().
coding | : The camera capture color coding. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get the actual color coding. Occurs if current video mode is vp1394TwoGrabber::vpVIDEO_MODE_EXIF (format 6). |
Definition at line 993 of file vp1394TwoGrabber.cpp.
uint32_t vp1394TwoGrabber::getColorCodingSupported | ( | vp1394TwoVideoModeType | mode, |
std::list< vp1394TwoColorCodingType > & | codings | ||
) |
Query the available color codings for the given camera video mode (see file dc1394/control.h).
mode | : Camera video mode. |
codings | : The list of supported color codings for the given camera video mode. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get the color codingss. |
Definition at line 1051 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getFramerate | ( | vp1394TwoFramerateType & | fps | ) |
Query the actual camera framerate of the active camera. The camera supported framerates are given by getFramerateSupported().
fps | : The camera capture framerate. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get the framerate. |
Definition at line 727 of file vp1394TwoGrabber.cpp.
uint32_t vp1394TwoGrabber::getFramerateSupported | ( | vp1394TwoVideoModeType | mode, |
std::list< vp1394TwoFramerateType > & | fps | ||
) |
Query the available framerates for the given camera video mode (see file dc1394/control.h). No framerate is associated to the following camera modes :
mode | : Camera video mode. |
fps | : The list of supported camera framerates for the given camera video mode. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get the supported framerates. |
Definition at line 775 of file vp1394TwoGrabber.cpp.
uint64_t vp1394TwoGrabber::getGuid | ( | ) |
Return the actual camera GUID.
Definition at line 3304 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getGuid | ( | uint64_t & | guid | ) |
Query the actual camera GUID.
Definition at line 3286 of file vp1394TwoGrabber.cpp.
unsigned int vp1394TwoGrabber::getHeight | ( | ) |
Get the image height. It depends on the camera vide mode setVideoMode(). The image size is only available after a call to open() or acquire().
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 2719 of file vp1394TwoGrabber.cpp.
|
inlineinherited |
Return the number of rows in the image.
Definition at line 113 of file vpFrameGrabber.h.
void vp1394TwoGrabber::getHeight | ( | unsigned int & | h | ) |
Get the image height. It depends on the camera vide mode setVideoMode(). The image size is only available after a call to open() or acquire().
h | : The image height. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 2692 of file vp1394TwoGrabber.cpp.
unsigned int vp1394TwoGrabber::getNumCameras | ( | ) | const |
Return the number of cameras connected on the bus.
Definition at line 388 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getNumCameras | ( | unsigned int & | ncameras | ) | const |
Return the number of cameras connected on the bus.
ncameras | : The number of cameras found on the bus. |
Definition at line 371 of file vp1394TwoGrabber.cpp.
unsigned int vp1394TwoGrabber::getParameterValue | ( | vp1394TwoParametersType | param | ) |
This method get the value of one of the parameters of the camera.
param | : The parameter expressing the value to return |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : if the parameter cannot be retrieved. |
Definition at line 3091 of file vp1394TwoGrabber.cpp.
unsigned int vp1394TwoGrabber::getRingBufferSize | ( | ) | const |
Get the current ring buffer size used for the capture. To change the ring buffer size see setRingBufferSize().
Definition at line 1572 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::getVideoMode | ( | vp1394TwoVideoModeType & | videomode | ) |
Query the actual capture video mode of the active camera. All the active camera supported modes are given by getVideoModeSupported().
videomode | : The camera capture video mode. |
vpFrameGrabberException::initializationError | : If the required camera is not present. |
vpFrameGrabberException::settingError | : If we can't get the camera actual video mode. |
Definition at line 492 of file vp1394TwoGrabber.cpp.
uint32_t vp1394TwoGrabber::getVideoModeSupported | ( | std::list< vp1394TwoVideoModeType > & | videomodes | ) |
Query the available active camera video modes.
videomodes | : The list of supported camera video modes. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get video modes. |
Definition at line 527 of file vp1394TwoGrabber.cpp.
unsigned int vp1394TwoGrabber::getWidth | ( | ) |
Get the image width. It depends on the camera video mode setVideoMode(). The image size is only available after a call to open() or acquire().
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 2664 of file vp1394TwoGrabber.cpp.
|
inlineinherited |
Return the number of columns in the image.
Definition at line 115 of file vpFrameGrabber.h.
void vp1394TwoGrabber::getWidth | ( | unsigned int & | w | ) |
Get the image width. It depends on the camera video mode setVideoMode(). The image size is only available after a call to open() or acquire().
w | : The image width, zero if the required camera is not available. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Definition at line 2636 of file vp1394TwoGrabber.cpp.
bool vp1394TwoGrabber::isColor | ( | ) |
Indicates if the active camera is grabbing color or grey images.
We consider color images if the color coding is either YUV (411, 422, 444) or RGB (8, 16, 16S). We consider grey images if the color coding is MONO (8, 16, 16S) or RAW (8, 16). vp1394TwoColorCodingType gives the supported color codings.
Definition at line 632 of file vp1394TwoGrabber.cpp.
bool vp1394TwoGrabber::isColorCodingSupported | ( | vp1394TwoVideoModeType | mode, |
vp1394TwoColorCodingType | coding | ||
) |
Check if the color coding is supported for the given camera video mode (see file dc1394/control.h).
mode | : Camera video mode. |
coding | : Desired color coding for the given camera video mode. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get the color codingss. |
vpFrameGrabberException::settingError | : If the color coding is not supported. |
Definition at line 1114 of file vp1394TwoGrabber.cpp.
bool vp1394TwoGrabber::isFramerateSupported | ( | vp1394TwoVideoModeType | mode, |
vp1394TwoFramerateType | fps | ||
) |
Check if the desired framerate is supported for the given camera video mode (see file dc1394/control.h). No framerate is associated to the following camera modes :
mode | : Camera video mode. |
fps | : The desired camera framerates for the given camera video mode. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get the supported framerates. |
vpFrameGrabberException::settingError | : If the framerate is not supported. |
Definition at line 851 of file vp1394TwoGrabber.cpp.
bool vp1394TwoGrabber::isVideoModeFormat7 | ( | vp1394TwoVideoModeType | videomode | ) |
Indicates if the video mode is format 7.
videomode | : The video mode to check for. |
Definition at line 608 of file vp1394TwoGrabber.cpp.
bool vp1394TwoGrabber::isVideoModeSupported | ( | vp1394TwoVideoModeType | videomode | ) |
Check for the active camera video mode.
videomode | : The video mode to check for. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't get video modes. |
Definition at line 571 of file vp1394TwoGrabber.cpp.
|
virtual |
Exist only for compatibility with other grabbing devices.
Call acquire(vpImage<unsigned char> &I)
I | : Image data structure (8 bits image) |
Implements vpFrameGrabber.
Definition at line 2065 of file vp1394TwoGrabber.cpp.
Exist only for compatibility with other grabbing devices.
Call acquire(vpImage<vpRGBa> &I)
I | : Image data structure (RGBa format) |
Implements vpFrameGrabber.
Definition at line 2081 of file vp1394TwoGrabber.cpp.
vp1394TwoGrabber & vp1394TwoGrabber::operator>> | ( | vpImage< unsigned char > & | I | ) |
Operator that allows to capture a grey level image.
I | : The captured image. |
Definition at line 3365 of file vp1394TwoGrabber.cpp.
vp1394TwoGrabber & vp1394TwoGrabber::operator>> | ( | vpImage< vpRGBa > & | I | ) |
Operator that allows to capture a grey level image.
I | : The captured image. |
Definition at line 3387 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::printCameraInfo | ( | ) |
Display camera information for the active camera.
Definition at line 2735 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::resetBus | ( | ) |
Resets the IEEE1394 bus which camera is attached to. Calling this function is "rude" to other devices because it causes them to re-enumerate on the bus and may cause a temporary disruption in their current activities. Thus, use it sparingly. Its primary use is if a program shuts down uncleanly and needs to free leftover ISO channels or bandwidth. A bus reset will free those things as a side effect.
The example below shows how to reset the bus attached to the last camera found.
vpFrameGrabberException::initializationError | : If no camera is found. |
Definition at line 2974 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setAutoGain | ( | bool | enable = true | ) |
Enable auto gain. It is also possible to set the min and max gain, but only for AVT cameras. In that case use setAutoGain(unsigned int, unsigned int).
enable | : Flag to enable or disable the auto gain. If false, set the gain as manual. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
vpFrameGrabberException::settingError | : If we can't set the auto shutter. |
Definition at line 1756 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setAutoGain | ( | unsigned int | minvalue, |
unsigned int | maxvalue | ||
) |
Enable auto gain. If available set min and max gain values.
minvalue | : Min gain. |
maxvalue | : Max gain. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
vpFrameGrabberException::settingError | : If we can't set the auto shutter. |
Definition at line 1822 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setAutoShutter | ( | bool | enable = true | ) |
Enable auto shutter. It is also possible to set auto shutter min and max exposure time, but only for AVT cameras. In that case use setAutoShutter(unsigned int, unsigned int).
enable | : Flag to enable or disable the auto shutter. If false, set the shutter as manual. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
vpFrameGrabberException::settingError | : If we can't set the auto shutter. |
Definition at line 1612 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setAutoShutter | ( | unsigned int | minvalue, |
unsigned int | maxvalue | ||
) |
Set auto shutter. If available set min and max exposure time.
minvalue | : Min shutter exposure time. |
maxvalue | : Max shutter exposure time. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
vpFrameGrabberException::settingError | : If we can't set the auto shutter. |
Definition at line 1678 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setCamera | ( | uint64_t | cam_id | ) |
If multiples cameras are connected on the bus, select the camero to dial with.
cam_id | : A camera identifier or GUID. By identifier, we mean a value comprised between 0 (the first camera found on the bus) and the number of cameras found on the bus and returned by getNumCameras() minus 1. If two cameras are connected on the bus, setting camera_id to one allows to communicate with the second one. This identifier is not unique. That is why, it is also possible to select a camera by its GUID, which is unique. |
vpFrameGrabberException::settingError | : If the required camera is not reachable. |
Here an example of single capture from the last camera found on the bus:
If more than one camera is connected, it is also possible to select a specific camera by its GUID:
Here an example of multi camera capture:
Definition at line 280 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setColorCoding | ( | vp1394TwoColorCodingType | coding | ) |
Set the active camera Format 7 color coding.
The iso transmission (setTransmission()) and the dma capture (see setCapture()) are first stopped. Then, the active camera Format 7 is set. Finaly, the dma capture and the iso transmission are re-started.
coding | : The camera color coding for Format 7 video mode. The current color coding of the camera is given by getColorCoding(). The camera supported color codings are given by getColorCodingSupported(). |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't set the color coding for Format 7 video mode. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
Definition at line 941 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setFormat7ROI | ( | unsigned int | left = 0 , |
unsigned int | top = 0 , |
||
unsigned int | w = 0 , |
||
unsigned int | h = 0 |
||
) |
Set the grabbed region of interest ie roi position and size for format 7 video mode.
The iso transmission (setTransmission()) and the dma capture (see setCapture()) are first stopped. Then, the format 7 roi is set. Finaly, the dma capture and the iso transmission are re-started.
left | : Position of the upper left roi corner. |
top | : Position of the upper left roi corner. |
w | : Roi width. If width is set to 0, uses the maximum allowed image width. |
h | : Roi height. If width is set to 0, uses the maximum allowed image height. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't set roi. |
Definition at line 1188 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setFramerate | ( | vp1394TwoFramerateType | fps | ) |
Set the active camera framerate for non scalable video modes.
The iso transmission (setTransmission()) and the dma capture (see setCapture()) are first stopped. Then, the camera framerate capture mode is set. Finaly, the dma capture and the iso transmission are re-started.
If the current video mode is scalable (Format 7), this function is without effect.
fps | : The camera framerate. The current framerate of the camera is given by getFramerate(). The camera supported framerates are given by getFramerateSupported(). |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't set the framerate. |
Definition at line 679 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setIsoTransmissionSpeed | ( | vp1394TwoIsoSpeedType | isospeed | ) |
Set the camera iso data transmission speed. Speeds over 400Mbps are only available in "B" mode.
isospeed | : Iso data transmission speed. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't set the iso speed transmission. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
Definition at line 1997 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setPanControl | ( | unsigned int | panControlValue | ) |
This method is useful for controlling single or multiple image transmission from stereo vision cameras.
The PAN register 0x884 used to control which images are transmitted is set to the corresponding panControlValue value.
panControlValue | : Value used to set the PAN register 0x884. The Format_7 Mode 0 transmits images from one camera. When set to 0, transmit right image. When set to 1, transmit left (Bumblebee2) or center (Bumblebee XB3) image and when set to 2 or higher transmit left image. The Format_7 Mode 3 allows to transmit two images simultaneously. If your camera has two sensors, you can use the PAN register to control the order of the images when transmitting. Writing a value of 0 to this register transmits images in right-left format. A value of 1 transmits images in left-right format. If your camera has three sensors, such as the Bumblebee XB3, you can adjust the PAN register as follows to specify which two sensors are capturing images. When panControlValue is set to 0, transmit right-left images, when set to 1, transmit right-center images. |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If the register was not set. |
Definition at line 3056 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setParameterValue | ( | vp1394TwoParametersType | param, |
unsigned int | val | ||
) |
This method set the value of one of the parameters of the camera. The initial value of the parameter is recorded and reset when the destructor is called.
param | : The parameters to modify |
val | : the new value of this parameter |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | if a manual mode is not available for the parameter, an exception is thrown. |
Definition at line 3175 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setRingBufferSize | ( | unsigned int | size | ) |
Set the ring buffer size used for the capture. To know the current ring buffer size see getRingBufferSize().
size | : Ring buffer size. |
vpFrameGrabberException::settingError | : If ring buffer size is not valid. |
Definition at line 1546 of file vp1394TwoGrabber.cpp.
void vp1394TwoGrabber::setVideoMode | ( | vp1394TwoVideoModeType | videomode | ) |
Set the camera video capture mode. Image size is than updated with respect to the new video capture mode.
The iso transmission (setTransmission()) and the dma capture (see setCapture()) are first stopped. Then, the camera video capture mode is set. Finaly, the dma capture and the iso transmission are re-started.
videomode | : The camera video capture mode. The current camera mode is given by getVideoMode(). The camera supported modes are given by getVideoModeSupported(). |
vpFrameGrabberException::initializationError | : If no camera found on the bus. |
vpFrameGrabberException::settingError | : If we can't set the video mode. |
Below you will find an example that shows how to grab images in Format7 with a transmission speed set to 800Mbps in 1394b mode.
Definition at line 444 of file vp1394TwoGrabber.cpp.
|
static |
Converts the string containing the description of the color coding into the color coding identifier.
colorcoding | : The string describing the color coding format. |
vpFrameGrabberException::settingError | : If the required color coding is not valid. |
This method returns 0 if the string does not match to a color coding string.
Definition at line 2928 of file vp1394TwoGrabber.cpp.
|
static |
Converts the string containing the description of the framerate into the framerate identifier.
framerate | : The string describing the framerate. |
vpFrameGrabberException::settingError | : If the required framerate is not valid. |
This method returns 0 if the string does not match to a framerate string.
Definition at line 2896 of file vp1394TwoGrabber.cpp.
|
static |
Converts the string containing the description of the vide mode into the video mode identifier.
videomode | : The string describing the video mode. |
vpFrameGrabberException::settingError | : If the required videomode is not valid. |
This method returns 0 if the string does not match to a video mode string.
Definition at line 2864 of file vp1394TwoGrabber.cpp.
|
static |
Converts the video mode identifier into a string containing the description of the mode.
videomode | : The camera capture video mode. |
Definition at line 2780 of file vp1394TwoGrabber.cpp.
|
protectedinherited |
Number of rows in the image.
Definition at line 106 of file vpFrameGrabber.h.
Referenced by vpDirectShowGrabber::getFormat().
|
inherited |
Set to true if the frame grabber has been initialized.
Definition at line 103 of file vpFrameGrabber.h.
|
static |
Definition at line 189 of file vp1394TwoGrabber.h.
|
static |
Definition at line 188 of file vp1394TwoGrabber.h.
|
static |
Definition at line 187 of file vp1394TwoGrabber.h.
|
protectedinherited |
Number of columns in the image.
Definition at line 107 of file vpFrameGrabber.h.
Referenced by vpDirectShowGrabber::getFormat().