在圖像處理中,散度 div 具體的作用是什麼?
謝邀。回答兩個問題:
1. 什麼是散度?
2. 散度在圖像處理中有何應用
1. 什麼是散度
1.1 散度的定義
散度是作用在向量場上的一個運算元。
用三維空間來舉例,向量場就是在空間每一點處都對應一個三維向量的向量函數:
。
比如海洋里,各點在單位時間單位體積中水的流量就是一個三維場,稱為通量場,它等於速度場和密度場的乘積 。
向量場的散度運算元定義為:
。
它是一個標量函數(場),也就是說,在定義空間中每一點的散度是一個值。
1.2 散度的物理意義
用水流來解釋,散度的物理意義可以敘述為:
- 如果一點的散度大於0,那麼在這一點有一個水龍頭不斷往外冒水(稱為源點)
- 如果一點的散度小於0,那麼在這一點有一個下水道,總有一些水只進不出(稱為匯點)
- 如果一點的散度等於0,那麼在這個點周圍的小區域里,單位時間進來多少水就出去多少水。
1.3 數學推導
假設 是水的通量場,咱們來看看在一點的附近到底發生了什麼。以這一點為中心,用一個邊長分別為的平行於坐標軸的長方體盒子包圍它,來詳細分析長方體各表面向外跑了多少水。先看盒子在方向上的兩個面:
第一個面是一個面積為的長方形,它的中心坐標是,這一點的通量是,用Taylor展開式可以近似為:,又因為這一長方形的外法線方向是,因此這一面在單位時間向外的流量就是二者相乘再乘以面積,由於法線的特殊形式,y、z分量自動消失了:
同理,在x負半軸上的那個面單位時間向外的流量是:
因此單位時間在x方向上的總的向外的流量是:
把三個坐標軸向外的流量加在一起,我們就得到了圍繞點,體積為的長方體單位時間向外的流量是。
- 因為一個區域是由很多小正方體組成的,給定一個複雜區域,其單位時間向外的總流量就是把每一個小區域向外的流量加起來,因為內部相互抵消,最終只有區域邊界上的值得以展現,這樣就得到了:
其中 是區域D的邊界, 是區域邊界上外法線方向的面積元。這個式子的含義是指跑出區域的總水量等於區域中散度的積分,也等於區域邊界上向外的流量的積分。
- 平均到一個點上,單位時間向的外流量密度就是
這是散度的物理意義。
- 一個區域無論多複雜,只要不包含源點和匯點,其上散度逐點為0,因而區域的總向外流量也為0,1.2中所述的其他情形也可以相應獲得。
1.4 散度與擴散
假設在空間中有一個濃度場(密度場) ,代表在時刻t,在任一點,單位體積的某種物質的分子個數,考慮到物質守恆,物質不會自生自滅,小區域中濃度的變化必然是由於有物質流進流出造成的,這種守恆可以用著名的連續性方程的微分形式來刻畫:
其中F是通量。
物質喜歡從高濃度向低濃度運動,並且濃度差越大,運動越劇烈。根據菲克定律(Fick"s laws of diffusion),通量可以用濃度的負梯度來表示,因為某一點的負梯度是濃度下降最快的方向,得到:。其中梯度定義為,是一個向量場,K是擴散係數,可以是標量,也可以是矩陣,用於調節濃度差與擴散方向之間的關係。
從而連續性方程就變成了擴散方程:
為了更加直觀地理解,咱先略去擴散係數K,這樣方程就變成了:
等式右邊被稱為Laplace運算元,一般用一個正三角來簡寫,你可以用二階導數來理解它。在一小段時間間隔上,這個方程可以離散化為:
直接含義就是:在每個小時間段內,如果一個點的二階導數大於0,則把它的濃度增加一些,如果一個點二階導數小於0,則把它的濃度降低一些。因為二階導數大於0的點往往是下凹的點,是局部極小值,因此增加它可以讓局部濃度變平滑;類似地,二階導數小於0的點往往是上凸點,是局部極大值,減少它可以讓濃度中和。
當時間趨向於無窮大時,方程達到穩定,左端為0,那麼我們就得到穩定值滿足的條件:整個區域上散度為0。也可以理解為最終消滅了所有的源點和匯點,場變得光滑了,擴散就終止了。
2. 散度在圖像去噪中的應用
在圖像領域散度運算元主要用在去噪中。假設一幅圖像為,它的梯度運算元是一個二維場,那麼我們立即可以用散度運算元構造一個擴散方程:
把這個擴散方程作用於圖像就可以去噪了,上面已經解釋了它的作用過程是比較圖像上的每個點,如果一個點值比周圍點低,就增加它,如果比周圍點高,就減少它,實質就是平滑圖像。但是由於它是各向同性的均勻擴散方程,導致圖像上所有細節均勻模糊,去噪效果很糟糕。
Perona和Malik在90年代初發現,由於圖像邊緣往往處在梯度值較大的點處,如果擴散方程在梯度值較大的區域減速擴散,在梯度值較小的區域加速擴散,則可以在著重去噪的同時保護圖像有用細節。他們修改後的擴散方程就是有名的P-M方程:
其中函數g是一個遞減函數,保證隨圖像梯度模值增大函數值遞減,起到只在圖像平滑區域(小梯度點)猛烈擴散的作用。同時,這個方程還可以變形為在圖像局部沿邊緣方向和跨邊緣方向上的兩個一維擴散之和,好的演算法能保證在沿著邊緣方向擴散地多,跨邊緣擴散地少,也就是保證
,起到在去噪的同時保護邊緣的作用。散度形式和方嚮導數形式的擴散方程是隨後P-M方程改進的兩個主要方向。
基於擴散方程的去噪方法的優點主要有:
- 結合微分幾何和物理方程,比較高大上;
- 可以控制圖像局部區域的擴散特性,對圖像的控制力強;
- 易於推廣到三維和更高維以及流形(比如地球表面)上,方程都不用變。
缺點主要有:
- 速度慢,因為是迭代演算法;
- 擴散會導致邊緣發生一定程度地移位;
- 理論難於往深發展。
最後請欣賞梵高的名畫星空:
各向同性擴散方程對其進行均勻平滑的結果(啥都看不清了):
如果第一幅圖是初始濃度,這一幅圖就是一段時間後的中和了的濃度。最終,圖像成為一張純色畫布,恰好是原始圖像的均值。這一過程在數學上嚴格等價於對圖像做方差不斷增大的高斯卷積。
修改擴散係數後方向可控平滑的結果(只沿著邊緣擴散,保護邊緣):
明顯可以看出,在平滑雜訊(細小顏色雜質)的同時,大邊緣得到了很好地保留。
註:原文關於函數g的敘述有錯,感謝xiao huang的細心觀察!
參考文獻
1. R.P.Feynman et al. 費恩曼物理學講義(第二卷).上海科學技術出版社, 2005.
2. 王大凱, 侯榆青,彭進業. 圖像處理的偏微分方程方法. 科學出版社, 2008.
3. 王小龍,彭國華. 彩色圖像的方向擴散去噪模型研究[J]. 計算機工程與應用, 2013, 49(22): 208-211.
圖像處理中的散度應用太多了,最普遍的就是銳化時使用的拉普拉斯運算元,本質是將周圍幾個單元的灰度變化率的變化趨勢區分開來,從而達到區分邊緣的效果。數字圖像處理里的散度不能按場論中的散度來理解,當成一種數學運算方法就行
你這個概念太過寬泛。散度只是一個運算元,具體看他作用在哪兒。比如在傳統的水平集函數裡面,div(frac{
abla phi}{|
abla phi|}})就是這個水平集邊緣的曲率kappa。例如在連續最大流演算法裡面div代表當前點的一個通量或者流量。要具體問題具體分析。
作為一個前端,看到div還以為是&標籤.......
好吧,把這樓折了吧......
推薦閱讀:
※有哪些辦法將圖形轉化為聲音?
※清晰度、對比度和銳度之間有什麼區別?
※人臉識別相關有哪些重要的國際會議?
※使用兩張角度不同的靜態圖像合成連貫的動畫,難度有多大?
※如何通過自己的努力進入微軟亞洲研究院工作?