在上一篇文章中,主要針對一幅圖像的顯示方法作了介紹,一幅圖像數組還只是二維或者三維的。但是,在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.506064.com/zh-hant/n/224695.html
微信掃一掃
支付寶掃一掃