Download presentation
Presentation is loading. Please wait.
1
數位影像處理 2 影像與MATLAB
2
目 錄 2.1 灰階影像 2.2 RGB影像 2.3 索引彩色影像 2.4 資料型態與轉換 2.5 影像檔案與格式
3
2.1 灰階影像
4
使用指令的時候要注意兩點: 指令以分號結尾,這樣指令的結果便不會出現在螢幕上 檔案名稱wombats.tif前後必須加上單引號 接下來就可以將這個矩陣以灰階影像的型式 顯示出來
5
MATLAB允許同一行裡鍵入多個指令,只需用逗號分開不同指令即可
figure 所謂的figure便是指圖形物件 呈現的視窗,物件可包含影像 或各種圖表 imshow (g) 將g以影像形式顯示出來 pixval on 在figure中顯示像素值,也就 是影像的像素灰階值
6
c × r = p c是指定之像素的行值,r是列值,p則是灰階值。由於wombats.tif是一個8位元的灰階影像像素質便會是0-255間的整數
8
2.2 RGB影像 描述色彩的方法有許多種,但影像顯示與儲存的標準模型則是RGB。也就是如圖2.2所示,所有的顏色都座落在第一象限的色彩立方體中。 RGB是電腦螢幕和電視機顯示色彩的標準,但並不是用來描述色彩的好方法
10
MATLAB處理24位元RGB影像的方式和處理灰階影像差不多,可將色彩值存入矩陣中,然後顯示結果:
11
透過下面這個指令,可以看出RGB與灰階影像的明顯不同
這個指令顯示出三項數值:a的列數、行數及平面數,說明a是一個三維矩陣,也稱作多為陣列 (multidimensional array)
12
2.3 索引彩色影像 emu.tif 這個影像檔就是所謂的索引影像 (indexed image),其中包含了兩個矩陣
2.3 索引彩色影像 emu.tif 這個影像檔就是所謂的索引影像 (indexed image),其中包含了兩個矩陣 色譜 ( color map) 色譜的索引 (index) 若把影像讀入單一矩陣又只會取得索引,因此還 必須另外取得色譜才行
13
2.3.1 影像資訊 imfinfo函數可以顯示出很多影像資訊。譬如說,以上述的索引影像emu.tif為例。
15
和下面這個全彩檔案的資訊做個比較
16
然後再將此函數使用在二元數位影像上:
17
MATLAB並不會區分灰階影像和二元數位影像:二元影像不過就是一種灰階影像的特例,因為它只有兩種明暗度。
可以看出text.tif是一個二元數位影像,因為,每個像素的位元數都是1
18
2.4 資料型態與轉換 MATLAB矩陣中的元素可能會有資料型態,就如表2-1所示
19
影像類型可以互相轉換,表2.2列出了MATLAB可以進行的所有影像轉換函數
20
2.5 影像檔案與格式 影像檔案也有標頭資訊(header information),最少會包含以像素為單位的影像尺寸,還可能包含了色譜、壓縮方式及影像的描述 MATLAB可以辨識許多標準影像格式 TIFF影像是非常普遍的格式,TIFF格式非常適合在不同操作系統及環境間傳送影像時使用
21
MATLAB的imread和imwrite函數目前可支援下列格式
23
十六進位傾印函數 要分析二進位檔案,就需要一個簡單的函數以十六進位值列出檔案內容 圖2.3就是一個簡單的十六進位傾印函數
25
2.5.1 向量影像 vs 掃描點影像 儲存影像資訊有兩種不同的方法 線或向量集合 (向量影像 vector image)
優點:可以放大成任何想要的大小,而且不會 模糊 缺點:不適用於顯示自然景象 標準向量格式:Adobe PostScript 點的集合 ( 掃描點影像 raster images) 大部分的影像檔案格式都將影像儲存為掃描點 的資訊,例如:數位相機
26
2.5.2 簡單的掃描點影像格式 除了像素資訊之外,影像檔案必須包含標頭資訊,如影像大小及其他資訊。我們簡單介紹ASCII PGM格式:
27
這種PGM格式: 優點:非常容易讀寫 缺點:檔案會變的很大 使用這些格式來儲存的二元、灰階 或彩色影像總稱為PNM影像。MATLAB不 直接支援PNM影像。
28
2.5.3 微軟BMP 微軟視窗BMP影像格式是一種相當簡單的數位影像格式 BMP也是在標頭之後顯示影像資訊 標頭分為兩個部分
前14位元組(0-13位元組)是檔案標頭 接下來40位元組(14-53位元組)則是資訊標頭
30
標頭之後接著是色彩表,只有在位元計數小於等於8的時候才會使用,所佔的位元組數為4倍使用色彩
BMP格式的位元組排序是按照英特爾的「小尾序」原則,4位元組的字組,由最低的位元組到最高的位元組
31
影像寬度資料位於第18-21位元組,在第二列 要知道確實寬度, 必須重新排列 再轉換為10進位 4*161+2*160=66 影像高度資料位於第22-25位元組,在第二列 1F 要知道確實高度, 必須重新排列 F 再轉換為10進位 1*161+F*160=31
32
2.5.4 GIF與PNG GIF特性 色彩使用色譜儲存 GIF無法儲存二元或灰階影像,除非使用RGB值產生對應的顏色
像素資料使用LZW (Lempel-Ziv-Welch)壓縮 GIF格式每個檔案可包含多個影像,可用於創造動畫GIF
33
PNG PNG支援灰階、全彩和索引影像 使用的壓縮工具zlib具有較好的壓縮效果 PNG也支援alpha圖層以及gamma校正技術
34
2.5.5 JPEG JPEG演算法的壓縮會失真,原始資料無法完全復原 JPEG影像基本上會比GIF或PNG影像來的小
35
JPEG使用dumphex函數便可取得此標頭
版本 水平密度 垂直密度
36
含有JPEG壓縮資料的影像檔案通常就稱為JPEG影像,這並非完全正確,這樣的影像應稱為JFIF影像
38
2.5.6 TIFF
39
7
40
2.5.8 MATLAB中的檔案 使用imwirte函數便可將影像矩陣寫入影像檔案。一般形式為:
41
JPEG影像檔案壓縮率計算 使用imwirte函數儲存JPEG影像檔案的語法 壓縮品質q是介於0到100的整數q越小品質越差
imwrite(f,’filename.jpg’,’quality’,q) 壓縮品質q是介於0到100的整數q越小品質越差 例如imwrite(f,’coins25.jpg’,’quality’,25) 計算壓縮率 k=imfinfo(‘coins25.jpg’); image_bytes=k.Width*k.Height*k.BitDepth/8; compressed_bytes=k.FileSize; compression_ratio=image_bytes/compressed_bytes
42
TIFF影像檔案 使用imwirte函數儲存TIFF影像檔案的語法 例如
imwrite(q,’filename.tif’,’compression’,’parameter’,…, ’resoluson’,[colres rowres]) 其中’parameter’可以是’none’ 、’packbits’ 、’ccitt’ ; [colres rowres]是行與列的解析度以點數為單位 例如 imwite(f,’newborn200.tif’,’compression’,’none’,’resolution’,[ ]) res=round(200*1.25/0.833); %200dpi乘以1.25/0.833=300dpi f1=imread(‘newborn200.tif’); imwite(f1,’newborn300.tif’,’compression’,’none’,’resolution’,res)
Similar presentations