10 #ifndef CCameraSensor_H 11 #define CCameraSensor_H 263 mrpt::obs::CObservationPtr getNextFrame( );
264 void getNextFrame( std::vector<mrpt::utils::CSerializablePtr> & out_obs );
269 virtual void initialize();
278 void setSoftwareTriggerLevel(
bool level );
284 virtual void setPathForExternalImages(
const std::string &directory );
290 typedef void (*TPreSaveUserHook)(
const mrpt::obs::CObservationPtr &obs,
void* user_ptr);
295 void addPreSaveHook( TPreSaveUserHook user_function,
void *user_ptr ) { m_hook_pre_save=user_function; m_hook_pre_save_param=user_ptr; };
371 void loadConfig_sensorSpecific(
406 void thread_save_images(
unsigned int my_working_thread_index);
416 std::shared_ptr<CCameraSensor>
m_ptr;
424 virtual const CCameraSensor* operator ->(
void)
const {
return m_ptr.get(); }
429 operator bool()
const {
return m_ptr.operator bool(); }
430 bool present()
const {
return m_ptr.get()!=NULL; }
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
bool m_sr_save_range_img
Save the 2D range image (default: true)
std::vector< TListObservations > m_toSaveList
The queues of objects to be returned by getObservations, one for each working thread.
This class provides simple critical sections functionality.
Options used when creating an dc1394 capture object All but the frame size, framerate, and color_coding can be changed dynamically by CImageGrabber_dc1394::changeCaptureOptions.
A class for grabing stereo images from a STOC camera of Videre Design NOTE:
COpenNI2Sensor * m_cap_openni2
OpenNI2 object.
CStereoGrabber_Bumblebee_libdc1394 * m_cap_bumblebee_dc1394
std::string m_img_dir_url
std::string m_cv_camera_type
This "software driver" implements the communication protocol for interfacing a DUO3D Stereo Camera...
uint64_t m_dc1394_camera_guid
A wrapper for Point Gray Research (PGR) FlyCapture2 API for capturing images from Firewire...
TCaptureCVOptions m_cv_options
bool m_sr_save_3d
Save the 3D point cloud (default: true)
A class for grabing "range images" from a MESA imaging SwissRanger 3D cameras (SR-2, SR-3000, SR-4k).
int m_img_dir_start_index
bool m_external_images_own_thread
Whether to launch independent thread.
std::shared_ptr< CCameraSensor > m_ptr
TCaptureOptions_FlyCapture2 m_flycap_options
A class for grabing "range images", intensity images (either RGB or IR) and other information from an...
bool m_kinect_save_3d
Save the 3D point cloud (default: true)
virtual CCameraSensor * pointer()
void * m_hook_pre_save_param
This class allows loading and storing values and vectors of different types from a configuration text...
bool m_threadImagesSaverShouldEnd
CCameraSensorPtr HWDRIVERS_IMPEXP prepareVideoSourceFromPanel(void *panel)
Used only from MRPT apps: Use with caution since "panel" MUST be a "mrpt::gui::CPanelCameraSelection ...
std::string m_rawlog_detected_images_dir
bool m_sr_save_intensity_img
Save the 2D intensity image (default: true)
bool m_kinect_save_intensity_img
Save the 2D intensity image (default: true)
CCameraSensorPtr(CCameraSensor *data)
mrpt::utils::CFileGZInputStream * m_cap_rawlog
The input file for rawlogs.
CImageGrabber_OpenCV * m_cap_cv
The OpenCV capture object.
A class for grabing "range images", intensity images (either RGB or IR) and other information from an...
The central class for camera grabbers in MRPT, implementing the "generic sensor" interface.
bool m_fcs_start_synch_capture
CSwissRanger3DCamera * m_cap_swissranger
SR 3D camera object.
std::string m_img_dir_right_format
CStereoGrabber_SVS * m_cap_svs
The svs capture object.
A class for grabing images from a IEEE1394 (Firewire) camera using the libdc1394-2 library...
Grabs from a "Bumblebee" or "Bumblebee2" stereo camera using raw access to the libdc1394 library...
std::vector< mrpt::system::TThreadHandle > m_threadImagesSaver
Options used when creating a camera capture object of type CImageGrabber_FlyCapture2.
CKinect * m_cap_kinect
Kinect camera object.
CDUO3DCamera * m_cap_duo3d
The DUO3D capture object.
int m_camera_grab_decimator
int m_bumblebee_dc1394_camera_unit
Options used when creating a camera capture object of type CImageGrabber_FlyCapture2.
GLsizei const GLchar ** string
bool m_sr_open_from_usb
true: USB, false: ETH
CImageGrabber_FlyCapture2 * m_cap_flycap_stereo_r
The FlyCapture2 object for stereo pairs.
TPreSaveUserHook m_hook_pre_save
std::string m_grabber_type
Can be "opencv",...
void HWDRIVERS_IMPEXP readConfigIntoVideoSourcePanel(void *panel, const std::string &in_cfgfile_section_name, const mrpt::utils::CConfigFileBase *in_cfgfile)
Parse the given section of the given configuration file and set accordingly the controls of the wxWid...
double m_bumblebee_dc1394_framerate
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
uint64_t m_bumblebee_dc1394_camera_guid
unsigned __int64 uint64_t
TCaptureOptions_dc1394 m_dc1394_options
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Options used when creating a STOC Videre Design camera capture object.
CCameraSensorPtr HWDRIVERS_IMPEXP prepareVideoSourceFromUserSelection()
Show to the user a list of possible camera drivers and creates and open the selected camera...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
std::string m_rawlog_file
void reset(CCameraSensor *p)
bool m_kinect_save_range_img
Save the 2D range image (default: true)
Eigen::MatrixBase< Derived >::PlainObject operator!(const Eigen::MatrixBase< Derived > &m)
Unary inversion operator.
std::string m_sr_ip_address
bool m_kinect_video_rgb
Save RGB or IR channels (default:true)
A class for grabing images from a "OpenCV"-compatible camera, or from an AVI video file...
TCaptureOptions_DUO3D m_duo3d_options
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
virtual const CCameraSensor * pointer() const
mrpt::synch::CCriticalSection m_csToSaveList
The critical section for m_toSaveList.
CImageGrabber_dc1394 * m_cap_dc1394
The dc1394 capture object.
CImageGrabber_FlyCapture2 * m_cap_flycap
The FlyCapture2 object.
void HWDRIVERS_IMPEXP writeConfigFromVideoSourcePanel(void *panel, const std::string &in_cfgfile_section_name, mrpt::utils::CConfigFileBase *out_cfgfile)
Parse the user options in the wxWidgets "panel" and write the configuration into the given section of...
Options used when creating an OpenCV capture object Some options apply to IEEE1394 cameras only...
unsigned int m_external_image_saver_count
Number of working threads. Default:1, set to 2 in quad cores.
CFFMPEG_InputStream * m_cap_ffmpeg
The FFMPEG capture object.
int m_camera_grab_decimator_counter
mrpt::gui::CDisplayWindowPtr m_preview_win2
Normally we'll use only one window, but for stereo images we'll use two of them.
GLsizei GLsizei GLenum GLenum const GLvoid * data
std::string * m_cap_image_dir
Read images from directory.
std::string m_img_dir_left_format
std::string m_rawlog_camera_sensor_label
TCaptureOptions_SVS m_svs_options
bool m_sr_save_confidence
Save the estimated confidence 2D image (default: false)
std::vector< T1 > operator*(const std::vector< T1 > &a, const std::vector< T2 > &b)
a*b (element-wise multiplication)
void enableLaunchOwnThreadForSavingImages(bool enable=true)
This must be called before initialize()