10 #ifndef CCameraSensor_H
11 #define CCameraSensor_H
349 using Ptr = std::shared_ptr<CCameraSensor>;
369 std::vector<mrpt::serialization::CSerializable::Ptr>& out_obs);
586 void* panel,
const std::string& in_cfgfile_section_name,
597 void* panel,
const std::string& in_cfgfile_section_name,
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
This class allows loading and storing values and vectors of different types from a configuration text...
std::shared_ptr< CDisplayWindow > Ptr
The central class for camera grabbers in MRPT, implementing the "generic sensor" interface.
bool m_sr_save_confidence
Save the estimated confidence 2D image (default: false)
void enableLaunchOwnThreadForSavingImages(bool enable=true)
This must be called before initialize()
std::unique_ptr< mrpt::io::CFileGZInputStream > m_cap_rawlog
The input file for rawlogs.
bool m_kinect_save_range_img
Save the 2D range image (default: true)
std::unique_ptr< CStereoGrabber_SVS > m_cap_svs
The svs capture object.
void addPreSaveHook(TPreSaveUserHook user_function, void *user_ptr)
Provides a "hook" for user-code to be run BEFORE an image is going to be saved to disk if external st...
virtual void initialize()
Tries to open the camera, after setting all the parameters with a call to loadConfig.
bool m_kinect_save_3d
Save the 3D point cloud (default: true)
unsigned int m_external_image_saver_count
Number of working threads.
int m_camera_grab_decimator
std::unique_ptr< std::string > m_cap_image_dir
Read images from directory.
int m_img_dir_start_index
std::string m_sr_ip_address
TCaptureOptions_DUO3D m_duo3d_options
double m_bumblebee_dc1394_framerate
std::string m_rawlog_file
std::string m_img_dir_right_format
TCaptureOptions_dc1394 m_dc1394_options
std::unique_ptr< CDUO3DCamera > m_cap_duo3d
The DUO3D capture object.
std::mutex m_csToSaveList
The critical section for m_toSaveList.
bool m_threadImagesSaverShouldEnd
bool m_sr_open_from_usb
true: USB, false: ETH
uint64_t m_bumblebee_dc1394_camera_guid
std::vector< TListObservations > m_toSaveList
The queues of objects to be returned by getObservations, one for each working thread.
bool m_fcs_start_synch_capture
bool m_kinect_video_rgb
Save RGB or IR channels (default:true)
void loadConfig_sensorSpecific(const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection)
See the class documentation at the top for expected parameters.
bool m_external_images_own_thread
Whether to launch independent thread.
TCaptureOptions_FlyCapture2 m_flycap_stereo_options[2]
bool m_sr_save_3d
Save the 3D point cloud (default: true)
std::string m_rawlog_detected_images_dir
bool m_sr_save_intensity_img
Save the 2D intensity image (default: true)
uint64_t m_dc1394_camera_guid
std::unique_ptr< COpenNI2Sensor > m_cap_openni2
OpenNI2 object.
poses::CPose3D m_sensorPose
std::string m_img_dir_left_format
TCaptureOptions_FlyCapture2 m_flycap_options
TCaptureOptions_SVS m_svs_options
std::unique_ptr< CFFMPEG_InputStream > m_cap_ffmpeg
The FFMPEG capture object.
void close()
Close the camera (if open).
bool m_kinect_save_intensity_img
Save the 2D intensity image (default: true)
mrpt::obs::CObservation::Ptr getNextFrame()
Retrieves the next frame from the video source, raising an exception on any error.
std::unique_ptr< CImageGrabber_FlyCapture2 > m_cap_flycap_stereo_r
std::string m_cv_camera_type
std::shared_ptr< CCameraSensor > Ptr
bool m_sr_save_range_img
Save the 2D range image (default: true)
std::string m_img_dir_url
std::unique_ptr< CImageGrabber_FlyCapture2 > m_cap_flycap
The FlyCapture2 object.
int m_camera_grab_decimator_counter
void thread_save_images(unsigned int my_working_thread_index)
Thread to save images to files.
virtual void setPathForExternalImages(const std::string &directory)
Set the path where to save off-rawlog image files (this class DOES take into account this path).
int m_bumblebee_dc1394_camera_unit
std::string m_grabber_type
Can be "opencv",...
virtual ~CCameraSensor()
Destructor.
TPreSaveUserHook m_hook_pre_save
void doProcess()
This method will be invoked at a minimum rate of "process_rate" (Hz)
std::vector< std::thread > m_threadImagesSaver
void setSoftwareTriggerLevel(bool level)
Set Software trigger level value (ON or OFF) for cameras with this function available.
std::unique_ptr< CImageGrabber_FlyCapture2 > m_cap_flycap_stereo_l
The FlyCapture2 object for stereo pairs.
std::unique_ptr< CStereoGrabber_Bumblebee_libdc1394 > m_cap_bumblebee_dc1394
std::unique_ptr< CSwissRanger3DCamera > m_cap_swissranger
SR 3D camera object.
std::unique_ptr< CImageGrabber_dc1394 > m_cap_dc1394
The dc1394 capture object.
TCaptureCVOptions m_cv_options
std::function< void(const mrpt::obs::CObservation::Ptr &obs, void *user_ptr)> TPreSaveUserHook
Functor type.
std::unique_ptr< CKinect > m_cap_kinect
Kinect camera object.
std::unique_ptr< CImageGrabber_OpenCV > m_cap_cv
The OpenCV capture object.
mrpt::gui::CDisplayWindow::Ptr m_preview_win2
CCameraSensor()
Constructor.
void * m_hook_pre_save_param
mrpt::gui::CDisplayWindow::Ptr m_preview_win1
Normally we'll use only one window, but for stereo images we'll use two of them.
std::string m_rawlog_camera_sensor_label
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
std::shared_ptr< CObservation > Ptr
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Versatile class for consistent logging and management of output messages.
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
GLsizei const GLchar ** string
Contains classes for various device interfaces.
CCameraSensor::Ptr prepareVideoSourceFromPanel(void *panel)
Used only from MRPT apps: Use with caution since "panel" MUST be a "mrpt::gui::CPanelCameraSelection ...
void writeConfigFromVideoSourcePanel(void *panel, const std::string &in_cfgfile_section_name, mrpt::config::CConfigFileBase *out_cfgfile)
Parse the user options in the wxWidgets "panel" and write the configuration into the given section of...
CCameraSensor::Ptr prepareVideoSourceFromUserSelection()
Show to the user a list of possible camera drivers and creates and open the selected camera.
void readConfigIntoVideoSourcePanel(void *panel, const std::string &in_cfgfile_section_name, const mrpt::config::CConfigFileBase *in_cfgfile)
Parse the given section of the given configuration file and set accordingly the controls of the wxWid...
unsigned __int64 uint64_t
Options used when creating an OpenCV capture object Some options apply to IEEE1394 cameras only.
Options used when creating a camera capture object of type CImageGrabber_FlyCapture2.
Options used when creating a camera capture object of type CImageGrabber_FlyCapture2.
Options used when creating a STOC Videre Design camera capture object.
Options used when creating an dc1394 capture object All but the frame size, framerate,...