【问题标题】:Matlab visualization of videoMatlab视频可视化
【发布时间】:2013-05-17 19:20:55
【问题描述】:
我有一个需要在 Matlab 中可视化的视频文件。从这个文件中,我提取了下采样的缩略图并将它们合并为一个图像。此图像使用imshow 命令显示,并提供整个视频的概述。
我想通过鼠标点击(或悬停)任何缩略图并自动从视频全尺寸版本中提取并以新图形显示。
实现这样的功能需要哪些功能?
【问题讨论】:
标签:
matlab
video
callback
【解决方案1】:
大致:
- 使用
VideoReader 对象连接到您的视频文件。
- 获取
VideoReader 对象的NumberOfFrames 属性。
- 使用
VideoReader 对象的read 方法读取帧。
- 从 1 循环到
NumberOfFrames,并在每一帧中读取。
- 读入每一帧后,将其存储在 M×N×3×K 数组的
kth 平面中,其中 K 是帧数。 (如果您的视频是 RGB,则为 3 - 如果为灰度,则为 1)。
- 此外,使用函数
imresize 将每个帧的大小调整为缩略图,并将其存储在 m×n×3×K 数组的 kth 平面中,其中 m
- 以这种形式存储后,使用命令
montage 将结果显示在图形中,这会将所有缩略图很好地显示在网格中。
- 为单击图像时触发的图形添加回调。回调应获取当前鼠标位置(在单击时),确定单击了哪个帧,并创建一个新图形以显示未调整大小数组中的相应平面。
这听起来可能吗?