1、第三章 影像顯示 3.1 前言,看看空間解析度和量化會如何影響影像的顯示,尤其是影像品質的部分,各種影像的屬性如何影響到顯示的品質。 人類的視覺大致都比較喜歡銳利而精細的影像。 許多因子都會影響到顯示效果,包括: 環境照明。 顯示器類型與設定。 顯示卡。 顯示器解析度。,這個函數的作用就是將矩陣顯示為影像image 指令是以色譜來指定矩陣元素的顏色。,3.2 影像顯示的基礎,3.2 影像顯示的基礎,要適當地顯示出影像,就必須在image 這個指令外加上幾個額外的指令。,3.2 影像顯示的基礎,我們也可以調整色譜顏色的多寡,不過這可能會大大影響顯示效果。,image 指令也可以顯示索引色彩影像,
2、不過要記得在imread 中讀入色譜:tmap 是 一的data,3.2 影像顯示的基礎, t, tmap=imread(trees.tif); figure, image(t), truesize, axis off, colormap(tmap),3.2 影像顯示的基礎,至於全彩影像,imread 指令會將之讀取為3D 陣列 image 指令則會忽略設定的色譜,直接使用陣列中的顏色值來顯示色彩。, a=imread(autumn.tif); figure, image(a), truesize, axis off,3.3 imshow 函數,顯示Matlab影像處理指令所輸出的矩陣(通常是
3、double形態)有兩種選擇: 轉換為uint8 形態並顯示。 直接顯示矩陣。 只要矩陣元素介於0 與1 之間,imshow 就可以將double形態的矩陣正確地顯示成灰階影像。,圖 3.1, ce=imread(cell.tif); ced=double(ce);,imshow(ce),imshow(ced),imshow(ced/255),imshow(ced/512),imshow(ced/128),3.3 imshow 函數,使用im2double 函數便可將原始影像更正確地轉換成double 形態若將double 形態的影像cd 的數值適當的調整於0 至1 之間,就有兩種方法將之轉換
4、回uint8形態的影像:, ced1=im2double(ce); imshow(ced1), ce1=uint8(255*ced1); ce2=im2uint8(ced1);,3.3 imshow 函數,MATLAB沒有這種二元資料形態,不過可以使用邏輯(logical)旗標,將uint8的數值0 與1 解讀成邏輯資料。若用whos指令檢查所有的變數,結果會包含下面這一行:, imshow(uint8(cl), imshow(cl),圖 3.3,3.4 位元平面,灰階影像按照位元平面(bitplanes)分割後,就可以轉換為一系列的二元影像。 第0 個位元平面 最低位元平面(least si
5、gnificant bit plane) 第八位元平面 最高位元平面(most significant bit plane),3.4 位元平面,先將一個灰階影像轉換成double形態的矩陣,也就是進行下列運算:,圖 3.4,最低位元平面(least significant bit plane) 最高位元平面(most significant bit plane),3.5 空間解析度,空間解析度意指影像像素的密度,空間解析度越高,用來顯示影像的像素越多。 用MATLAB 的imresize 函數可以用來實驗空間解析度變化的影響。, imresize(x,1/2);,3.5 空間解析度, x2=i
6、mresize(imresize(x,1/2),2);Pixelization 像素化效果,圖 3.5,圖 3.6,圖 3.7,第三章 影像顯示 第58頁 圖3.8,3.6 量化與混色,量化(quantization)是指用來顯示影像的灰階數目。 均勻量化(uniform quantization),運用MATLAB 進行上述映射,可以使用下列指令。假設x 為uint8形態的矩陣:然而,要減少影像的灰階數還有一個更好的方法,就是使用grayslice函數。,3.6 量化與混色,圖 3.9,圖 3.10,圖 3.11,圖 3.12,均勻量化最明顯的效果便是輪廓失真,灰階數越少越明顯。,3.6 量
7、化與混色,混色(dithering) 簡單來說,混色就是減少影像色彩數目的過程。 將影像用兩種色調表示的方法也稱為半色調(halftoning)。 混色矩陣(dither matrix)重複這個矩陣到和原影像矩陣一樣大。,3.6 量化與混色,假設d(i, j) 是重複D 之後得到的矩陣,則輸出像素p(i, j)便定義為:,圖 3.14,(由於 255/3 = 85),3.6 量化與混色,二個灰階值以上的影像也可以使用混色法產生。 舉例來說,若想量化成四個輸出層次0、1、2 及3 。, D = 0 56; 84 28; r = repmat(D, 128, 128); x = double(x)
8、; q = floor(x/85); x4 = q+(x-85*qr); imshow(uint8(85*x4), D = 0 24; 36 12; r = repmat(D, 128, 128); x = double(x); q = floor(x/37); x8 = q+(x-37*qr); imshow(uint8(37*x8),圖 3.15,3.6 量化與混色,誤差擴散法(error diffusion) 將影像量化成兩個層次。 我們考慮要每一個像素的灰階值及其量化值之間的誤差。 所謂的誤差擴散法就是將誤差分散到鄰近的像素。 最常用的方法是由Floyd 和Steinberg 發展出來。 影像中的每個像素p(i, j) 都會執行下列步驟: 進行量化 計算量化誤差。定義為:,第三章 影像顯示 第65頁,3.6 量化與混色,根據右表將誤差E 往右往下擴散:,圖 3.17,圖 3.18,
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1