在IA4的文章裡我們提到了傳輸一張binary image後,有可能會受到干擾導致圖片被污染,裡面討論了復原的方法,像是一次傳輸多張照片,最後用投票的方式來決定該像素的顏色應該取\(+1\)還是\(-1\),因為如果噪聲是隨機的,那麼不太可能同個位置超過一半的像素都是錯的。但這個方法有個缺點,就是必須一次傳輸多張相同的圖片才能達到良好的修復效果,可是這非常地消耗數據傳輸量以及講究頻寬的大小,這對應到成本的增加,尤其是當我們要傳輸高傳真的訊號時。那麼是不是有什麼方法,可以單從一張收到的影像中去回推原始未受到污染的圖片,我想要用兩篇文章來探討,我採用由簡入繁的方式,第一篇這裡我們先處理binary image的情況,在下篇我們再進一步處理彩色的照片。 一、從圖模型檢視雜訊圖像 在IA7裡我們談到了修復刮花圖像的技術,出於圖像毀損的狀態,所以我們當初設定是刮花處與真實圖像之間並無關聯,但對於雜訊圖像則情況不同,因為這些在圖像上的雜訊,可能是原來的像素加上一個擾動值,假設真實的像素值是\(x\),那麼加上噪聲後新的像素\(y\)就可以表示成 \[ y = x + n\tag{1} \] 其中\(n\)表示噪聲。這種加上擾動值\(n\)最常假設的生成方式便是均值為0的高斯噪聲。 從Eq. (1)中我們假設了一個簡單的關係式。由於一整張圖片是由非常多的像素所構成一個W×H的網格,或稱陣列,其中W和H分別表示圖像寬和高所對應的像素數量,我們可以用 圖模型 (graphical model, GM) 來對應真實無雜訊的圖像\(\mathbf{x}\)和觀測到存在噪聲的圖像\(\mathbf{y}\)之間的關係,見圖1,粗體字表示圖像是一個陣列而非純量。 圖1. 利用圖模型來推論真實圖像和雜訊圖像之間的關係 我們認為真實圖像\(\mathbf{x}\)的每一個像素 (圖1中橘色實心的節點) 和周遭的像素都有關連,所以我們用紅色的實現將之連起,例如一張照片中一張人臉上任一處肉色的圖像一定和周圍皮膚的顏色有關聯,而不會和遙遠處天空的藍色有關聯。但我們觀測到的圖像\(\mathbf{y}\)已經被某些未知雜訊的生成機制所破壞,所以原則上這些像素點之間並不存在關聯,就如同圖1中藍色的空心節點,它們構成我們所見的圖案,彼此間沒有線將它們串連起來。而這個...
留言
張貼留言