影像合成術

 

為什麼要做影像合成?

要成為一個好廚師, 不能只知道菜要怎麼做, 還要知道為什麼要這麼做. 影像合成的目的可以有很多, 譬如馬賽克照片的拼貼, 或者透過影像重疊來增進訊噪比. 在此, 我針對後者以實例做說明. 下圖為一張短時間曝光的照片, 照片中有很明顯的雜訊, 這樣的照片即使硬是去強化它, 最後得到的也只是強化後的雜訊而已.

不管使用的是底片還是CCD, 解決這樣的雜訊問題最根本的方法就是使用長時間曝光, 這可以是一張長時間曝光的照片, 或很多張短時間曝光的照片重疊而成. 在每張短時間曝光的照片中, 雖然雜訊都很強, 但因為雜訊在每張照片中都是獨立而不相關的, 把這些照片疊加起來後, 雜訊中的正負起伏會逐漸彼此抵消, 而成為一張雜訊較低的照片. 下圖是如上的短時間曝光照片, 兩張, 四張, 八張, 與十六張重疊後得到的結果:

與最上方單一的照片相比, 各位可以看出, 雜訊的成份越來越低, 而暗淡的天體與星點則開始浮現出來. 理論上, 重疊N張照片後, 雜訊便會被壓抑成原來的根號N分之一, 所以重疊越多張, 效果越好. 事實上, 各位可以看到, 與單一照片相比, 即使只疊兩張, 效果已非常明顯的. 要強調的是, 要做影像重疊, 一定要用多張不同的曝光來疊才有用, 雜訊才可以抵消, 如果只是單一張照片, 那再怎麼疊, 雜訊都只會自我複製, 而不會有抵消的效果出現. 影像處理並不是魔術, 要得到好的照片, 長時間的曝光仍是必要的, 不論你是做單一照片的長時間曝光, 還是把這長時間切成很多短的. 這一點各位要銘記於心, 天下沒有白吃的午餐, 天文攝影更沒有捷徑.

 

影像合成法

以下我介紹如何在PhotoShop中重疊不同的照片, 以以下兩照片為例:

兩張照片有不同的旋轉角度與比例, 這是我們在重疊前要先調整的. 以下, 我稱左方影像為影像1, 右方為影像2.

1. 影像角度與尺度的量測

在兩張照片中, 選出兩對同樣的星點, 以量測工具測量星點間的角度與距離, 選取的星點對最好能跨越照片50%以上的距離, 同時星點不宜太大, 以便我們判明星點中心, 如下圖所示.

使用量測工具時, 可以透過放大鏡來精確定位量測的起點與終點. 量測結果會顯示在資訊視窗 (Info) 中, 點選Windows--Show Info可呼叫出該視窗, 其長相如下:

其中, 右上角的A與D便是量到兩星間的角度(A)與距離(D). 角度的部份, 是以量測起點為中心, 從正X軸方向 (也就是右方) 反時針旋轉的角度.

2. 影像的旋轉與縮放

上面兩張照片的測量結果, 影像1是 A=27.2, D=1852.03, 影像2是 A=48.2, D=2179.87. 如果我們要讓影像配1合影像2的話, 我們知道, 影像1需要逆時針旋轉21度, 同時尺寸要放大為1.1770倍. 旋轉的部份需透過Image--Rotate Canvas來進行, 影像大小的改變則透過Image--Image Size來進行, 完成後的影像如下. 此時如果你再量取同樣兩顆星的距離與角度, 理應得到與影像2一樣的結果.

3. 影像的重合

我們可以透過圖層的方式將旋轉與縮放後的影像1與影像2重疊. 我們選取旋轉後的影像1中的非空白區域, 以Ctl-C複製後, 以Ctl-V貼到影像2上, 此後影像1可以關掉了. 貼上後的影像如下圖左, 此時兩張影像尚未正確重合.

要正確重合影像, 首先我們在圖層視窗中 (如上圖中), 將上方圖層 (也就是我們剛貼上去的影像) 的不透明度 (opacity) 設為小於100%, 譬如50%, 此時看到的會如上圖右. 再用移動工具移動上方圖層, 配合放大鏡, 讓兩張影像中的星點精確重合, 完成後將上方圖層的不透明度改回100%, 最後結果如下:

4. 影像間界平順化

此時我們會看到, 上下兩個圖層因為色調與反差並不一樣, 邊界非常明顯. 第一件我們要做的事是, 讓兩幅影像有盡量相近的色調與反差, 這可以透過小心改變各圖層的Curves來達到, 假設各位能作到這一點. 但這往往仍不夠, 基於種種原因, 譬如周邊減光, 我們很難讓兩張照片有完全一致的色調與反差, 有可能畫面主體的色調一致了, 週邊卻否. 這將在照片與照片交界處仍留下一些痕跡, 譬如下圖的局部放大.

我們可以在這樣不相稱的畫面邊界做出淡入效果, 讓兩張照片的交界看起來天衣無縫. 方法是選取上方圖層, 以適當的選取工具在上方圖層的週邊選取一帶狀區域, 如下圖左. (為了讓各位看清楚這個處理的效果, 我將下方圖層暫設為透明, 所以各位只看得到上方圖層.) 以滑鼠右鑑在選取區上點一下, 選擇Feather, 這可以柔化選取邊界, Feather radius則可自由嘗試.

柔化選取邊界後, 按delete鍵將選取區刪除, 此時各位看到的應是如上圖右的結果. 此時便可取消選取區, 將下方圖層恢復後, 看到的會如下圖, 邊界消失了.

5. 完成

將所有邊界都做如上處理後, 便可將兩個圖層合而為一. 如果兩張影像的品質是相近的, 也就是雜訊都差不多強, 那麼我們便希望最終影像中, 來自兩幅影像的貢獻各半. 要做到這一點, 可以在圖層視窗中, 將上方圖層的不透明度設為50%, blending選單選normal, 然後點選右上角的小三角型, 選取Flatten Image. 最終結果如下圖.

各位會發現, 疊合後的影像中, 暗部品質變好了, 影像更經得起強力的處理, 疊越多張, 這種效果越明顯.

 

甜點

1. 現在已有很多影像處理軟體可做自動化的影像疊合, 包括影像的縮放, 旋轉, 甚至自動的變形修正, 這是PhotoShop做不到的. 以上介紹的PhotoShop法其實相比起來很原始且費時, 但很多時候我們還是發現它派得上用場, 尤其是圖層處理的觀念上, 以及進階的馬塞克合成, PhotoShop都仍不可或缺.

2. 上面提到, 如果兩張照片的影像品質相近, 則我們設上方圖層的opacity為50%, 在normal blending下, 下方圖層也將貢獻50%於最終影像. 但若有一幅影像品質較佳, 我們便希望該影像佔有較多的比重, 譬如若上方圖層品質較佳, 視其程度, 我們可以將上方圖層的opacity設為介於50%到100%之間, 反之若下方品值較佳, 上方圖層的opacity應介於0%到50%之間.

若重疊的影像在兩幅以上(假設品質都相近), 一個方法是兩兩重疊之後, 再兩兩重疊, 過程中每一幅影像所佔比重都是50%. 另一個方法是一次將所有影像都以圖層方式疊在一起, 在normal blending之下, opacity的設定自最下方圖層起應是: 100%, 50%, 33%, 25%, 20%, 17%, 14%, 12.5%....依此類推. 如此, 每幅影像在最終合成影像中才會佔有同樣的比重, 合成的影像會具有最佳品質.