camera - 摄像头#

已适配 Air780EP

备注

本页文档由这个文件自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢!

小技巧

本库有专属demo,点此链接查看camera的demo例子

常量#

常量

类型

解释

camera.AUTO

number

摄像头工作在自动模式

camera.SCAN

number

摄像头工作在扫码模式,只输出Y分量

camera.init(InitReg_or_cspi_id, cspi_speed, mode, is_msb, rx_bit, seq_type, is_ddr, only_y, scan_mode, w, h)#

初始化摄像头

参数

传入值类型

解释

table/integer

如果是table,则是DVP摄像头的配置见demo/camera/AIR105,同时忽略后续参数;如果是数字,则是camera spi总线序号

int

camera spi总线速度

int

camera spi模式,0~3

int

字节的bit顺序是否是msb,0否1是

int

同时接收bit数,1,2,4

int

byte序列,0~1

int

双边沿采样配置,0不启用,其他值根据实际SOC决定

int

只接收Y分量,0不启用,1启用,扫码必须启用,否则会失败

int

工作模式,camera.AUTO自动,camera.SCAN扫码

int

摄像头宽度

int

摄像头高度

返回值

返回值类型

解释

int/false

成功返回camera_id,失败返回false

例子

camera_id = camera.init(GC032A_InitReg)--屏幕输出rgb图像
--初始化后需要start才开始输出/扫码
camera.start(camera_id)--开始指定的camera

camera.on(id, event, func)#

注册摄像头事件回调

参数

传入值类型

解释

int

camera id, camera 0写0, camera 1写1

string

事件名称

function

回调方法

返回值

返回值类型

解释

nil

无返回值

例子

camera.on(0, "scanned", function(id, str)
--id int camera id
--str 多种类型 false 摄像头没有正常工作,true 拍照模式下拍照成功并保存完成, int 原始数据模式下本次返回的数据大小, string 扫码模式下扫码成功后的解码值
    print(id, str)
end)

camera.start(id)#

开始指定的camera

参数

传入值类型

解释

int

camera id,例如0

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.start(0)

camera.stop(id)#

停止指定的camera

参数

传入值类型

解释

int

camera id,例如0

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.stop(0)

camera.close(id)#

关闭指定的camera,释放相应的IO资源

参数

传入值类型

解释

int

camera id,例如0

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.close(0)

camera.capture(id, save_path, quality)#

camera拍照

参数

传入值类型

解释

int

camera id,例如0

string/zbuff/nil

save_path,文件保存路径,空则写在上次路径里,默认是/capture.jpg,如果是zbuff,则将图片保存在buff内不写入文件系统

int

quality, jpeg压缩质量,1最差,占用空间小,3最高,占用空间最大而且费时间,默认1

返回值

返回值类型

解释

boolean

成功返回true,否则返回false,真正完成后通过camera.on设置的回调函数回调接收到的长度

例子

camera.capture(0)

camera.video(id, w, h, out_path)#

camera输出视频流到USB

参数

传入值类型

解释

int

camera id,例如0

int

宽度

int

高度

int

输出路径,目前只能用虚拟串口0

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.video(0, 320, 240, uart.VUART_0)

camera.startRaw(id, w, h, buff)#

启动camera输出原始数据到用户的zbuff缓存区,输出1fps后会停止,并通过camera.on设置的回调函数回调接收到的长度,如果需要再次输出,请调用camera.getRaw

参数

传入值类型

解释

int

camera id,例如0

int

宽度

int

高度

zbuff

用于存放数据的缓存区,大小必须不小于w X h X 2 byte

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.startRaw(0, 320, 240, buff)

camera.getRaw(id)#

再次启动camera输出原始数据到用户的zbuff缓存区,输出1fps后会停止,并通过camera.on设置的回调函数回调接收到的长度,如果需要再次输出,请继续调用本API

参数

传入值类型

解释

int

camera id,例如0

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.getRaw(0)

camera.preview(id, onoff)#

启停camera预览功能,直接输出到LCD上,只有硬件支持的SOC可以运行

参数

传入值类型

解释

int

camera id,例如0

boolean

true开启,false停止

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

例子

camera.preview(1, true)