第四章點處理

Download Report

Transcript 第四章點處理

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