Sensor

目前凡哥只翻译了部分Sensor的文档, 访问全部API请访问英文文档

sensor — camera sensor

预备知识

  • RGB565 颜色格式(为什么要用? 表示方法?)
  • FrameBuffer
  • 感光元器件(sensor), 硬件图像处理(设定分辨率, 颜色格式)
  • ROI 的格式 概念
  • 自动增益/白平衡 什么时候用 ? 什么时候不适合用
  • lens_correlation 防止畸变

项目样例

sensor模块,用于设置感光元件的参数。

我们先来看一下Helloword的演示例程 前面有一系列针对sensor的操作

helloworld.py

#引入感光元件的模块
import sensor

# 设置摄像头相关参数
sensor.reset()#初始化感光元件
#设置为彩色, 颜色格式为RGB565
# 也就是说,颜色存储 红色(5位),绿色(6位), 蓝色(5位)
sensor.set_pixformat(sensor.RGB565)
#设置图像的大小
sensor.set_framesize(sensor.QVGA)
# 跳过20张照片,跳过帧数可以自定义
# 在更改设置后,跳过一些帧,等待感光元件变稳定。
sensor.skip_frames(20)

# 一直拍照
while(True):
    # 拍摄一张照片,snapshot()函数返回一个image对象
    img = sensor.snapshot()
    # 随后图像经过串口传递给IDE, 读入FrameBuffer, 即左上角的视频框

API

初始化

sensor.reset() 初始化感光元件

设置彩色/黑白

sensor.set_pixformat() 设置像素模式。
  • sensor.GRAYSCALE: 灰度,每个像素8位。
  • sensor.RGB565: 彩色,每个像素16位,(RGB565 5+6+5=16)。

 设定窗口大小

sensor.set_framesize(framesize)

就是你拍摄的画面的长和宽分别是多少个像素点

预定义的几种窗口大小

sensor.QQQQCIF: 22x18
sensor.QQQCIF: 44x36
sensor.QQCIF: 88x72
sensor.QCIF: 176x144
sensor.CIF: 352x288
sensor.QQQQSIF: 22x15
sensor.QQQSIF: 44x30
sensor.QQSIF: 88x60
sensor.QSIF: 176x120
sensor.SIF: 352x240
sensor.QQQQVGA: 40x30
sensor.QQQVGA: 80x60
sensor.QQVGA: 160x120
sensor.QVGA: 320x240
sensor.VGA: 640x480
sensor.HQQQQVGA: 40x20
sensor.HQQQVGA: 80x40
sensor.HQQVGA: 160x80
sensor.HQVGA: 240x160
sensor.HVGA: 480x320
sensor.LCD: 128x160 (for use with the lcd shield)
sensor.QQVGA2: 128x160 (for use with the lcd shield)
sensor.B40x30: 160x120 (for use with image.find_displacement)
sensor.B64x32: 160x120 (for use with image.find_displacement)
sensor.B64x64: 160x120 (for use with image.find_displacement)
sensor.SVGA: 800x600 (only in JPEG mode for the OV2640 sensor)
sensor.SXGA: 1280x1024 (only in JPEG mode for the OV2640 sensor)
sensor.UXGA: 1600x1200 (only in JPEG mode for the OV2640 sensor)

演示示例

sensor.set_framesize(sensor.QVGA)

跳过一些帧

因为sensor参数设定之后, 图像质量不稳定, 要过一段时间。 跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。

sensor.skip_frames(n=10)

获取一张图像

sensor.snapshot() 拍摄一张照片,返回一个image对象。

自动增益/白平衡

sensor.set_auto_gain(True) # 自动增益开启(True)或者关闭(False)。
sensor.set_auto_whitebal(True) #自动白平衡开启(True)或者关闭(False)。

设置窗口ROI

Region of interest

感兴趣的区域

ROI 就是说, 一张大图, 我需要关注于其中一小块内容, 接下来对子图做色块搜索, 统计信息等其他操作.

ROI是一个tuple类型 数据格式 样式1 (x , y, w, h) 子图的左上角起始坐标 x,y 窗口的宽度(widht) : w 窗口的高度(height) : h

样式2 (w, h) ROI的中心点在整个window的中间, 也就是说取的中间区域。 窗口的宽度(widht) : w 窗口的高度(height) : h

sensor.set_windowing(roi)

演示样例

sensor.set_framesize(sensor.VGA) # 高分辨率 640x480
sensor.set_windowing((640, 80)) #取中间的640*80区域
sensor.set_framesize(sensor.VGA) # 高分辨率 640x480
sensor.set_windowing((0, 200, 640, 80)) #取中间的640*80区域

上述的两种方式是等效的。

设置翻转

TODO 配图

sensor.set_hmirror(enable) 水平方向翻转

sensor.set_vflip(enable) 垂直方向翻转
Copyright 杭州云江科技有限公司 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-04-02 09:53:12

results matching ""

    No results matching ""