圖像處理(卷積)做者太棒了

圖像處理(卷積)做者太棒了html

圖像處理-線性濾波-1 基礎(相關算子、卷積算子、邊緣效應)

這裏討論利用輸入圖像中像素的小鄰域來產生輸出圖像的方法,在信號處理中這種方法稱爲濾波(filtering)。其中,最經常使用的是線性濾波:輸出像素是輸入鄰域像素的加權和。node

 

1.相關算子(Correlation Operator)

       定義:image,  即image ,其中h稱爲相關核(Kernel).算法

        

  步驟:app

        1)滑動核,使其中心位於輸入圖像g的(i,j)像素上函數

        2)利用上式求和,獲得輸出圖像的(i,j)像素值性能

        3)充分上面操縱,直到求出輸出圖像的全部像素值ui

 

  例:url

A = [17  24   1   8  15            h = [8   1   6
     23   5   7  14  16                     3   5   7
      4   6  13  20  22                     4   9   2]
     10  12  19  21   3           
     11  18  25   2   9]
spa

計算輸出圖像的(2,4)元素=image設計

image

Matlab 函數:imfilter(A,h)

 

2.卷積算子(Convolution)

定義:image image ,其中

   步驟:

        1)將核圍繞中心旋轉180度

        2)滑動核,使其中心位於輸入圖像g的(i,j)像素上

        3)利用上式求和,獲得輸出圖像的(i,j)像素值

        4)充分上面操縱,直到求出輸出圖像的全部像素值

       例:計算輸出圖像的(2,4)元素=image

       image

Matlab 函數:Matlab 函數:imfilter(A,h,'conv')% imfilter默認是相關算子,所以當進行卷積計算時須要傳入參數'conv'

3.邊緣效應

當對圖像邊緣的進行濾波時,核的一部分會位於圖像邊緣外面。

image

經常使用的策略包括:

1)使用常數填充:imfilter默認用0填充,這會形成處理後的圖像邊緣是黑色的。

2)複製邊緣像素:I3 = imfilter(I,h,'replicate');

image

   

4.經常使用濾波

fspecial函數能夠生成幾種定義好的濾波器的相關算子的核。

例:unsharp masking 濾波

?
1
2
3
4
5
I = imread('moon.tif');
h = fspecial('unsharp');
I2 = imfilter(I,h);
imshow(I), title('Original Image')
figure, imshow(I2), title('Filtered Image')
 
 

圖像處理-線性濾波-2 圖像微分(一、2階導數和拉普拉斯算子)

更復雜些的濾波算子通常是先利用高斯濾波來平滑,而後計算其1階和2階微分。因爲它們濾除高頻和低頻,所以稱爲帶通濾波器(band-pass filters)。

在介紹具體的帶通濾波器前,先介紹必備的圖像微分知識。

1 一階導數

連續函數,其微分可表達爲image ,或image                         (1.1)

對於離散狀況(圖像),其導數必須用差分方差來近似,有

                                   image,前向差分 forward differencing                  (1.2)

                                   image ,中心差分 central differencing                     (1.3)

1)前向差分的Matlab實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function dimg = mipforwarddiff(img,direction)
% MIPFORWARDDIFF     Finite difference calculations 
%
%   DIMG = MIPFORWARDDIFF(IMG,DIRECTION)
%
%  Calculates the forward-difference for a given direction
%  IMG       : input image
%  DIRECTION : 'dx' or 'dy'
%  DIMG      : resultant image
%
%   See also MIPCENTRALDIFF MIPBACKWARDDIFF MIPSECONDDERIV
%   MIPSECONDPARTIALDERIV
  
%   Omer Demirkaya, Musa Asyali, Prasana Shaoo, ... 9/1/06
%   Medical Image Processing Toolbox
  
imgPad = padarray(img,[1 1],'symmetric','both');%將原圖像的邊界擴展
[row,col] = size(imgPad);
dimg = zeros(row,col);
switch (direction)   
case 'dx',
   dimg(:,1:col-1) = imgPad(:,2:col)-imgPad(:,1:col-1);%x方向差分計算,
case 'dy',
   dimg(1:row-1,:) = imgPad(2:row,:)-imgPad(1:row-1,:); 
otherwise, disp('Direction is unknown');
end;
dimg = dimg(2:end-1,2:end-1);

2)中心差分的Matlab實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function dimg = mipcentraldiff(img,direction)
% MIPCENTRALDIFF     Finite difference calculations 
%
%   DIMG = MIPCENTRALDIFF(IMG,DIRECTION)
%
%  Calculates the central-difference for a given direction
%  IMG       : input image
%  DIRECTION : 'dx' or 'dy'
%  DIMG      : resultant image
%
%   See also MIPFORWARDDIFF MIPBACKWARDDIFF MIPSECONDDERIV
%   MIPSECONDPARTIALDERIV
  
%   Omer Demirkaya, Musa Asyali, Prasana Shaoo, ... 9/1/06
%   Medical Image Processing Toolbox
  
img = padarray(img,[1 1],'symmetric','both');
[row,col] = size(img);
dimg = zeros(row,col);
switch (direction)
    case 'dx',
        dimg(:,2:col-1) = (img(:,3:col)-img(:,1:col-2))/2;
    case 'dy',
        dimg(2:row-1,:) = (img(3:row,:)-img(1:row-2,:))/2;
    otherwise,
        disp('Direction is unknown');
end
dimg = dimg(2:end-1,2:end-1);
?
1   

實例:技術圖像x方向導數

?
1
2
I = imread('coins.png'); figure; imshow(I);
Id = mipforwarddiff(I,'dx'); figure, imshow(Id);

      image image

    原圖像                                                   x方向1階導數

 

2 圖像梯度(Image Gradient)

圖像I的梯度定義爲image  ,其幅值爲image 。出於計算性能考慮,幅值也可用image 來近似。

Matlab函數

1)gradient:梯度計算

2)quiver:以箭頭形狀繪製梯度。注意放大下面最右側圖可看到箭頭,因爲這裏計算橫豎兩個方向的梯度,所以箭頭方向都是水平或垂直的。

實例:仍採用上面的原始圖像

?
1
2
3
4
5
I = double(imread('coins.png'));
[dx,dy]=gradient(I);
magnitudeI=sqrt(dx.^2+dy.^2);
figure;imagesc(magnitudeI);colormap(gray);%梯度幅值
hold on;quiver(dx,dy);%疊加梯度方向

        image image

                         梯度幅值                                   梯度幅值+梯度方向

 

3 二階導數

對於一維函數,其二階導數image ,即image 。它的差分函數爲

                                 image                  (3.1)

 

3.1 普拉斯算子(laplacian operator)

3.1.2 概念

拉普拉斯算子是n維歐式空間的一個二階微分算子。它定義爲兩個梯度向量算子的內積

                          image       (3.2)

其在二維空間上的公式爲:    image                (3.3)

 

對於1維離散狀況,其二階導數變爲二階差分

1)首先,其一階差分爲image

2)所以,二階差分爲

          image

3)所以,1維拉普拉斯運算能夠經過1維卷積核image 實現

 

對於2維離散狀況(圖像),拉普拉斯算子是2個維上二階差分的和(見式3.3),其公式爲:

image   (3.4)

上式對應的卷積核爲

                       image

經常使用的拉普拉斯核有:

                      image

3.1.2 應用

拉普拉斯算子會突出像素值快速變化的區域,所以經常使用於邊緣檢測。

 

 

Matlab裏有兩個函數

1)del2

計算公式:image image  

2)fspecial:圖像處理中通常利用Matlab函數fspecial

h = fspecial('laplacian', alpha) returns a 3-by-3 filter approximating the shape of the two-dimensional Laplacian operator.
The parameter alpha controls the shape of the Laplacian and must be in the range 0.0 to 1.0. The default value for alpha is 0.2.

 

3.1.3 資源

http://fourier.eng.hmc.edu/e161/lectures/gradient/node8.html (很是清晰的Laplacian Operator介紹,本文的主要參考)

http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

 

分類:  R-Computer Vision
 
 
 
 

sift算法

 

尺度不變特徵轉換(Scale-invariant feature transform 或 SIFT)是一種電腦視覺的算法用來偵測與描述影像中的局部性特徵,它在空間尺度中尋找極值點,並提取出其位置、尺度、旋轉不變量,此算法由 David Lowe 在1999年所發表,2004年完善總結。

Sift算法就是用不一樣尺度(標準差)的高斯函數對圖像進行平滑,而後比較平滑後圖像的差異,
差異大的像素就是特徵明顯的點。

sift能夠同時處理亮度,平移,旋轉,尺度的變化,利用特徵點來提取特徵描述符,最後在特徵描述符之間尋找匹配

 

五個步驟

1構建尺度空間,檢測極值點,得到尺度不變性

2特徵點過濾並進行經肯定位,剔除不穩定的特徵點

3 在特徵點處提取特徵描述符,爲特徵點分配方向直

4聲稱特徵描述子,利用特徵描述符尋找匹配點

5計算變換參數

當2幅圖像的sift特徵向量生成之後,下一步就能夠採用關鍵點特徵向量的歐式距離來做爲2幅圖像中關鍵點的類似性斷定量度

 

尺度空間:

尺度就是受delta這個參數控制的表示

而不一樣的L(x,y,delta)就構成了尺度空間,實際上具體計算的時候即便連續的高斯函數,都要被離散爲矩陣來和數字圖像進行卷積操做

L(x,y,delta)=G(x,y,e)*i(x,y)

尺度空間=原始圖像(卷積)一個可變尺度的2維高斯函數G(x,y,e)

 

G(x,y,e) = [1/2*pi*e^2] * exp[ -(x^2 + y^2)/2e^2] 


爲了更有效的在尺度空間檢測到穩定的關鍵點,提出了高斯差分尺度空間,利用不一樣尺度的高斯差分核與原始圖像i(x,y)卷積生成

D(x,y,e)=(G(x,y,ke)-G(x,y,e))*i(x,y)

=L(x,y,ke)-L(x,y,e)

(爲避免遍歷每一個像素點)

 

高斯卷積:

在組建一組尺度空間後,再組建下一組尺度空間,對上一組尺度空間的最後一幅圖像進行二分之一採樣,獲得下一組尺度空間的第一幅圖像,而後進行像創建第一組尺度空間那樣的操做,獲得第二組尺度空間,公式定義爲
         L(x,y,e) = G(x,y,e)*I(x,y)

    圖像金字塔的構建:圖像金字塔共O組,每組有S層,下一組的圖像由上一組圖像降採樣獲得、

高斯差分

    在尺度空間創建完畢後,爲了可以找到穩定的關鍵點,採用高斯差分的方法來檢測那些在局部位置的極值點,即採用倆個相鄰的尺度中的圖像相減,即公式定義爲:
        D(x,y,e) = ((G(x,y,ke) - G(x,y,e)) * I(x,y) 
                 = L(x,y,ke) - L(x,y,e)
 我們再來具體闡述下構造D(x,y,e)的詳細步驟:
    一、首先採用不一樣尺度因子的高斯覈對圖像進行卷積以獲得圖像的不一樣尺度空間,將這一組圖像做爲金子塔圖像的第一層。
    二、接着對第一層圖像中的2倍尺度圖像(相對於該層第一幅圖像的2倍尺度)以2倍像素距離進行下采樣來獲得金子塔圖像的第二層中的第一幅圖像,對該圖像採用不一樣尺度因子的高斯核進行卷積,以得到金字塔圖像中第二層的一組圖像。
    三、再以金字塔圖像中第二層中的2倍尺度圖像(相對於該層第一幅圖像的2倍尺度)以2倍像素距離進行下采樣來獲得金字塔圖像的第三層中的第一幅圖像,對該圖像採用不一樣尺度因子的高斯核進行卷積,以得到金字塔圖像中第三層的一組圖像。這樣依次類推,從而得到了金字塔圖像的每一層中的一組圖像,
 四、對上圖獲得的每一層相鄰的高斯圖像相減,就獲得了高斯差分圖像,以下述第一幅圖所示。下述第二幅圖中的右列顯示了將每組中相鄰圖像相減所生成的高斯差分圖像的結果,限於篇幅,圖中只給出了第一層和第二層高斯差分圖像的計算
sift算法
 

 

圖像處理之卷積概念

 

咱們來看一下一維卷積的概念.
連續空間的卷積定義是 f(x)與g(x)的卷積是 f(t-x)g(x) 在t從負無窮到正無窮的積分值.t-x要在f(x)定義域內,因此看上去很大的積分實際上仍是在必定範圍的.
實際的過程就是f(x) 先作一個Y軸的反轉,而後再沿X軸平移t就是f(t-x),而後再把g(x)拿來,二者乘積的值再積分.想象一下若是g(x)或者f(x)是個單位的階越函數. 那麼就是f(t-x)與g(x)相交部分的面積.這就是卷積了.
把積分符號換成求和就是離散空間的卷積定義了.

 

麼在圖像中卷積卷積地是什麼意思呢,就是圖像f(x),模板g(x),而後將模版g(x)在模版中移動,每到一個位置,就把f(x)與g(x)的定義域相交的元素進行乘積而且求和,得出新的圖像一點,就是被卷積後的圖像. 模版又稱爲卷積核.卷積核作一個矩陣的形狀.


卷積定義上是線性系統分析常常用到的.線性系統就是一個系統的輸入和輸出的關係是線性關係.就是說整個系統能夠分解成N多的無關獨立變化,整個系統就是這些變化的累加.
如 x1->y1, x2->y2; 那麼A*x1 + B*x2 -> A*y1 + B*y2 這就是線性系統. 表示一個線性系統能夠用積分的形式 如 Y = Sf(t,x)g(x)dt S表示積分符號,就是f(t,x)表示的是A B之類的線性係數.
看上去很像卷積呀,,對若是f(t,x) = F(t-x) 不就是了嗎.從f(t,x)變成F(t-x)其實是說明f(t,x)是個線性移不變,就是說 變量的差不變化的時候,那麼函數的值不變化. 實際上說明一個事情就是說線性移不變系統的輸出能夠經過輸入和表示系統線性特徵的函數卷積獲得.

 

http://dept.wyu.edu.cn/dip/DIPPPT2005/����������ϵͳ.ppt


 
 
 
 
 
談起卷積分固然要先說說衝擊函數—-這個倒立的小蝌蚪,卷積其實就是爲它誕生的。」衝擊函數」是狄拉克爲了解決一些瞬間做用的物理現象而提出的符號。
古人曰:」說一堆大道理不如舉一個好例子」,衝量這一物理現象很能說明」衝擊函數」。在t時間內對一物體做用F的力,咱們可讓做用時間t很小,做用力F很大,但讓Ft的乘積不變,即衝量不變。因而在用t作橫座標、F作縱座標的座標系中,就如同一個面積不變的長方形,底邊被擠的窄窄的,高度被擠的高高的,在數學中它能夠被擠到無限高,但即便它無限瘦、無限高、但它仍然保持面積不變(它沒有被擠沒!),爲了證明它的存在,能夠對它進行積分,積分就是求面積嘛!因而」卷積」 這個數學怪物就這樣誕生了。說它是數學怪物是由於追求完美的數學家始終在頭腦中轉不過來彎,一個能瘦到無限小的傢伙,竟能在積分中佔有一席之地,必須將這個細高挑清除數學界。但物理學家、工程師們確很是喜歡它,由於它解決了不少當時數學家解決不了的實際問題。最終追求完美的數學家終於想通了,數學是來源於實際的,並最終服務於實際纔是真。因而,他們爲它量身定作了一套運做規律。因而,媽呀!你我都感受眩暈的卷積分產生了。
例子:
有一個七品縣令,喜歡用打板子來懲戒那些市井無賴,並且有個慣例:若是沒犯大罪,只打一板,釋放回家,以示愛民如子。
有一個無賴,想出人頭地卻沒啥期望,心想:既然揚不了善名,出惡名也成啊。怎麼出惡名?炒做唄!怎麼炒做?找名人呀!他天然想到了他的行政長官——縣令。
無賴因而光天化日之下,站在縣衙門前撒了一泡尿,後果是可想而知地,天然被請進大堂捱了一板子,而後昂首挺胸回家,躺了一天,嘿!身上啥事也沒有!次日如法炮製,全然不顧行政長管的仁慈和衙門的體面,第三天、第四天……天天去縣衙門領一個板子回來,還喜氣洋洋地,堅持一個月之久!這無賴的名氣已經和衙門口的臭氣同樣,傳遍八方了!
縣令大人噤着鼻子,呆呆地盯着案子上的驚堂木,擰着眉頭思考一個問題:這三十個大板子怎麼很差使捏?……想當初,本老爺金榜題名時,數學但是得了滿分,今天好歹要解決這個問題:
——人(系統!)挨板子(脈衝!)之後,會有什麼表現(輸出!)?
——費話,疼唄!
——我問的是:會有什麼表現?
——看疼到啥程度。像這無賴的體格,天天挨一個板子啥事都不會有,連哼一下都不可能,你也看到他那得意洋洋的嘴臉了(輸出0);若是一次連揍他十個板子,他可能會皺皺眉頭,咬咬牙,硬挺着不哼
(輸出1);揍到二十個板子,他會疼得臉部扭曲,象豬似地哼哼(輸出3);揍到三十個板子,他可能會象驢似地嚎叫,一把鼻涕一把淚地求你饒他一命(輸出5);揍到四十個板子,他會大小便失禁,勉
強哼出聲來(輸出1);揍到五十個板子,他連哼一下都不可能(輸出0)——死啦!
縣令鋪開座標紙,以打板子的個數做爲X軸,以哼哼的程度(輸出)爲Y軸,繪製了一條曲線:
——嗚呼呀!這曲線象一座高山,弄不懂弄不懂。爲啥那個無賴連捱了三十天大板卻不喊繞命呀?
—— 呵呵,你打一次的時間間隔(Δτ=24小時)太長了,因此那個無賴承受的痛苦程度一天一利索,沒有疊加,始終是一個常數;若是縮短打板子的時間間隔(建議 Δτ=0.5秒),那他的痛苦程度可就迅速疊加了;等到這無賴挨三十個大板(t=30)時,痛苦程度達到了他能喊叫的極限,會收到最好的懲戒效果,再多打就顯示不出您的仁慈了。
——仍是不太明白,時間間隔小,爲何痛苦程度會疊加呢?
——這與人(線性時不變系統)對板子(脈衝、輸入、激勵)的響應有關。什麼是響應?人挨一個板子後,疼痛的感受會在一天(假設的,因人而異)內慢慢消失(衰減),而不可能忽然消失。這樣一來,只要打板子的時間間隔很小,每個板子引發的疼痛都來不及徹底衰減,都會對最終的痛苦程度有不一樣的貢獻:
t個大板子形成的痛苦程度=Σ(第τ個大板子引發的痛苦*衰減係數)
[衰減係數是(t-τ)的函數,仔細品味]
數學表達爲:y(t)=∫T(τ)H(t-τ)
——拿人的痛苦來講卷積的事,太殘忍了。除了人之外,其餘事物也符合這條規律嗎?
——呵呵,縣令大人畢竟仁慈。其實除人以外,不少事情也遵循此道。好好想想,鐵絲爲何彎曲一次不折,快速彎曲屢次卻會輕易折掉呢?
——恩,一時還弄不清,容本官慢慢想來——但有一點是明確地——來人啊,將撒尿的那個無賴抓來,狠打40大板!
卷積及拉普拉斯變換的通俗解釋–對於我這類沒學過信號系統的人來講太須要了
卷積(convolution, 另外一個通用名稱是德文的Faltung)的名稱由來,是在於當初定義它時,定義成 integ(f1(v)*f2(t-v))dv,積分區間在0到t之間。舉個簡單的例子,你們能夠看到,爲何叫」卷積」了。比方說在(0,100)間積分,用簡單的辛普生積分公式,積分區間分紅100等分,那麼看到的是f1(0)和f2(100)相乘,f1(1)和f2(99)相乘,f1(2)和f2 (98)相乘,……… 等等等等,就象是在座標軸上回卷同樣。因此人們就叫它」回捲積分」,或者」卷積」了。
爲了理解」卷積」的物理意義,不妨將那個問題」至關於它的時域的信號與系統的單位脈衝響應的卷積」略做變化。這個變化純粹是爲了方便表達和理解,不影響任何其它方面。將這個問題表述成這樣一個問題:一個信號經過一個系統,系統的響應是頻率響應或波譜響應,且看如何理解卷積的物理意義。
假設信號函數爲f, 響應函數爲g。f不只是時間的函數(信號時有時無),仍是頻率的函數(就算在某一固定時刻,還有的地方大有的地方小);g也是時間的函數(有時候有反應,有時候沒反應),同時也是頻率的函數(不一樣的波長其響應程度不同)。那咱們要看某一時刻 t 的響應信號,該怎麼辦呢?
這就須要卷積了。
要看某一時刻 t 的響應信號,天然是看下面兩點:
1。你信號來的時候正遇上人家」系統」的響應時間段嗎?
2。就算遇上系統響應時間段,響應有多少?
響 應不響應主要是看 f 和 g 兩個函數有沒有交疊;響應強度的大小不只取決於所給的信號的強弱,還取決於在某頻率處對單位強度響應率。響應強度是信號強弱和對單位強度信號響應率的乘積。」交疊」體如今f(t1)和g(t-t1)上,g之因此是」(t-t1)」就是看兩個函數錯開多少。
因爲 f 和 g 兩個函數都有必定的帶寬分佈(倘若不用開頭提到的」表述變化」就是都有必定的時間帶寬分佈),這個信號響應是在必定」範圍」內普遍響應的。算總的響應信號,固然要把全部可能的響應加起來,實際上就是對全部可能t1積分了。積分範圍雖然通常在負無窮到正無窮之間;但在沒有信號或者沒有響應的地方,積也是白積,結果是0,因此每每積分範圍能夠縮減。
這就是卷積及其物理意義啊。併成一句話來講,就是看一個時有時無(固然做爲特例也能夠永恆存在)的信號,跟一個響應函數在某一時刻有多大交疊。
*********拉普拉斯*********
拉普拉斯(1729-1827) 是法國數學家,天文學家,物理學家。他提出拉普拉斯變換(Laplace Transform) 的目的是想要解決他當時研究的牛頓引力場和太陽系的問題中涉及的積分微分方程。
拉普拉斯變換實際上是一個數學上的簡便算法;想要了解其」物理」意義 — 若是有的話 — 請看我舉這樣一個例子:
問題:請計算十萬乘以一千萬。
對於沒學過指數的人,就只會直接相乘;對於學過指數的人,知道不過是把乘數和被乘數表達成指數形式後,兩個指數相加就好了;若是要問到底是多少,把指數轉回來就是。
「拉 普拉斯變換」 就至關於上述例子中把數轉換成」指數」 的過程;進行了拉普拉斯變換以後,複雜的微分方程(對應於上例中」複雜」的乘法) 就變成了簡單的代數方程,就象上例中」複雜」的乘法變成了簡單的加減法。再把簡單的代數方程的解反變換回去(就象把指數從新轉換會通常的數同樣),就解決了原來那個複雜的微分方程。
因此要說拉普拉斯變換真有」 物理意義」的話,其物理意義就至關於人們把通常的有理數用指數形式表達同樣。
另外說兩句題外話:
1 。拉普拉斯變換之因此如今在電路中普遍應有,根本緣由是電路中也普遍涉及了微分方程。
2。拉普拉斯變換與Z變換固然有緊密聯繫;其本質區別在於拉氏變換處理的是時間上連續的問題,Z變換處理的是時間上分立的問題。
Signals, Linear Systems, and Convolution
Download from here
 
咱們都知道卷積公式,可是它有什麼物理意義呢?平時咱們用卷積作過不少事情,信號處理時,輸出函數是輸入函數和系統函數的卷積;在圖像處理時,兩組幅分辨率不一樣的圖卷積以後獲得的互相平滑的圖像能夠方便處理。卷積甚至能夠用在考試做弊中,爲了讓照片同時像兩我的,只要把兩人的圖像卷積處理便可,這就是一種平滑的過程,但是咱們怎麼才能真正把公式和實際創建起一種聯繫呢?生活中就有實例:
     好比說你的老闆命令你幹活,你卻到樓下打檯球去了,後來被老闆發現,他很是氣憤,扇了你一巴掌(注意,這就是輸入信號,脈衝),因而你的臉上會漸漸地(賤賤地)鼓起來一個包,你的臉就是一個系統,而鼓起來的包就是你的臉對巴掌的響應。
      好,這樣就和信號系統創建起來意義對應的聯繫。下面還須要一些假設來保證論證的嚴謹:假定你的臉是線性時不變系統,也就是說,不管何時老闆打你一巴掌,打在你臉的同一位置(這彷佛要求你的臉足夠光滑,若是你說你長了不少青春痘,甚至整個臉皮到處連續到處不可導,那難度太大了,我就無話可說了),你的臉上老是會在相同的時間間隔內鼓起來一個相同高度的包來,而且假定以鼓起來的包的大小做爲系統輸出。好了,那麼,下面能夠進入核心內容——卷積了!
      若是你天天都到樓下去打檯球,那麼老闆天天都要扇你一巴掌,不過當老闆打你一巴掌後,你5分鐘就消腫了,因此時間長了,你甚至就適應這種生活了……若是有一天,老闆忍無可忍,以0.5秒的間隔開始不間斷的扇你的過程,這樣問題就來了:第一次扇你鼓起來的包還沒消腫,第二個巴掌就來了,你臉上的包就可能鼓起來兩倍高,老闆不斷扇你,脈衝不斷做用在你臉上,效果不斷疊加了,這樣這些效果就能夠求和了,結果就是你臉上的包的高度歲時間變化的一個函數了(注意理解)!
      若是老闆再狠一點,頻率愈來愈高,以致於你都辨別不清時間間隔了,那麼,求和就變成積分了。能夠這樣理解,在這個過程當中的某一固定的時刻,你的臉上的包的鼓起程度和什麼有關呢?和以前每次打你都有關!可是各次的貢獻是不同的,越早打的巴掌,貢獻越小,這就是說,某一時刻的輸出是以前不少次輸入乘以各自的衰減係數以後的疊加而造成某一點的輸出,而後再把不一樣時刻的輸出點放在一塊兒,造成一個函數,這就是卷積。卷積以後的函數就是你臉上的包的大小隨時間變化的函數。原本你的包幾分鐘就能夠消腫,但是若是連續打,幾個小時也消不了腫了,這難道不是一種平滑過程麼?反映到公式上,f(a)就是第a個巴掌,g(x-a)就是第a個巴掌在x時刻的做用程度,乘起來再疊加就ok了,這就是卷積!
     最後提醒各位,請勿親身嘗試……

卷積的物理意義?
在信號與系統中,兩個函數所要表達的物理含義是什麼?例如,一個系統,其單位衝激響應爲h(t),當輸入信號爲f(t)時,該系統的輸出爲y(t)。爲何y(t)是f(t)和h(t)的卷積?(從數學推導我明白,但其物理意義不明白。)y(t)是f(t)和h(t)的卷積表達了一個什麼意思?

卷積(convolution, 另外一個通用名稱是德文的Faltung)的名稱由來,是在於當初定義它時,定義成 integ(f1(v)*f2(t-v))dv,積分區間在0到t之間。舉個簡單的例子,你們能夠看到,爲何叫「卷積」了。比方說在(0,100)間積分,用簡單的辛普生積分公式,積分區間分紅100等分,那麼看到的是f1(0)和f2(100)相乘,f1(1)和f2(99)相乘,f1(2)和f2(98)相乘,......... 等等等等,就象是在座標軸上回卷同樣。因此人們就叫它「回捲積分」,或者「卷積」了。
爲了理解「卷積」的物理意義,不妨將那個問題「至關於它的時域的信號與系統的單位脈衝響應的卷積」略做變化。這個變化純粹是爲了方便表達和理解,不影響任何其它方面。將這個問題表述成這樣一個問題:一個信號經過一個系統,系統的響應是頻率響應或波譜響應,且看如何理解卷積的物理意義。
假設信號函數爲f, 響應函數爲g。f不只是時間的函數(信號時有時無),仍是頻率的函數(就算在某一固定時刻,還有的地方大有的地方小);g也是時間的函數(有時候有反應,有時候沒反應),同時也是頻率的函數(不一樣的波長其響應程度不同)。那咱們要看某一時刻 t 的響應信號,該怎麼辦呢?
這就須要卷積了。
其實卷積積分應用普遍用在信號裏面,一個是頻域一個是時域
 

卷積是個啥?我突然很想從本質上理解它。因而我從抽屜裏翻出本身珍藏了許多年,往往下決心閱讀卻永遠都讀不完的《應用傅立葉變換》。
 
3.1 一維卷積的定義
 
函數f(x)與函數h(x)的卷積,由函參量的無窮積分

  定義。這裏參量x和積分變量α皆爲實數;函數f和h可實可復。
 
定義雖然找到了,但我仍是一頭霧水。卷積是個無窮積分嗎?那它是幹啥用的?再日後翻:幾何說明、運算舉例、基本性質,一堆的公式,就是沒有說它是幹啥用的。我因而坐在那呆想,突然第二個困擾個人問題冒了出來:傅立葉變換是個啥?接着就是第三個、第四個、……、第N個問題。
 
傅立葉變換是個啥?據說能將時域上的東東變到頻域上分析?哎?是變到頻域上仍是空間域上來着?到底啥是時域,頻域,空間域?
 
上網查傅立葉變換的物理意義,沒發現明確答案,倒發現了許多和我同樣暈着問問題的人。結果又多出了許多名詞,能量?功率譜?圖像灰度域?……沒辦法又去翻那本教材。
 
1.1 一維傅立葉變換的定義與傅立葉積分定理
 
設f(x)是實變量x的函數,該函數可實可復,稱積分

爲函數f(x)的傅立葉變換。
 
吐血,啥是無窮積分來着?積分是啥來着?還能記起三角函數和差化積、積化和差公式嗎?我突然有種想把高中課本尋來重溫的衝動。
 
卷積主要是爲了將信號運算從時域轉換爲頻域。
信號的時域的卷積等於頻域的乘積。
利用這個性質以及特殊的δ函數能夠經過抽樣構造簡單的調製電路
 
 
我比較贊同卷積的相關性的做用  在通訊系統中的接收機部分MF匹配濾波器等就是本質上的相關
匹配濾波器最簡單的形式就是原信號反轉移位相乘積分獲得的近似=相關
相關性越好獲得的信號越強   這個咱們有一次大做業作的  作地作到嘔吐  呵呵
還有解調中一些東西本質就是相關
 

卷積公式  解釋  卷積公式是用來求隨機變量和的密度函數(pdf)的計算公式。  定義式:  z(t)=x(t)*y(t)= ∫x(m)y(t-m)dm.   已知x,y的pdf,x(t),y(t).如今要求z=x+y的pdf. 咱們做變量替顯,令  z=x+y,m=x. 雅可比行列式=1.那麼,z,m聯合密度就是f(z,m)=x(m)y(z-m)*1. 這樣,就能夠很容易求Z的在(z,m)中邊緣分佈  即fZ(z)=∫x(m)y(z-m)dm..... 因爲這個公式和x(t),y(t)存在一一對應的關係。爲了方便,因此記 ∫x(m)y(z-m)dm=x(t)*y(t)   長度爲m的向量序列u和長度爲n的向量序列v,卷積w的向量序列長度爲(m+n-1),   u(n)與v(n)的卷積w(n)定義爲: w(n)=u(n)@v(n)=sum(v(m)*u(n-m)),m from 負無窮到正無窮;   當m=n時w(1) = u(1)*v(1)   w(2) = u(1)*v(2)+u(2)*v(1)   w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1)   …   w(n) = u(1)*v(n)+u(2)*v(n-1)+ … +u(n)*v(1)   …   w(2*n-1) = u(n)*v(n)   當m≠n時,應以0補齊階次低的向量的高位後進行計算  這是數學中經常使用的一個公式,在機率論中,是個重點也是一個難點。

  卷積公式是用來求隨機變量和的密度函數(pdf)的計算公式。
  定義式:
  z(t)=x(t)*y(t)= ∫x(m)y(t-m)dm.
  已知x,y的pdf,x(t),y(t).如今要求z=x+y的pdf. 咱們做變量替顯,令
  z=x+y,m=x. 雅可比行列式=1.那麼,t,m聯合密度就是f(z,m)=x(m)y(z-m)*1. 這樣,就能夠很容易求Z的在(z,m)中邊緣分佈
  即fZ(z)=∫x(m)y(z-m)dm..... 因爲這個公式和x(t),y(t)存在一一對應的關係。爲了方便,因此記 ∫x(m)y(z-m)dm=x(t)*y(t)
 
卷積是一種線性運算,圖像處理中常見的mask運算都是卷積,普遍應用於圖像濾波。castlman的書對卷積講得很詳細。
高斯變換就是用高斯函數對圖像進行卷積。高斯算子能夠直接從離散高斯函數獲得:
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
g[i*N+j]=exp(-((i-(N-1)/2)^2+(j-(N-1)/2)^2))/(2*delta^2));
sum += g[i*N+j];
}
}
再除以 sum 獲得歸一化算子
N是濾波器的大小,delta自選
首先,再提到卷積以前,必須提到卷積出現的背景。卷積是在信號與線性系統的基礎上或背景中出現的,脫離這個背景單獨談卷積是沒有任何意義的,除了那個所謂褶反公式上的數學意義和積分(或求和,離散狀況下)。信號與線性系統,討論的就是信號通過一個線性系統之後發生的變化(就是輸入輸出和所通過的所謂系統,這三者之間的數學關係)。所謂線性系統的含義,就是,這個所謂的系統,帶來的輸出信號與輸入信號的數學關係式之間是線性的運算關係。所以,實際上,都是要根據咱們須要待處理的信號形式,來設計所謂的系統傳遞函數,那麼這個系統的傳遞函數和輸入信號,在數學上的形式就是所謂的卷積關係。卷積關係最重要的一種狀況,就是在信號與線性系統或數字信號處理中的卷積定理。利用該定理,能夠將時間域或空間域中的卷積運算等價爲頻率域的相乘運算,從而利用FFT等快速算法,實現有效的計算,節省運算代價。
相關文章
相關標籤/搜索