c语言实现hdr图像合成,怎样完成一张HDR照片的拍摄与合成
怎樣完成一張HDR照片的拍攝與合成
教程細節:
程序:Photomatix Pro,Photoshop
難度:中等
完成時間:1到2小時不等
最終效果圖
1.理解高動態范圍照片(HDR Photography)
當我們提到動態范圍時會提到極限的不同。這也關系到攝影與曝光中高光部分與暗調部分的區別。
動態范圍用一種比例表示。人眼大概可以看到10000:1的范圍。與之相比,一臺優秀的數碼相機也只能達到1000:1而已。所以,我們可以發現人眼與相機相比有更大的亮度范圍。更震撼的是一個場景既有陽光照射的明亮部分,又有暗如房燈照射的暗調部分,其動態范圍比達到了100000:1。
所以,在傳統的攝影中,我們只能妥協,我們可以選擇高光部分正確曝光,但陰影部分就會變得黑暗并且會產生噪點。亦或者,我們使暗調部分正確曝光而高光部分過曝并且丟失細節。
我們可以使用中灰漸變鏡,它可以使一半圖像統一曝光,而另一部分則根據漸變鏡的不同減少2到3檔的曝光。但是這只適用于有平直的地平線的場景。如果你拍攝的是不規則的山巒或者一個開放的門口呢?這就不能通過一個標準的圖像濾鏡完成了。
但是如果我們可以使一張照片的每一個區域都“正確曝光”我們不就可以拓展相機的動態范圍至與人眼相當甚至超越人眼了嗎。這真是HDR。
在我們開始前,讓我們先解決一個人們一直以來的困惑。我們準備用HDR攝影,但是我們的最終結果是要得到一張低動態范圍的照片(現在的HDR照片也確實是低動態范圍照片)。因為到目前為止還沒有打印機或電腦顯示器可以處理真正的HDR圖像。
2.我怎么拍一張HDR照片?
一張高動態范圍的圖像是由3到7張同樣場景、不同曝光的照片合成的。每一個亮度級別對應一張完美曝光的照片。怎樣調整曝光才能符合這一嚴格的要求呢。如果我們保持快門速度不變而調整光圈,那么會得到我們并不想要的不同景深的照片。我們希望這些照片看起來一樣,區別僅僅是曝光而已。因此我們可以調整ISO,但是高ISO會產生更多噪點,而我們想得到一張噪點盡可能少的圖像。鑒于HDR是一種加色后期處理,任何噪點都會被成倍放大。所以我們只剩下一個可選項快門速度。
開始設置拍攝HDR照片,首先將你的相機固定在一個可靠的三腳架之上。這回保證一組照片嚴格一致。將ISO設置到最低,同時將光圈調到f16。
對,你可以使用更打的光圈,但是在想在我的相片中盡可能保留細節,追求極致的細節也正是拍攝HDR圖像的原因。我們希望場景中的細節盡可能豐富,這也是我為什么建議將光圈調到f16。當然你也并不一定要這樣。這也是HDR中多種藝術選擇之一而已。
大范圍的調整快門速度,我們有兩種選擇。我們可以將相機調到快門優先模式下,同時使用大部分相機都具備的功能:自動包圍曝光。大多數佳能相機提供1/3檔的選擇(但是2 EV為最高限制)。而大部分尼康相機提供更大范圍的選擇。
我強烈建議全程手動控制。這樣可以更快的進行處理,而不必進入菜單進行各種設置,而且我們可以有更多種選擇,包括曝光量,多大的間隔。當然按照你自己的意思來就可以了。
3.合成HDR,你需要什么類型的片子?
一張HDR圖像是一張32位圖像。這意味著它可以提供更多不同的色調與亮度。為了生成一張最好的圖像我們需要盡可能多的信息。鑒于沒有相機可以以32為模式拍攝照片我們只能選擇剩余的可選項。這就是支持有限的16位的RAW格式或Tiff格式,它們可以提供給我們64000種不同的灰階信息。
我們可以使用JPEG格式嗎?可以,但是因為JPEG只是8位的,僅可以提供255種不同的灰階信息。只能粗糙使用,絕不是一個最佳選擇。
4.我需要多少曝光量,多大的曝光差?
在大多數情況下,最起碼需要三張不同曝光的照片,同時2 EV的曝光差足夠使用了。如果場景中有太陽或者明亮的陽光就需要使用更多了。我喜歡至少拍攝5張,同時以1 EV區分,但是你可能會,也可能不會得到更真實的圖像。
不同的曝光補償效果圖
現在我們設置好了設備并且準備獲得3張照片。第一張應該是測光表顯示正好位于中間的照片,然后第二張,調快快門速度直到測光表顯示-2,然后我們需要得到最后一張,這時測光表應該顯示+2。如果你使用“自動包圍曝光”,那么這些就會自動完成。
在我自己的拍攝中,我以測光正好為第一張,然后是-1檔一張,-2檔一張,接著(如果照片中有太陽的話),我會再拍一張-4檔的照片,因為我想確保最后的相片中沒有高光溢出。但是很不幸測光表中沒有-4檔,所以我需要自己搞定。慶幸的是用快門速度可以輕松的計算出阿里,與光圈的對數關系相反,如果我的-2 EV是1/50,我把它乘以2(為一檔),然后再乘以2(再減一檔),然后我就得到了1/200的快門速度。然后我再拍一張+1 EV的照片和+2 EV的照片。基本上你很少會遇到超過2 EV的情況,通常情況下+2已經足以將陰影展示得很好了。
5.將它放到電腦上!
你現在已經有了一組照片。如果你發現你并不需要這么多,你可以只使用0,-2與+2來合成HDR圖像。
現在是時候讓電腦發揮作用了,將照片傳輸到電腦上,同時準備好開始合成HDR照片。
我會向你展示兩種方法,一種是使用Photomatix,HDRsoft發布的一款軟件。相對來說并不算貴,而且它在行業中很流行。但是如果你不想花額外的錢而只想使用你已經擁有的類似軟件,我會向你展示如何使用Photoshop CS2以及其后續版本提供功能來合成。
6.在Photomatix中合成你的HDR圖像
軟件會詢問想如何合成你的HDR圖像
打開Photomatix你會看到一個快捷工具欄。點擊“Generate HDR Image(合成HDR圖像)”。然后會打開一個“Select Images(選擇圖像)”窗口,然后你可以瀏覽文件位置并把你的照片添加到其中。
接著會打開一個新的對話框,軟件會詢問想如何合成你的HDR圖像
步驟一
第一部分是對齊多張圖片。大多數時候最好選擇“Match Features(匹配特征)”。這樣會使多張照片的特征統一并且避免了物體邊緣的偏移。另一個選項用來匹配水平線與地平線的偏移。只在“Match Features”無效的情況下嘗試該選項。
接下來的兩塊,“Correct Chromatic Aberrations(糾正顏色偏差)”與“Reduce Noise(減少噪點)”我并不推薦使用。如果照片需要這些,我會把RAW圖像轉為16位TIFF圖像后進行糾正,這樣會更好。
接下來的部分是“Attempt to Reduce Ghosting Artifacts(嘗試減少人造鬼影)”,如果你的圖像中有移動的物體那么這個選項就很有用了,比如說搖擺的樹木,人或者是海浪。如果你的照片中沒有移動的物體,最好還是不要勾選此選項以避免獲得一張過分銳化的圖像。
剩下的選項相當直觀而且基本不需要你關心。我選擇Adobe RGB作為色彩空間,因為我需要更大的空間,當然選擇sRGB也可以。
填寫選項
然后點擊面板上的“OK”。
步驟2
Photomatix現在會把你的RAW文件處理為真正的32位HDR圖像。根據你的電腦配置不同耗費的時間不等。
Photomatix把RAW文件處理為真正的32位HDR圖像
結果就是你的第一張HDR圖像,看起來相當糟糕是吧?這是因為你的顯示器并不能顯示32位的HDR圖像。我們需要進一步使用“Tone Map(色調映射)”來將照片轉換為可以顯示并且打印的低動態范圍圖像。
步驟3
將你的HDR圖像保存為Radiance RGBE格式的HDR圖像或者是Open EXR格式的HDR圖像。它們之間差別很小,所以你看著辦吧。
點擊“Tone Mapping(色調映射)”
下一步,點擊“Tone Mapping(色調映射)”,然后我們調整圖像直到符合我們預期的效果。
Photomatix中的“Tone Mapping”界面有些像Lightroom,所有你需要用到的功能都可以從縱向面板中找到。這就是我們開始的地方,除了一件事。當你打卡色調映射時Photomatix可以記住并顯示你上次用過的設置。為了更好的開始,轉到面板底部,將Presets選項勾選為“Default”即可。
步驟4
在面板的頂部你可以看到兩個選項板。一個是“Detail Enhancer(細節增強)”與“Tone Compressor(色調壓縮)”。“Detail Enhancer”就是提供細節選項供你調節HDR圖像或淡雅或濃艷。另一個“Tone Compressor”,會使你的圖像看起來更加真實。在某些情況下你可能會用到它,但是在本教程中不會。
在面板上方我們可以看到Strength(強度),Color Saturation(色彩飽和度),Luminosity(明亮度),Light Smoothing(光線平滑)與Microcontrast(對比度微調)。你可以直接拖動滑塊查看效果來了解其作用。
我們首先要做的是調節Strength與Light Smoothing。我通常會將Strength滑到100(但是很少保持在那個位置),然后拖動Light Smoothing調整到我想要的效果:總體上光線偏黑,沒有光暈(物體周圍不自然的光線)或者是鬼影(活動物體的殘留影像),整張圖像亮度正確。如果你不能找到你想要的組合,試著將Light Smoothing固定在一個你覺得最佳的位置然后減小Strength知道你發現一個你喜歡的組合。
高Light Smoothing通常更加真實,而低Light Smoothing反之。這里沒有正確或錯誤一說。完全取決于你想要一張什么樣的照片。如果有太多的光暈產生多半是因為你使用的Ligh Smoothing對應的Strength太強。如果你的圖像白色泛灰或藍色天空,多半是因為你的Light Smoothing太強所致。來回調節他們知道你取得你想要的平衡。這時你的圖像可能看起來相當相當平淡,這一步你不需要突出什么,下一步會的。
接下來再看Color Saturation
接下來我們再看Color Saturation,這個根據個人品味不同而各異,但是我將我的調節到了70。你可以調節Luminosity來修改整體的亮度。Microcontrast可以調節物體周邊的光暈以更加突出的顯示。
步驟5
現在我們基本上得到了我們想要的圖像,現在應該給圖像做一些潤色。
鑒于HDR圖像普遍亮度較高,它們不大會有太高的對比度。這是很自然的,但是為了給以圖像沖擊力我會給圖像添加對比度。接下來涉及到三個控制選項:“White Point(白點)”,“Black Point(黑點)”“Gamma(伽馬)”。White Points控制高光,Black Point控制陰影,而Gamma控制中間調。我傾向于從調節Gamma開始,如果需要再微調另外的選項。我會將Gamma向左拖動以添加中間調的對比度。
現在你基本上已經完成了將圖像色調映射為低動態范圍圖像了。再檢查一遍,如果發現瑕疵再通過剩余選項進行調節。
提醒:如果白平衡不當你可以調整整體色溫。你可以選擇性的單獨增加或減少高光或者陰影。
接下來的部分你可以繼續調節其它選項,如果空中出現大量噪點你可以通過調節Micro-Smoothing。如果你的高光或陰影需要一些調整,你可以局部地調整到更加平滑。一旦你得到了你想要的圖像,那你就接近完成了。但是首先,如果你想保存當前的設置以用于另外的照片,點擊Preset然后保存你的設置。
步驟6
點擊“Process Image(生成圖像)”按鈕
現在我們做一些后續工作。點擊“Process Image(生成圖像)”按鈕,然后它會將你的設置應用到你的HDR圖像。處理完成后,你可以保存你的圖像。我建議你保留所有信息,所以把它保存為16位的TIFF文。Photomatix允許你直接在保存面板處直接將保存后的圖像發送到Photoshop來做最后的微調。我通常做一些整體設定,然后根據需要進行減噪或銳化。
最終效果圖
全部完成后你就可以以TIFF格式或JPG格式重新保存即可。
8.Photoshop CS2,CS3或CS4中合成HDR圖像
在Photoshop中打開圖像并把他們合并成為HDR圖像,執行File>Automate>Merge to HDR(文件>自動>合并到HDR)。
在Photoshop中打開圖像并把他們合并成為HDR圖像
我們選擇用RAW或16位的Tiff文件來合成HDR。勾選對話框中的“Attempt Automatically Align Source Images(嘗試自動對齊源圖像)”。注意一些高像素相機產生的圖像可能會使系統吃不消,如果收到警告,不要勾選對齊選項再試一遍。
選擇“OK(確定)”后,Photoshop就開始工作了。
步驟1
這時會彈出一個新的對話框。如果我們需要保存32位的HDR圖像,點擊確定然后保存為Radiance HDR文件即可。我們為了直接進行色調映射我們選擇“Bit Depth(位深度)”為“16 Bit/Channel(16 位/通道)”,然后點擊確定即可。
Photoshop開始合成HDR圖像,完成后會彈出一個新的對話框“HDR conversion(HDR轉換)”。在下拉菜單中選擇“Local Adaptation(局部適應)",然后點擊向下的箭頭,展開“Toning Curve and Histogram(色調曲線和直方圖)”。
調節色調曲線和直方圖
這里就是Photoshop與Photomatix不同的地方。在Photomatix中,通過“Tone Mapping”可以搞定一切。而在Photoshop中色調映射的作用有限但你也可以靈活應用你在PS中的其它常用工具來進行調整,比如:色階,曲線,色相與飽和度等。
你現在可以通過控制“Radius(半徑)”“Threshold(閾值)”與“Toning Curve(色調曲線)”來進行調整,通常一個很好的開始是半徑設為150,閾值設為1.50。反復調整直到你的圖像色調比較平衡為止。調整后耐心等待圖像重新刷新以檢查你的調整是否過度。這時如果看到圖像平淡且沒有活力,不必擔心,我們會在接下來的步驟中進一步調整。
步驟2
當你的圖像色調比較平衡后,點擊確定后我們便可以給照片找回活力并適當添加一些對比度。
從色階開始調整對比度
我一般會從色階開始調整,但是你也可以選擇從曲線開始。這張圖像中我選擇將高光滑塊與暗調滑塊都向中間滑動。這樣你就會看到圖像恢復活力了。
步驟3
到這一步我會根據自己的喜好調整一下飽和度,然后根據需求進行銳化或減噪。我也會使用加深或減淡工具來處理一些容易忽視的細節部分。
一切搞定后,根據自己的選擇保存文件即可。不過需要注意的是如果要保存為JPG格式請將16位模式改為8位模式(Imgage>Mode>8-Bit,圖像>模式>8位)。
這就是最終效果圖
9.最后的一點思考
Photomatix與Photoshop都是合成HDR的好工具。Photomatix更加專注于生成高清圖像并且可以生成更多種不同的效果,從平淡到濃艷。Photoshop雖然有些局限性但也依然夠用,即使不能生成濃艷的HDR但在某些情況下反而是一件好事!Photomatix更加輕量并且較少占用系統資源,同時速度也優于Photoshop,但最終還是取決于你的機器配置與內存大小。
Mild(溫和版也稱為真實版HDR風格)
我基本上已經將拍攝并合成HDR的基本內容講完了,但是還有許多東西值得你去學習與探索……如果你愿意的話。對于你自己的藝術,自己的視覺感受來說,沒有什么對錯之分。享受其中的樂趣吧。
Wild(狂野版也稱為藝術版HDR風格)
對我來說這其中的樂趣就是在沒有最終完成HDR的合成之前我也無法預料我將得到一張怎樣的圖像。即使我腦海中已經有了一些想法但也無法馬上從LCD中看到。我猜這有點像你在暗房中沖洗照片,在沒有沖洗完成之前你是無法知道你到底拍到了什么。我希望你像我一樣能享受其中的樂趣。
總結
以上是生活随笔為你收集整理的c语言实现hdr图像合成,怎样完成一张HDR照片的拍摄与合成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android MediaMuxer合成
- 下一篇: iOS 图片合成(一)