在MATLAB中打开和查看32位tiff图像序列

在MATLAB中打开和查看32位tiff图像序列,matlab,video,stack,bit,tiff,Matlab,Video,Stack,Bit,Tiff,我有一个singe image.tiff文件,一个导出为32位tiff的视频序列。我想在MATLAB中将其作为图像堆栈打开,并能够逐帧导航。我相信implay()是在matlab中实现这一点的方法。如果我尝试此操作,我会得到“尝试读取文件时出错:image.tiff错误详细信息:AVI文件中的块大小信息不正确。”是否implay()仅适用于.AVI格式?在使用implay()之前,是否需要将此32 tiff转换为.avi?或者是否有其他(non-implay())方法将其作为堆栈打开 谢谢您可以

我有一个singe image.tiff文件,一个导出为32位tiff的视频序列。我想在MATLAB中将其作为图像堆栈打开,并能够逐帧导航。我相信
implay()
是在
matlab
中实现这一点的方法。如果我尝试此操作,我会得到
“尝试读取文件时出错:image.tiff错误详细信息:AVI文件中的块大小信息不正确。”
是否
implay()
仅适用于
.AVI
格式?在使用
implay()
之前,是否需要将此32 tiff转换为
.avi
?或者是否有其他(
non-implay()
)方法将其作为堆栈打开


谢谢您可以尝试创建一个图像堆栈并使用implay查看它。该函数接受多种类型的参数,对于灰度图像,应提供一个大小为N x M x K的数组,其中K是帧数,(N,M)是图像大小。对于彩色图像,需要一个大小为NxMx3xK的数组

要为包含多个文件(每个文件包含一个帧)的案例创建阵列,您有多个选项,最简单的方法可能是使用cat函数进行串联:

image_stack = [];
for i = 1: num_frames
     curr_image = imread(sprintf('frame_%04d_color.tif', i));
     image_stack = cat(4, image_stack, curr_image);
end

implay(image_stack);
这个解决方案比预先分配映像_堆栈要慢一些


对于使用单个TIFF文件的情况,需要以适合存储格式的方式提取帧,但这与视频回放是一个单独的问题。

在带有
暂停的
For
循环中使用
imshow
如何,除了我希望能够在堆栈中向后移动之外,还可以使用暂停从键盘获取一个键来选择是否转到下一帧或上一帧。