matlab二維數組元素提取方法:matlab二維數組索引

在上一篇文章中,主要針對一幅圖像的顯示方法作了介紹,一幅圖像數組還只是二維或者三維的。但是,在MATLAB中,圖像數組也存在第四維,該維度是用來保存多幀圖像的幀位的。所以,我們用imshow()函數來顯示單幀圖像;用montage()函數來顯示多幀圖像。

要實現圖像的多幀顯示,我們首先要創建包含多幅圖像的四維圖像數組。這些圖像大小必須相同。

在讀入圖像後,顯示圖像需要特別留意圖像的數據類型,否則,圖像會出現失真。下表為部分圖像文件讀入前後數據格式的變化。

「十九」MATLAB圖像處理之五

下面,介紹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幀圖像!

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/224695.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:39
下一篇 2024-12-09 14:39

相關推薦

發表回復

登錄後才能評論