2008年12月4日 星期四

Chapter 5

  第五章的內容是在第四章裡有提到過的Neighborhood Processing,再繼續更深入的說明。一開始我都習慣先把一個章節從頭到尾大概翻過一次,我覺得這一章好像特別長,而且有蠻多經過影像處理後的圖片,看起來Neighborhood Processing的應用範圍應該是很廣的。

  5.1主要是在介紹Neighborhood Processing的基本處理方式,以下是我看完這一節的感覺。我覺得它跟Point operations(單一點處理:需要原本影像一個點的資料,處理後對應到新影像的一個點)相同的地方在於,原本影像的點處理後,都會對應到新影像上面的一個點。不同的地方就是Neighborhood Processing需要用到原本影像的點旁邊很多鄰近點來做計算,但是Point operations只需要一個點就可以計算了。這邊只要看P.89頁的圖5.2,應該就可以比較容易了解我上面到底在說什麼了。

  在這一節裡面有幾個名詞,Mask指的是一個原本影像要處理的點加上它鄰近點形成的矩形(或是其他形狀)。將一個Mask與function做運算後得到的矩陣就叫做Filter。不過那個linear filter我就不是很了解了,線性指的是什麼意思呢?
--------------------------------------------------
  在第13週的時候,老師已經說明linear的意思了,還把他以前做的投影片拿出來看。大家都看到了一個很熟悉的公式,原來在以前的線性代數就已經有教過了,但是卻沒有幾個人真的去了解這個公式所代表的意義。看來我的學習方式有需要改變一下了,像我從小學到現在學過了很多的東西,但是當真正要用到的時候,我卻不知道要用到以前學過的東西來解決問題。

  5.2是在說明可以用矩陣(Matrix)的方式來做Neighborhood Processing的數學運算,矩陣......都已經忘的差不多了XD。

  5.2.1是在說明當要處理影像最旁邊的點時,會遇到最邊邊的點並沒有全部的鄰近點這個問題(因為都在最邊邊了,旁邊當然就沒有東西啦)。課本上有提到用2種方式來解決,一個是Ignore the edges(忽略邊邊),另一個是Pad with zeros(把沒有鄰近點的位置放0進去)。這兩種方法的說明,可能是我自己英文能力的問題,我看得一知半解的不是很確定,希望老師上課的時候能大概的解釋一下
--------------------------------------------------
  這個部分老師也有提到過,他還在黑板畫出大概的示意圖,看了黑板的圖之後我大概就能了解這2種方式的差別了。加上老師也有一個步驟、一個步驟慢慢的舉例說明,聽完之後就比較能知道課本上在說什麼東西了。

  5.3這一小節主要是在介紹用Matlab來實作Neighborhood Processing的影像處理方式。這邊有用到一個函數,filter2(filter,image,shape),shape這邊課本有用到3種,samevalidfull。我看了很久才大概知道它到底是在算什麼,filter應該是給程式每一個點要做影像處理的方式,課本上這邊給的a是說,目標的點要和它周圍的8個點相加再取平均。image則是放入要做影像處理的圖片,課本上的x是在5.1時就已經定義好的矩陣,在課本上p.90頁那邊。shape則是設定這個函數處運算完後要輸出的矩陣大小(還是形狀?)
--------------------------------------------------
  這個問題老師只有大概帶過去一下而已,不過我猜測應該只是設定輸出矩陣的大小吧!因為形狀應該都是矩形的,好像不會有圓形、三角形或是其它奇奇怪怪的形狀等等。
  
  不過在它的範例中,我看的不是很懂它做的是什麼樣的影像處理。看起來好像是在說明不同大小的Mask,做出來的影像處理效果不同。這邊好像也是將鄰近點做平均來輸出,然後影像顏色就會變得比較接近,看起來就變得模模糊糊的。不過程式碼那部分就不是很懂了,好像有出現一個fspecial('average')的函數,還有5.3.1那邊根本就像是在做矩陣的教學,那一小節我就先沒有去看了......

  5.4我覺得這邊開始越來越難了,出現frequencies(頻率)這個字,感覺上難度就增加了。在這邊課本用到fspecial()這個函數做了不同的處理,5.3的時候是用average(平均),這邊用了laplacian和log兩種運算的方式。雖然詳細的部分看不懂,不過看它輸出的圖就大概可以知道,用這個方法可以找出圖片上線條的部分(輪廓),外型就可以很清楚的分辨出來。希望老師能說明一下fspecial()這個函數和這一小節的影像處理方式

--------------------------------------------------
  以上是上個星期的進度,接下來由於篇幅的關係(盡量不要太多,已經快1500字了= =),我就不一一打出課本上的內容了。


  5.5這邊的高斯濾波器(Gaussian Filters)感覺很難,因為這邊的程式碼有用到fspecial()這個函數,但是我還不是很懂這個函數到底是在做什麼用的,而且我也忘記高斯的運算方式了,所以就不是很懂這一寫小節,是用什麼樣的方式來做運算的。我有看到最後那個用高斯濾波器處理後的圖片,感覺跟5.3那邊的結果很像,影像都會變成模模糊糊的樣子。只好等下星期老師來解釋囉......

  5.6這一小節是在用Filter來做影像銳利化的處理,在p.106頁那邊的圖,老師有預告說下星期會講解,我自己看了一下,感覺不是不會很懂,而是非常的不懂。因為那個圖根本就沒有橫軸和縱軸的單位和說明,我完全看不懂它想表示的意思是什麼呢。也只好期待下星期老師的說明說哩 !

  5.7標題就和前面很不一樣,這邊用到的方法是非線性濾波處理。在這邊又用到了另一個函數nlfilter(),我不知道為什麼這邊用了一個最大和最小的函數,然後用filter會將影像處理成p.111那2張圖的樣子......

  5.8這一小節我覺得比較有趣,它教我們用Matlab來做區域性的影像處理。之前教過的影像處理都是一整張圖的,但是在這邊看到它的範例圖片時,就會覺得很特別,它可以只針對一張圖片上的一小個區域來做影像處理,期它的部分還是維持原本的樣子。

  我發現我看原文課本的時候,常常會誤會書上的一些意思,還有漏掉一些蠻重要的東西。像是第13週的時候,老師講解很久的convolution我就沒有注意到,好像我自己會不知不覺的去忽略掉一些很難的東西。看來在英文閱讀能力方面還需要大大的加強了,在閱讀原文書時的集中力降低速度真的是比中文書還要快很多呢......

1 則留言:

  1. 線性是一個很有趣的詞, 我們應該在很多地方都會遇到這個詞。最最明顯的就是線性代數這門課了,你們還記得在這門課中,線性是如何定義的嗎?

    回覆刪除