文章插图
文章插图
在上一篇文章中,主要针对一幅图像的显示方法作了介绍,一幅图像数组还只是二维或者三维的 。但是,在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幅图像
显示效果
【matlab一维数组索引 matlab二维矩阵索引】上述实例,是把50幅图像(三维数组)构成四维数组,第四维是帧数,即图像的个数50 。可以使用imshow()单独显示某一帧图像,可以使用montage()函数同时显示50帧图像!
- matlab数字图像处理基本操作 MATLAB数字图像处理算法程序
- matlab中最小二乘法拟合曲线 matlab曲线拟合的最小二乘法
- matlab求最大值最小值 matlab求函数最大值代码
- 遗传算法经典实例matlab代码 遗传算法matlab程序案例详解
- 苹果电脑windows系统matlab打不开 闪一下_为什么电脑开光管会黑闪一下
- 怎么判断数组里面相同 jquery 判断数组中是否有重复值
- 求matlab解一阶微分方程组,并画相图。。。-整数规划matlab
- 用matlab作出抛物柱面y^2=x和平面x z=1相交的图形具体步骤 平面图形组成的画
- 两曲面相交线怎么画_用matlab怎么求出由散点画出的两个三维曲面的相交线
- 怎样求出长度为10的一维数组当中最小元素的值?向大佬求助!!|js数组添加元素