:mod:`tv` --- tv shield driver ============================== .. module:: tv :synopsis: tv shield driver ``tv`` 模块用于控制TV图传扩展板。 Example usage:: import sensor, tv #设置相机。 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.SIF) sensor.skip_frames() tv.init() #显示图像。 while(True): tv.display(sensor.snapshot()) 功能 --------- .. function:: tv.init([type=tv.TV_SHIELD, [triple_buffer=False]]) 初始化附加的TV输出模块。 ``type`` 表示应该如何初始化 tv 模块: * `tv.TV_NONE`:什么都不做。 * `tv.TV_SHIELD`:初始化tv输出模块。 使用引脚 P0、P1、P2 和 P3。 ``triple_buffer`` 如果为 True,则在 tv.TV_SHIELD 模式下以 3 倍的显示 RAM (495 KB) 为代价对屏幕进行非阻塞更新。 .. function:: tv.deinit() 取消初始化tv模块、内部/外部硬件和 I/O 引脚。 .. function:: lcd.width() 返回 352 像素。 这是 `sensor.SIF``分辨率。 .. function:: lcd.height() 返回 240 像素。 这是 `sensor.SIF` 分辨率。 .. function:: tv.type() 返回在 `tv.unit()` 期间设置的屏幕类型。 .. function:: tv.triple_buffer() 返回是否启用了在 `tv.unit()` 期间设置的三重缓冲。 .. function:: tv.refresh() 返回 60 赫兹。 .. function:: tv.channel([channel]) 对于无线图传扩展板,这将广播频道设置在 1-8 之间。如果在没有通道参数的情况下传递,则此方法返回先前设置的通道 (1-8)。默认为通道 8。 .. function:: tv.display(image, [x=0, [y=0, [x_scale=1.0, [y_scale=1.0, [roi=None, [rgb_channel=-1, [alpha=256, [color_palette=None, [alpha_palette=None, [hint=0, [x_size=None, [y_size=None]]]]]]]]]]]]) 显示一个 ``image`` ,其左上角从位置 x, y 开始。您可以单独传递 x, y ,作为元组 (x, y) 或两者都不传递。 ``x_scale`` 控制显示图像在 x 方向(浮点数)的缩放比例。如果此值为负,则图像将水平翻转。 ``y_scale`` 控制显示图像在 y 方向(浮点数)的缩放比例。如果此值为负,则图像将垂直翻转。 ``roi`` 是要显示的图像的感兴趣区域矩形元组 (x, y, w, h)。这允许您仅提取 ROI 中的像素以进行缩放。 ``rgb_channel`` 是从 RGB565 图像(如果传递)中提取并在显示器上呈现的 RGB 通道(0=R、G=1、B=2)。 例如,如果您传递 ``rgb_channel=1`` 这将提取 RGB565 图像的绿色通道并以灰度显示。 ``alpha`` 控制图像的不透明程度。值 256 显示不透明图像,而小于 256 的值生成黑色透明图像。 0 生成完美的黑色图像。 ``color_palette`` 如果不是 ``-1`` 可以是 `sensor.PALETTE_RAINBOW`、`sensor.PALETTE_IRONBOW`, 或总共 256 像素的 RGB565 图像,用作任何输入灰度值的颜色查找表图像。如果使用,这将在 ``rgb_channel`` 提取之后应用。 ``alpha_palette`` 如果不是 ``-1`` 可以是总共 256 像素的 GRAYSCALE 图像,用作 alpha 调色板,它调制以像素像素级别显示的输入图像的 ``alpha`` 值, 允许您根据像素的灰度值精确控制像素的 alpha 值。 alpha 查找表中的 255 像素值是不透明的,任何小于 255 的像素值都会变得更透明,直到 0。 如果使用,则在 ``rgb_channel`` 提取之后应用。 ``hint`` 可以是标志的逻辑 OR: * `image.AREA`:与最近邻的默认值相比,在缩小时使用区域缩放。 * `image.BILINEAR`:使用双线性缩放而不是最近邻缩放的默认值。 * `image.BICUBIC`:使用双三次缩放与最近邻缩放的默认值。 * `image.CENTER`:将显示在 (x, y) 上的图像居中。 * `image.EXTRACT_RGB_CHANNEL_FIRST`:缩放前进行 rgb_channel 提取。 * `image.APPLY_COLOR_PALETTE_FIRST`:缩放前应用调色板。 如果没有传递 ``x_scale`` 来指定要显示的图像的大小,则可以传递 ``x_size`` 并且 ``x_scale`` 将自动确定传递的输入图像大小。 如果 ``y_scale`` 或 ``y_size`` 都没有指定,那么 ``y_scale`` 内部将设置为等于 ``x_size`` 以保持纵横比。 如果没有传递 ``y_scale`` 以指定要显示的图像的大小,则可以传递 ``y_size`` 并且 ``y_scale`` 将自动确定传递的输入图像大小。 如果 ``x_scale`` 或 ``x_size`` 都没有指定,那么 ``x_scale`` 内部将设置为等于 ``y_size`` 以保持纵横比。 不支持压缩图像。 常数 --------- .. data:: tv.TV_NONE 当此模块未初始化时由 `tv.type()` 返回。 .. data:: tv.TV_SHIELD 用于初始化 TV 模块。