【MATLAB Image Processing Toolbox 入門教程九】“匯入、匯出和轉換”之“影像序列和批處理”
【MATLAB Image Processing Toolbox 入門教程九】
影像序列是一組與時間或空間位置相關聯的影像。影像序列又稱為影像堆疊或者視訊。本次所講解的內容就是MATLAB中如何顯示影像序列以及如何對影像序列進行批處理。
1 implay函式
在MATLAB中輸入implay可以開啟視訊檢視器,使用視訊檢視器可以播放視訊、電影或影像序列,可以跳到序列的特定幀,或者更改顯示的幀速率。也可以開啟多個視訊檢視器觀看不同的視訊。implay函式還有以下的用法:
- implay(filename):開啟視訊檢視器並播放filename指定的檔案,視訊檢視器一次讀取一幀,目的是在播放過程中節約記憶體。
- implay(I):開啟視訊檢視器並播放影像序列I中的第一幀。
- implay(_,fps):用於指定要檢視視訊或影像序列的幀速率。fps是幀速率,以每秒幀數為單位,指定為正數。如果省略,視訊檢視器將使用檔案中指定的幀速率或預設值20。
接下來我們舉幾個例子演示一下implay函式的用法。
首先是用implay函式播放影像序列:
load cellsequence; %載入影像序列
implay(cellsequence,5); %用每秒5幀的速率播放
接下來用implay函式播放視訊:
implay('rhinos.avi');
2 montage函式
montage除了蒙太奇的意思之外,還有拼接影像的意思。在MATLAB中,montage函式的功能就是將多個影像幀放在一個矩形裡顯示。此函式的使用方式有下面幾種:
- montage(I):顯示影像序列I的所有幀。在預設情況下,montage函式將這些影像幀進行排列使他們大致形成一個正方形。I作為多幀影像序列,若其為K個二值影像或灰度影像,那麼I為m×n×K的數值陣列,若其為K個真彩色影像,那麼I為m×n×3×K的數值陣列。
- montage(imagelist):顯示單元格陣列imagelist的一組影像。imagelist指定為大小為m×n或m×n×3的數值矩陣的單元陣列。
- montage(filename):顯示檔名為filename的檔案中的影像集。
- montage(imds):顯示影像資料庫imds的影像集。
- montage(__,map):在使用此語法時,montage函式將二值影像或灰度影像看做索引影像,並用指定的顏色圖map顯示。如果用檔名filename或資料集imds來制定要顯示的影像,那麼montage函式則用指定的map覆蓋原影像中的任何顏色對映。對於彩色影像,montage不改變其colormap。對於顏色對映map,可以指定為元素值在[0 1]內的c×3的矩陣陣列,也可以指定為下圖中的colormap名稱。
- montage(__,Name,Value):使用Name-Value對montage函式的其他引數進行自定義設定,主要有以下幾個:
①’BackgroundColor’:背景色,預設為’black’,指定為MATLAB Colorspec,如下圖所示。montage函式用這指定的顏色填充圖片中的空白。一旦指定了背景色,那麼montage函式將輸出變為RGB影像。
②’BorderSize’:用於填充縮圖的邊界,以畫素為單位,預設為[0 0],可以指定為非負整數或1×2維非負整數矩陣。montage函式用’BackgroundColor’指定的顏色填充邊界。
③’DisplayRange’:指定灰度影像的顯示範圍,定義為[low high],畫素值小於等於low的為黑色,大於或等於high的為白色。若指定為空矩陣[ ],那麼montage函式將影像中畫素最小值指定為low,最大值指定為high。
④’Indices’:指定mintage函式顯示影像序列的幀,預設情況下,montage函式顯示所有的影像。例如montage(I,‘Indices’,1:4)則代表顯示影像集I的前4幀。
⑤’Interpolation’:縮放影像時使用的插值方法。有兩個對應值:‘nearest’(default)和’bilinear’。‘nearest’代表最近鄰插值。‘bilinear’代表雙線性插值。
⑥’Parent’:由montage函式建立的影像物件的父物件。指定為一個軸物件。
⑦’Size’:指定影像顯示的行數和列數,指定為[nrows ncols]。
⑧’ThumbnailSize’:每個縮圖的大小,以畫素為單位,指定為正整數的二元素矩陣,每個影像的高寬比會被保留,空白處由BackgroundColor指定的顏色填充。 - img=montage(__):返回包含所有幀的單個影像物件的控制程式碼。
可算是把montage函式用法講完了,我知道大家看完一定一頭霧水,沒關係,下面舉幾個例子,就知道這玩意該怎麼用了☺。
一、用montage函式顯示多幀影像
此例中,我們用montage函式顯示4張相同尺寸的灰度影像。
img1 = imread('AT3_1m4_01.tif');
img2 = imread('AT3_1m4_02.tif');
img3 = imread('AT3_1m4_03.tif');
img4 = imread('AT3_1m4_04.tif');
montage({img1,img2,img3,img4});
接著,我們改變影像的排列方式,使用’Size’引數:
montage({img1,img2,img3,img4},'Size',[1 4]);
可以看出,影像用1行4列的方式排列。
二、用montage函式顯示不同尺寸和型別的影像
此例中,我們使用montage函式顯示不同尺寸和型別的3張影像,並改變他們的背景顏色。
imgRGB=imread('peppers.png');
imgGray=imread('coins.png');
subplot(1,2,1);montage({imgRGB,imgGray,'cameraman.tif'}); %預設背景顏色為黑色
subplot(1,2,2);montage({imgRGB,imgGray,'cameraman.tif'},'BackgroundColor','y'); %背景顏色改成黃色
三、自定義montage函式顯示影像的數量
首先使用預設設定的montage函式顯示mri資料集中的所有27張影像:
load mri;
subplot(1,3,1);
montage(D);
subplot(1,3,2);
montage(D,jet); %修改montage顯示影像的colormap
subplot(1,3,3);
montage(D,spring);
接著,我們使用’Indices’引數設定montage顯示影像的數量:
figure;
montage(D,'Indices',1:9);
至此,影像序列和批處理就講解完畢了,下節見:)
相關文章
- MySQL入門--匯出和匯入資料MySql
- IDEA 匯出和匯入jar包教程IdeaJAR
- 管理大容量匯入的批處理
- (轉)excel和sql server的匯入匯出ExcelSQLServer
- MATLAB匯入txt和excel檔案技巧彙總:批量匯入、單個匯入MatlabExcel
- docker建立volume 指定volume 匯出image 匯入imageDocker
- kxcel, 方便匯入和匯出 ExcelExcel
- 匯出和匯入Gradle工程Gradle
- postgresql 資料匯入和匯出SQL
- NPOI匯出和匯入Excel,Word和PDFExcel
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- Oracle - UTL_FILE包之BLOB匯入和匯出Oracle
- 轉換後統計資訊的匯入匯出
- ES模組化的匯入和匯出
- 匯入和匯出AWR的資料
- 【mysql】資料庫匯出和匯入MySql資料庫
- BCP 資料的匯入和匯出
- ASP.NET Excel匯入和匯出ASP.NETExcel
- NDS的資料匯入和匯出
- 如何使用 JavaScript 匯入和匯出 ExcelJavaScriptExcel
- tsc、babel、webpack對模組匯入匯出的處理BabelWeb
- 【匯出匯入】匯出匯入 大物件物件
- DB2 匯入和匯出 命令列和客戶端匯出DB2命令列客戶端
- MySQL資料庫結構和資料的匯出和匯入 (轉)MySql資料庫
- 前端實現Excel匯入和匯出功能前端Excel
- SQL資料庫的匯入和匯出SQL資料庫
- Oracle資料泵的匯入和匯出Oracle
- ClickHouse 資料表匯出和匯入(qbit)
- Navicat如何匯入和匯出sql檔案SQL
- 資料泵取匯出和匯入(一)
- 使用csv批量匯入、匯出資料的需求處理
- 特殊符號密碼處理 - 匯入匯出exp/imp符號密碼
- 【匯入匯出】sqlldr 匯入案例SQL
- oracle匯入匯出之expdp/impdpOracle
- 轉java操作excel匯入匯出JavaExcel
- Poi 匯入格式轉換
- gitbook 入門教程之匯出電子書Git
- 如何使用JavaScript匯入和匯出Excel檔案JavaScriptExcel