繼續(xù)討論Photoshop(PS)“圖像(Image)>調(diào)整(Adjust)”菜單的功能。你可以使用《圖像的簡單玩法》中的演示程序和本文提供的公式來測試一些圖片。
關鍵詞:HSL;灰度;黑白照片
Photoshop菜單:圖像>調(diào)整>去色(Shift+Ctrl+U)
公式:CNew = (Max(R,G,B) + Min(R,G,B)) / 2
c=(maxRGB+minRGB)/2 |
去色是Photoshop中把彩色照片變?yōu)楹诎渍掌詈唵蔚姆椒?,按Shift+Ctrl+U鍵即可完成。
去色就是把圖片顏色的色相和飽和度信息全部去掉,只保留亮度信息。去色使用了HSL(H-色相;S-飽和度;L-亮度)中的L算法,因此效果和執(zhí)行圖像>調(diào)整>色相/飽和度(Ctrl+U)后,飽和度值調(diào)到-100時是一樣的。
去色和使用圖像>模式>灰度的效果是不同的。很多人認為灰度模式使用的是Photoshop中的標準亮度公式Gray=0.3*R+0.59*G+0.11*B,但其實它使用的是Lab的算法,和Lab模式a、b的色度信息都為0時的效果是相同的。
RGB轉(zhuǎn)灰度有很多種算法,后面我會單獨寫一篇文章來討論這些算法。(《Photoshop彩圖變黑白的方法總結(jié)》)
關鍵詞:臨界值;圖像二值化;灰度分劃
Photoshop菜單:圖像>調(diào)整>閾值
Photoshop標準亮度公式:Gray = 0.3*R + 0.59*G + 0.11*B
閾值的公式:
if Gray > Threshold then CNew = White
if Gray <= Threshold then CNew = Black
t=85 gray=cint(0.3*r+0.59*g+0.11*b) if gray >= t then c = 255 if gray < t then c = 0 |
閾值命令將灰度或彩色圖像轉(zhuǎn)換為高對比度的黑白二值圖像,所有比閾值亮的像素轉(zhuǎn)換為白色,而所有比閾值暗的像素轉(zhuǎn)換為黑色。
閾值對話框中的直方圖和亮度直方圖是一樣的,Photoshop的亮度直方圖使用的是Gray=0.3*R+0.59*G+0.11*B這個公式。
我們建立一個黑白的漸變條,然后執(zhí)行閾值命令,就可以很容易看出閾值的運作原理了。
閾(音yù),指門檻,泛指界限(limit)或范圍(range)。
閾值(Threshold)也稱臨界值,指事物開始或改變的起點,或指一個正好能產(chǎn)生特定效應的界限。例如100分的試題,考60分以上才算及格,那么“60”就是分數(shù)的閾值;如果你最多只能考59分,那么“59”就是你的閾值了。
閾值的同義詞:門檻、開始、開端、極限。
看到不少同學把“閾值”寫成了“閥值”,甚至在不少論文中也看到閥值一詞。在百度搜了一下發(fā)現(xiàn)搞錯的人還真不少呢,閥值總共110,000篇。還聽到有人念“或值”。如果搞錯的人太多了,錯誤的可能也會變正確,中文里有很多詞匯就上建立在誤解之上的,新的詞典里也許會加入“閥值”一詞也說不定呢。不過我覺得做學術論文的,最好還是嚴肅一點,老老實實地寫“閾值”吧,不要玩繁體字的花樣。
Photoshop菜單:圖像>調(diào)整>色調(diào)分離
色調(diào)分離把圖片按指定的色階進行分離,生成特殊效果。
色調(diào)分離相當于多個級別的閾值。再以考試為例,0~100分的試題,我們可以跟據(jù)成績來把學生分成幾類:0~19分的是沒救了的;20~49分的是很差的;50~69分的是在及格邊緣蕩秋千的;70~89分是良好的;90~100分是優(yōu)秀的。色調(diào)分離也是這樣的原理。
先來看看色階level=2時的效果:
if (c>=128) then c=255 if (c<128) then c=0 |
level=2時,其實就是把RGB通道分別做閾值處理,閾值t=128,所得的圖片最多只有8種顏色:黑色(0,0,0)、白色(255,255,255)、紅色(255,0,0)、青色(0,255,255)、綠色(0,255,0)、洋紅色(255,0,255)、藍色(0,0,255)、黃色(255,255,0)。
色階(level)值的范圍是2~256,Photoshop會自動把數(shù)值約束在這個范圍之內(nèi)。色調(diào)分離有多種算法,我們先來看一下Photoshop的算法,下面是level=4時的代碼:
level=4 levelSize =256/level '求平均每個色階的顏色數(shù)量 levelValue=255/(level-1) '求第二色階的顏色值 levelC=int(c/levelSize) '求當前的顏色在第幾色階 c=int(levelValue*levelC) '求當前色階的顏色值 |
當level=4時,Photoshop把0~255之間的這256種顏色值平均分成了4個色階,每個色階的顏色數(shù)量是levelSize=256/level=256/4=64。第一色階(0~63)的顏色值是0,第二色階(64~127)的顏色值是levelValue=255/(level-1)=255/3=85,第三色階是levelValue*2=85*2=170,第四色階是levelValue*3=85*3=255。
另一算法,取每個色階的中間值:
level=4 levelSize =256/level '求平均每個色階的顏色數(shù)量 levelValue=levelSize/2 '求第一色階的顏色值 levelC=int(c/levelSize) '求當前的顏色在第幾色階 c=int(levelSize*levelC+levelValue) '求當前色階的顏色值 |
還有一些算法,效果不太好,這里就不列舉了。
轉(zhuǎn)黑白方法細細辨識 http://www.52hutu.com/library/3/grayscale/grayscale.htm
AxiomX - Posterize Algorithm http://www.axiomx.com/posterize.htm