Download presentation
Presentation is loading. Please wait.
1
4.1 導論 4.2 數學運算 4.3 直方圖(灰階值分佈圖) 4.4 查詢表格
第四章 點處理 4.1 導論 4.2 數學運算 4.3 直方圖(灰階值分佈圖) 4.4 查詢表格
2
4.1 導論 只要是影像處理運算就會轉換像素的灰階值。而影像處理運算可以按照進行時所需的資訊分成三個等級,複雜度由高到低可排列如下:
1.轉換(transforms) 2.臨域處理(neighborhood processing) 3.點運算(point operations)
3
4.2 數學運算 點運算對影像中的每個像素灰階值會進行下列簡單的函數運算。 y=f(x)
y=x ± C or y=Cx
4
磚塊影像範例 首先,先讀取影像… 第二個指令的重點在於找出b的 數值資料型態,此例為uint8。
5
以下是對影像進行數學運算需用的函數: [b+128] 加:imadd(b,128) [b-128] 減:imsubtract(b,128) [b*2] 乘:immultiply(b,2) [b/2] 除:imdivide(b,2)
6
b b2 b b4
7
補色(complement) 灰階影像的補色就是對應到相片的負片。若影像矩陣m是屬於double型態,則灰階值便介於0-1之間,可透過下列指令補色。 >> 1-m 若是uint8型態影像,最好的方法就是執行imcomplement函數,補色函數 y=255-x。
8
原始 補色後
9
4.3 直方圖(灰階值分佈圖) 灰階影像的直方圖(histogram)是由其灰階層次所構成,也就是一張標示每個灰階層次在影像中出現次數的圖表。從灰階直方圖可以推論出影像大致上的特性。 在MATLAB中可以使用imhist函數檢視影像的直方圖,指令如下:
10
axis tight 指令可以調整座標軸,讓直方圖的直線條完全落在圖表內。
影像 直方圖
11
imadjust(im,[a,b],[c,d])
在MATLAB中擴展直方圖也可以使用imadjust函數。最簡單的形式如下: imadjust(im,[a,b],[c,d]) im是輸入的檔案名稱, Imadjust對於double、 uint8、uint16效果一 樣好,不過a、b、c、d 的值要在0到1之間。
12
imadjust 函數還有另一個 可選用的參數:gamma 通常gamma等於1(內定值),而我們可以 改變它使它大於或小於1,如下圖所示。 gamma<1 gamma>1
13
Gamma範例 我們拿輪胎影像做這次的示範……
14
接下來執行plot函數便可檢視 imadjust擴展函數
15
片段線性擴展函數
16
有了這一段函數後,我們來簡單的顯示如何處理uint8或double型態的影像。
17
直方圖等化 上述直方圖擴展的方法一定需要使用者輸入,有些情況使用直方圖等化(equalization)這種完全自動的處理方式會比叫好。主要的概念是將直方圖轉換成均勻分佈的樣子,亦即使途中所有的直條變成同一高度。
18
在MATLAB中要執行直方圖等化,可以用
histeq函數,例如對pout影像執行。 前 後
19
前 後
20
在舉一個例子,一個顏色很暗的影像。我 們使用imdivide產生暗色影像。如下…
21
在對影像執行直方圖等化,然後顯示…
22
4.4 查詢表格 使用查詢表格(lookup table)來執行點運算會十分有效率。對uint8型態的影像執行運算時,使用的表格是由256個值所組成的單一陣列,每個值都是落於0…255之間的整數,只要將像素值p代換成表格中對應的數值tp,即可完成運算。
23
LUT的範例 舉例來說,『除以2』的LUT表格如下: 譬如說,想用上述表格對磚塊影像進行運算,可先產生表格:
24
磚塊圖 擴展函數圖
25
在舉一例,假設我們要對下圖的比對擴展函數執行LUT,我們得到3個直線方程式:
簡化
26
然後用下列指令建構LUT
27
Thanks you for listening 感 謝 你 的 聆 聽!!
Similar presentations