主要内容

im2frame

R2026b

将图像转换为影片帧

描述

F = im2frame(RGB) 将真彩色图像 RGB 转换为影片帧 F。

示例

F = im2frame(X,map) 将索引图像 X 和关联的颜色图 map 转换为影片帧 F。

F = im2frame(X) 使用当前颜色图将索引图像 X 转换为影片帧 F。

示例

全部折叠

加载狒狒面部的索引图像。

load mandrill

使用关联的颜色图 map(包含 220 种颜色)显示图像 X。

figure
image(X)
colormap(map)
axis off

Figure contains an axes object. The hidden axes object contains an object of type image.

制作一部影片,用于展示减少图像颜色数量的效果。总共将有八个影片帧。预分配一个结构体数组来存储影片帧。

F(8) = struct('cdata',[],'colormap',[]);

以循环方式,使用 imapprox 函数减少索引图像中的颜色数量。使用 im2frame 函数将图像转换为影片帧。第一帧是具有所有 220 种颜色的原始图像。第二帧有 128 种颜色。每个后续帧的颜色数量都依次减半。最后一帧的颜色最少,只有 2 种。

for j = 1:8
    q = 2^(9-j);
    [Y,newmap] = imapprox(X,map,q,'nodither');
    F(j) = im2frame(Y,newmap);
end

要以每秒三帧的帧速率播放影片两次,请使用 movie(F,2,3)。

输入参数

全部折叠

真彩色图像,指定为 m×n×3 数值数组。如果指定数据类型为 double 的图像,则值必须在 [0, 1] 范围内。

数据类型: double | uint8

索引图像,指定为 m×n 整数矩阵。

数据类型: double | uint8

与索引图像 X 相关联的颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。map 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。

数据类型: double

输出参量

全部折叠

影片帧,以包含下列两个字段的结构体形式返回:

  • cdata - 存储为 uint8 值数组的图像数据。

  • colormap - 颜色图。对于真彩色 (RGB) 图像,此字段为空。

版本历史记录

在 R2006a 之前推出