matlab二维数组索引(matlab二维数组元素提取方法)

发布日期:2024-05-17 08:01:38     手机:https://m.xinb2b.cn/baike/news39899.html    违规举报
核心提示:在上一篇文章中,主要针对一幅图像的显示方法作了介绍,一幅图像数组还只是二维或者三维的。但是,在MATLAB中,图像数组也存在第四维,该维度是用来保存多帧图像的帧位的。所以,我们用imshow()函数来显示单帧图像;用montage()函数来

matlab二维数组索引(matlab二维数组元素提取方法)

在上一篇文章中,主要针对一幅图像的显示方法作了介绍,一幅图像数组还只是二维或者三维的。但是,在MATLAB中,图像数组也存在第四维,该维度是用来保存多帧图像的帧位的。所以,我们用imshow()函数来显示单帧图像;用montage()函数来显示多帧图像。

要实现图像的多帧显示,我们首先要创建包含多幅图像的四维图像数组。这些图像大小必须相同。

在读入图像后,显示图像需要特别留意图像的数据类型,否则,图像会出现失真。下表为部分图像文件读入前后数据格式的变化。

下面,介绍montage()函数的调用格式:

montage(I):显示灰度图像I共k帧,I为MxNx1xk的数组;

montage(X,map):显示灰度图像X共k帧,色图由map指定为所有帧图像的色图,X为MxNx1xk的数组; montage(BW):显示二值图像BW共k帧,BW为MxNx1xk的数组; montage(RGB):显示二值图像RGB共k帧,RGB为MxNx3xk的数组; 下面以实例来具体说明上述方法的使用: 代码

clc;clear all;close all

mri=uint8(zeros(400,720,3,50));%类型转换很重要,确保图像不失真

for frame=1:50

str=[‘C:ir’,num2str(frame)];

mri(:,:,:,frame)=uint8(imread(str,’bmp’));%类型转换很重要,确保图像不失真

end

subplot(221);

imshow( mri(:,:,:,1));

title(‘显示图像的第1帧’);

subplot(222);

imshow( mri(:,:,:,20));

title(‘显示图像的第15帧’);

subplot(223);

imshow( mri(:,:,:,35));

title(‘显示图像的第20帧’);

subplot(224);

imshow( mri(:,:,:,50));

title(‘显示图像的第30帧’);

figure();montage(mri);%同时显示mri数组表示的50幅图像

显示效果

上述实例,是把50幅图像(三维数组)构成四维数组,第四维是帧数,即图像的个数50。可以使用imshow()单独显示某一帧图像,可以使用montage()函数同时显示50帧图像!

 
 
本文地址:https://www.xinb2b.cn/baike/news39899.html,转载请注明出处。

推荐图文
推荐百科经验
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  违规举报  |  蜀ICP备18010318号-4  |  百度地图  | 
Processed in 0.079 second(s), 91 queries, Memory 0.46 M