導(dǎo)讀Adobe Photoshop,簡(jiǎn)稱“PS”,是由Adobe Systems開發(fā)和發(fā)行的圖像處理軟件。Photoshop主要處理以像素所構(gòu)成的數(shù)字圖像。使用其眾多的編修與繪圖工具,可以有效地進(jìn)行圖片... Adobe Photoshop,簡(jiǎn)稱“PS”,是由Adobe Systems開發(fā)和發(fā)行的圖像處理軟件。Photoshop主要處理以像素所構(gòu)成的數(shù)字圖像。使用其眾多的編修與繪圖工具,可以有效地進(jìn)行圖片編輯工作。ps有很多功能,在圖像、圖形、文字、視頻、出版等各方面都有涉及。 最近有感于部分網(wǎng)友對(duì)高斯模糊濾鏡的研究,現(xiàn)總結(jié)如下。高斯模糊是數(shù)字圖像模板處理法的一種。其模板是根據(jù)二維正態(tài)分布(高斯分布)函數(shù)計(jì)算出來的。 正態(tài)分布最早由A.棣莫弗在求二項(xiàng)分布的漸近公式中得到。C.F.高斯在研究測(cè)量誤差時(shí)從另一個(gè)角度導(dǎo)出了它。P.S.拉普拉斯和高斯研究了它的性質(zhì)。故名高斯模糊。 一維正態(tài)分布的函數(shù)定義: 型隨機(jī)變量的分布,第一參數(shù)μ是遵從正態(tài)分布的隨機(jī)變量的均值,第二個(gè)參數(shù)σ2是此隨機(jī)變量的方差,所以正態(tài)分布記作N(μ,σ2 )。 遵從正態(tài)分布的隨機(jī)變量的概率規(guī)律為取 μ鄰近的值的概率大 ,而取離μ越遠(yuǎn)的值的概率越小;σ越小,分布越集中在μ附近,σ越大,分布越分散。正態(tài)分布的密度函數(shù)的特點(diǎn)是:關(guān)于μ對(duì)稱,在μ處達(dá)到最大值,在正(負(fù))無窮遠(yuǎn)處取值為0,在μ±σ處有拐點(diǎn)。它的形狀是中間高兩邊低 ,圖像是一條位于x軸上方的鐘形曲線。當(dāng)μ=0,σ2 =1時(shí),稱為標(biāo)準(zhǔn)正態(tài)分布,記為N(0,1)。 兩個(gè)常數(shù)的意義:μ-期望,σ^2 方差。 下面我們解決第一個(gè)疑問:高斯模糊濾鏡中的半徑是什么?答案是高斯半徑就是公式中的σ。 高斯曲線的圖形和半徑的含義如下圖(來自Adobe SDK中技術(shù)支持專家的文檔)所示:
可見高斯半徑(σ)對(duì)曲線形狀的影響,σ越小,曲線越高越尖,σ越大,曲線越低越平緩。對(duì)二維圖像來說,是一個(gè)鐘形曲面,高斯半徑越小,曲面越高越尖越陡峭;高斯半徑越大,曲面越低越平緩。因此高斯半徑越小,則模糊越小,高斯半徑越大,則模糊程度越大。我們將看到ps對(duì)高斯半徑的范圍定義是【0.1~250】。當(dāng)半徑為0.1時(shí),高斯模板在計(jì)算后只有中間像素為1,其他像素均=0(實(shí)際上只是趨近0),即圖像不會(huì)有變化。 第二個(gè)疑問,高斯模板大小和高斯半徑的關(guān)系?這是一個(gè)一直困擾我們的誤解。因?yàn)槲覀兊乃季S進(jìn)入了物理實(shí)現(xiàn)的誤區(qū)。在物理實(shí)現(xiàn)中,高斯模板有界,從而使我們忽略了這個(gè)問題的真正答案:高斯模板在邏輯上是無邊界的。也就是說高斯模板本質(zhì)上是邏輯上無窮拓展曲面的一個(gè)近似。因此,模板大小我們應(yīng)該認(rèn)為它是無窮大的。只不過在計(jì)算的時(shí)候,因?yàn)樵谶h(yuǎn)處趨近0,因此在某個(gè)閾值之下我們不再考慮這些值,這個(gè)閾值就是模板邊界。 下面,二維高斯曲面的公式(x,y代表像素的模板坐標(biāo),模板中心位置為原點(diǎn)):
根據(jù)這個(gè)公式,我們可以計(jì)算出不同半徑下的高斯模板,實(shí)際上模板是無窮大的,只是在中心較遠(yuǎn)處,他們會(huì)趨近0.例如,我們計(jì)算出r=0.7時(shí)的一個(gè)歸一化后的高斯模板: 高斯模板(guass radius=0.700000)
在網(wǎng)絡(luò)上眾所周知流傳的高斯3*3模板實(shí)際上是對(duì)高斯曲面的一個(gè)整數(shù)除法形式的近似: 1 2 1 2 4 2 /16 1 2 1 實(shí)際驗(yàn)證,我們發(fā)現(xiàn)這個(gè)3*3模板實(shí)際上是對(duì)高斯半徑約為0.849時(shí)的一個(gè)近似,當(dāng)r=0.849時(shí),其3*3歸一模板為(在MATLAB中,輸入h=fspecial('gaussian', 3, 0.849);即可得到這個(gè)模板): (guass radius=0.849000) 然后我們可以用Matlab中的imfilter來對(duì)圖像進(jìn)行高斯模糊的處理: img = imread('c:\demo.bmp'); 效果如下: 我們可以在Matlab中用如下語句繪制高斯曲面: 繪制高斯曲面的Matlab代碼 效果如下圖: 在數(shù)字信號(hào)處理中,高斯模糊算法是一種濾波器,它的時(shí)域和頻域曲線如下所示: 從頻域曲線看出,高斯模糊本質(zhì)上一種低通濾波器。體現(xiàn)在圖像處理上,圖像的邊緣等灰度變化劇烈的地方對(duì)應(yīng)高頻信息,將被濾除。 最后,我們給出計(jì)算高斯模糊模板的C語言代碼,請(qǐng)注意,由于高斯模板是對(duì)稱的,實(shí)際上我們只需要計(jì)算出大約1/4模板即可。但這里的代碼我們沒有做這樣的優(yōu)化。我們輸出的模板是(2*N+1)*(2N+1),高斯半徑用r表示。 計(jì)算高斯模板 同時(shí),作為比較,我們給出在Matlab中生成高斯模板的代碼(fspecial的代碼局部,其中p3是第三個(gè)參數(shù)即高斯半徑): case 'gaussian' % Gaussian filter siz = (p2-1)/2; %注:p2即模板邊長(zhǎng),默認(rèn)值為33 std = p3; %注:p3即高斯半徑,默認(rèn)為為0.5 [x,y] = meshgrid(-siz(2):siz(2),-siz(1):siz(1)); arg = -(x.*x + y.*y)/(2*std*std); h = exp(arg); h(h<eps*max(h(:))) = 0; sumh = sum(h(:)); %注:模板歸一化 if sumh ~= 0, h = h/sumh; end; 更多對(duì)Photoshop高斯模糊濾鏡的算法總結(jié)相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)! Photoshop默認(rèn)保存的文件格式,可以保留所有有圖層、色版、通道、蒙版、路徑、未柵格化文字以及圖層樣式等。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!