Maix Dock M1W demo1--使用屏幕和摄像头详解

import sensor, lcd #导入库--sensor摄像头、lcd屏幕

sensor.reset() #摄像头初始化init()
sensor.set_pixformat(sensor.RGB565)# 设置摄像头格式RGB565
sensor.set_framesize(sensor.QVGA)#设置分辨率QVGA:320x240
sensor.run(1) #启动
sensor.skip_frames() #跳过开始的一些帧

lcd.init(freq=15000000) #lcd初始化,15MHz

while(True):
    lcd.display(sensor.snapshot())#snapshot取一帧图像数据,返回值是一张图像的对象

lcd常用方法详解

  1. init()初始化
lcd.init(type=1, freq=15000000, color=lcd.BLACK, invert = 0, lcd_type = 0)

参数:
	-type: 设备类型
		0: None
		1: lcd shield 默认
		2: Maix Cube
		5: sipeed rgb 屏幕接板
	-freq: LCD(SPI的通信速率)的频率
	-color: 初始化的颜色,默认lcd.BLACK
		16位的RGB565颜色,如0xffff
		RGB888元组,如(236,36,36)
	-invert: LCD反色显示
	-lcd_type: lcd类型
		0: 默认
		1: LCD_TYPE_ILI9486
		2: LCD_TYPE_ILI9481
		3: LCD_TYPE_5P0_7P0,5 寸或 7 寸 分辨率为 800 * 480 的 lcd (需要搭配 sipeed 转接板)
		4: LCD_TYPE_5P0_IPS,5 寸 分辨率为 854*489 的 IPS lcd (需要搭配 sipeed 转接板)
		5: LCD_TYPE_480_272_4P3,4.3 寸分辨率为 480*272 的 lcd (需要搭 sipeed 配转接板)
  1. display()显示图像
lcd.display(image, roi=Auto, oft=(x, y))

参数:
	-roi: 矩形元组(x, y, w, h)
		若 roi 宽度/高度小于lcd宽度/高度,用黑色填充未占用区域
		roi 宽度/高度大于lcd宽度/高度,以窗口形态显示 roi 的中心
	-oft: 设置便宜坐标,设置了这个坐标就不会自动填充周围了
  1. clear()清屏
lcd.clear()

参数:
	-color:
		可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36)
  1. rotation()屏幕方向
lcd.rotation(dir)

参数:
	-dir: [0,3],从0-3依次顺时针旋转90°
返回值:
	当前方向,[0,3]
  1. draw_string()显示文字
lcd.draw_string(height, width, string,  word_color, b_color)

参数:
	-height
	-width
	-string
	-w_color: 

sensor常用方法详解

  1. sensor.reset()初始化
reset([, freq=24000000[, set_regs=True[, dual_buff=False]]])

参数:	
	-freq: 默认24MHz,设置摄像头时钟频率,频率越高帧率越高,但是画质可能更差。如果摄像头有彩色斑点(ov7740),可以适当调低比如 20MHz
	-set_regs:允许程序写摄像头寄存器,默认为 True。 
		如果需要自定义复位序列,可以设置为False,然后使用sensor.__write_reg(addr,value)函数自定义写寄存器序列
	-dual_buff: 默认为False。
		允许使用双缓冲,会增高帧率,但是内存占用也会增加(大约为384KiB)
	-choice:指定需要搜索的摄像头类型,
		ov类型(1),gc类型(2),mt类型(3),
		不传入该参数则搜索全部类型摄像头
返回值: 
	无
  1. set_pixformat()设置格式
sensor.set_pixformat(format[, set_regs=True])

参数:
	-format: 帧格式
		-GRAYSCALE
		-RGB565
		-YUV422
	-set_regs: 允许程序写摄像头寄存器,默认为 True。 如果需要自定义设置像素格式的序列,可以设置为False,然后使用sensor.__write_reg(addr, value) 函数自定义写寄存器序列

返回值:
	成功: True
	失败: False
  1. run()启动
sensor.run(enable)

参数:
	-enable:
		1: 开始抓取图像
		0: 停止抓取图像
返回值:
	成功: True
	失败: False	
  1. snapshot()拍照
sensor.snapshot()

参数:
	无
返回值:
	-img: 图像对象
  1. shutdown()关闭/切换
sensor.shutdown(enable/select)

参数:
	-enable---单目摄像头
		True: 开启
		False: 关闭
	-select---双目
		0、1切换
返回值:
	无
  1. skip_frames()跳帧
sensor.skip_frames(n, [, time])

参数:
	-n: 跳过n帧图像
	-time: 跳过指定时间,单位ms
	若 n 和 time 皆未指定,该方法跳过300毫秒的帧;
	若二者皆指定,该方法会跳过 n 数量的帧,但将在 time 毫秒后返回
返回值:
	无
经验分享 程序员 微信小程序 职场和发展