影像處理的進度也慢慢地進入到了第四章
4.1
大概講出影像處理可以分成三類基本的資訊顯示
從最複雜的轉換成簡單的。
1.Transforms(轉換)
大概意思是 transform 允許一些有效和強大的演算法
我們可能考慮用一個 transform,把整個 image當成單一大的區塊來做處理。
p.65有圖示
一開始 image 經過 transform後變成 轉換後的 image,
然後再對 image做處理,之後再把處理過的 image反轉換去,
最後就是一張經過影像處理的 image了
那張圖應該是這樣意思吧?
問題:transform到底是在轉換什麼?又該怎麼轉換?
看了一下同學 問的transform只能用在gray 嗎?
我想了又想,才發現 我自己也不是很了解,
所以也想提問說 "transform到底是在轉換什麼?又該怎麼轉換?"
2.Neighborhood processing(鄰近地區的處理)
大概意思是我們只需要知道和pixel鄰近的一小塊,gray leve 的數值
然後去改變這些已知的 pixel(像素值) 的gray level。
老師已解答。
3.Point operations(一點的運算)
意思好像是一個pixel(像素值)的gray value(灰階數值)的改變,
不需要該pixel周圍的資訊
感覺2和3的差別是2要改變gray leve 需要pixel鄰近的資訊
而3則是不用,自己就可以做處理
3也是最簡單的,也被廣泛的運用在影像處理上。
4.2
這節大致上是在講pixel的運算
最簡單的運算是
y=f(x);
f(x)的範圍是0~255,並且包含加減乘除 等四個運算。
然後為了保證他的範圍是在0~255
所以做了一些調整
若y>255 則 y=255
若y<0 則 y=0
p.67的兩張圖就是在舉例說明這個調整
左邊是對所有pixel 加上128
然而當所有的gray value加上128後,原本的pixel大於127都會變成255。
而右邊圖則是用減法,把全部pixel減去128之後,原本的pixel小於128都會變成0。
p.67下面有用MATLAB輸入指令做示範
令我不解的是
b1=b+128; 這個指令
當我輸入之後沒有錯誤,
還有兩個方法可以加128
一個是讓b矩陣轉成double型態在加上128後再轉成uint8型態(範圍0~255)
另一個是利用MATLAB的函數式 imadd
然而書上說會錯誤的那樣寫法
和上述兩個方法,我在workspace那邊看那三個的矩陣內部的數值皆相同。。
看書上錯誤的原因似乎是+這個function在uint8沒有定義??
p.68 (a) b1 是對image 加128 (b) b2 是對image 減128
之後是在對乘和除用image來舉例看之間的差異
p.69 b3 是對其除以2 跟b2 的差異是b2減128後 原本小於128的都=0
而b3是126/2=63 並不會變成0
b4是乘以2倍,5先除以2再加128
以上都是會遵循
若y>255 則 y=255;若y<0 則 y=0
作調整。
書上也有對double型態的image做曲補數的運算
是直接整數1減去該矩陣"1-矩陣"。
對binary 則是用反(~)"~那個矩陣"如書上所示。
假如是uint8型態則直接用imcomplement()這個指令。
4.3
這節主要是在介紹統計圖
axis tight
的意思是會讓長條圖適當的顯示在figure上
如果超出範圍的話他會縮短比例。
依稀記得第一次上課,老師就好像講過image的統計圖
4.3.1contrast stretching(對比延展)
為什麼要延展,老師上課也說過,也拿老師的相機呈現給我們看過了。
按慣例的,小紅帽同學找我一起研究4.3節,我們目前共同的疑問是
p.72頁的上面那張圖的右邊那張,根據書上的說法
右邊的圖是根據左邊的圖,應用"Piecewise linear function(片段線性的函數)"畫出來的
我們不了解那到底是怎麼畫的?
還有p.73的中間那張圖,不是說對比延展嗎?為什麼延展後的比例會有所不同?WHY?
另外想問一下
問題: gray level 的意思是?
MATLAB的函數式 imadjust(im,[a,b],[c,d])的功能
依照所輸入的a、b、c、d,能讓 image 如上述的延展開來 figure4.10就是延展的函數圖
至於4.4的 LUT,依照他書上所說的意思
我想應該是pixel value 除以2然後顯示商
value 2 和 3
2除以2後,則顯示商(1);3除以2無法整除有餘數,故仍顯示商(1)。
我想應該是比較節省空間。
沒有留言:
張貼留言