Video Sources
The videosource concept is BIAS follows the idea of a generic handling of different sources of images. Every type of camera which is usable in BIAS is represented by a VideoSource... class which all share a common interface defined in BIAS::VideoSource_Base.
In principle capturing images follows this procedure:
foo = new VideoSource_DCAM;
Derived from VideoSource_Base many specializations for VideoSources exist. The most important are:
- BIAS::VideoSource_DCAM: This video source is used to capture images from IEEE1394/Firewire cameras. For Linux the libdc1394_2 is used and for Windows the CMU driver from the Carnegie Mellon University is embedded in BIAS. Note that for Windows you have to install the correct drivers by hand. For this go to the system settings and open the hardware tab. The cameras are mostly installed as something like "Generic IEEE1394 Camera" which is wrong. You have to choose "Update Driver" and select the CMU drivers by hand. Also note that there are no 64Bit drivers from CMU available at the moment.
- BIAS::VideoSource_V4L: This is used to capture images from USB-cameras such webcams. In Linux the Video4Linux (v4l) api is embedded in BIAS.
- BIAS::VideoSource_DSHOW: In Windows the DirectShow interface is used to display USB-cameras such as webcams. Note the in Windows you need to install the Microsoft Windows SDK v6.1 and the Microsoft DirectX SDK (November 2008).
- BIAS::VideoSource_uEye: This video source enables the usage of the uEye cameras from IDS.
- BIAS::VideoSource_Swissranger: This video source is used to capture images from Time-of-Flight cameras from Mesa-Imaging. Currently the Swissranger3000 and the Swissranger4000 are supported.
- BIAS::VideoSource_PMD: This video source is used to capture images from Time-of-Flight cameras from PMDTec. Currently the CamCube2.0 and the CamCube3.0 are supported.
- BIAS::VideoSource_Kinect: This video source captures images from the Microsoft Kinect Camera using the open source driver The driver is available at http://www.openkinect.org/ and called the libfreenect. Simply compile the driver for your system and install them using make install using CMake and include the libraries and headers in BIAS. Alternatively to installing you can also only compile them and make sure the libfreenect.hpp header file is also in the include directory. Mind the udev settings in VideoSource_Kinect.hh.
- BIAS::VideoSource_OpenNI: This video source captures images from the Microsoft Kinect Camera using the official driver.
- BIAS::VideoSource_Disk: Reads a file with a list of images and reads the images in this file.
- BIAS::VideoSource_Net: Receives images over a network connection. Can be used together with the VideoServer to enable video streaming.
The VideoSource class are collected in VideoSource classes. In the subdirectory Tools/BIASShowCamWx the application biasShowCamWx can be used to capture all kinds of cameras and save the images to disk.
Video sinks
The video sink concept is used to write images in form of a compressed video to disk. To store a video generate an instance of the BIAS::VideoSink class and add images to it. You can optionally set parameters, otherwise defaults are used. Internally the FFMPEG library is used to compress images. An example is provided to show the usage in ExampleVideoSink.cpp.
The VideoSink class are collected in VideoSink classes.
Author: Ingo Schiller