CameraDevice Class¶
Header: #include "easyar/camera.hpp"
Inherits: RefBase
Description¶
CameraDevice实现了一个camera设备。
CameraDevice工作在它自己的线程上。你可以open/close camera,也可以在任意时间关闭并重新开启一个不同的camera 设备或是设置不同的参数。start/stop用来开始和停止camera预览,这两个操作不会影响之前所设置的camera参数和算法连接。cam era的控制方法与系统API提供的方法类似。
CameraDevice是tracker以及其它算法的输入源。在调用任何其它方法之前,你需要首先调用open来打开一个设备,否则其它调用都将 是无效的。EasyAR里面所有的算法模块只有在连接CameraDevice之后才会工作。如果CameraDevice被关闭,所有算法将丢失与 该CameraDevice的连接,并且这些连接即使在重新打开设备之后也是无法恢复的,需要重新调用attach方法进行连接。
Public Types¶
Public Functions¶
enum CameraDevice::FocusMode¶
Constant |
Value |
Description |
---|---|---|
kFocusModeNormal |
0 |
常规对焦模式,在这个模式下需要调用setFocusMode(kFocusModeTriggerauto)来触发对焦。 |
kFocusModeTriggerauto |
1 |
触发自动对焦。对焦模式将会被设为kFocusModeNormal. |
kFocusModeContinousauto |
2 |
连续自动对焦模式。 |
kFocusModeInfinity |
3 |
无穷远对焦模式。 |
kFocusModeMacro |
4 |
微距对焦模式。在这个模式下需要调用setFocusMode(kFocusModeTriggerauto)来触发对焦。 |
enum CameraDevice::Device¶
Constant |
Value |
Description |
---|---|---|
kDeviceDefault |
0 |
默认camera。 |
kDeviceBack |
1 |
后置camera。 |
kDeviceFront |
2 |
前置camera。 |
CameraDevice()¶
创建CameraDevice实例。
virtual ~CameraDevice()¶
销毁CameraDevice实例。
bool open(int camera = kDeviceDefault)¶
打开类型为 camera 的camera设备。在桌面系统中,kDeviceDefault表示默认的camera,而大于0的数值表示设备号码(从1开始编号)。
bool close()¶
关闭camera。如果CameraDevice被关闭,所有算法将丢失与该CameraDevice的连接,并且这些连接即使在重新打开设备之后也 是无法恢复的,需要重新调用attach方法进行连接。
virtual bool start()¶
开始捕获图像。
virtual bool stop()¶
停止捕获图像。这个方法只会停止捕获,所有参数和算法连接将不会受到影响。
bool isOpened()¶
如果CameraDevice已打开则返回true,否则返回false。这个方法对于获取参数的函数是非常有用的,因为只有一个已经打开的came ra才会返回有效值。
float frameRate() const¶
获取当前帧率。在成功的open之后使用。
int supportedFrameRateCount() const¶
获取当前设备支持的所有帧率的个数。在成功的open之后使用。
float supportedFrameRate(int idx) const¶
获取所当前设备支持的所有帧率的第 idx 个。如果 idx 超出范围则返回0。在成功的open之后使用。
bool setFrameRate(float fps)¶
设置帧率。最接近设置值的可选值将被使用。可以使用frameRate来获取实际的帧率。在成功的open之后使用。
Vec2I size() const¶
获取当前图像大小。在成功的open之后使用。
int supportedSizeCount() const¶
获取当前设备支持的所有图像大小的个数。在成功的open之后使用。
Vec2I supportedSize(int idx) const¶
获取当前设备支持的所有图像大小的第 idx 个. 如果 idx 超出范围则返回{0, 0}。在成功的open之后使用。
bool setSize(Vec2I size)¶
设置当前图像大小。最接近设置值的可选值将被使用。可以使用size来获取实际的大小。在成功的open之后使用。
CameraCalibration cameraCalibration() const¶
获取当前相机标定数据。在成功的open之后使用。
bool setFlashTorchMode(bool on)¶
设置flash torch模式为 on 。在成功的open之后使用。
bool setFocusMode(FocusMode focusMode)¶
设置对焦模式为 focusMode 。在start之后使用。
void setHorizontalFlip(bool flip) (since 1.3.0)¶
设置camera的水平翻转标志。如果设置,camera图像相对默认状态会水平翻转。在成功的open之后使用。