| 一、尺度調(diào)整 顧名思義,即對(duì)源圖像的尺寸進(jìn)行放大或者縮小變換。在opencv里面可以用resize函數(shù),將源圖像精準(zhǔn)地轉(zhuǎn)化為指定尺寸的目標(biāo)圖像。要縮小圖像,一般推薦使用CV_INETR_AREA(區(qū)域插值)來插值;若要放大圖像,推薦使用CV_INTER_LINEAR(線性插值)。這個(gè)函數(shù)可以用來做簡單的圖像尺度變換。而下面要說的圖像金字塔的用處很大,在特征檢測中都是基礎(chǔ)理論和技術(shù); Opencv里面的API介紹: 二、圖像金字塔(Image Pyramid) 圖像金字塔是圖像中多尺度表達(dá)的一種,最主要用于圖像的分割,是一種以多分辨率來解釋圖像的有效但概念簡單的結(jié)構(gòu)。圖像金字塔最初用于機(jī)器視覺和圖像壓縮,一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低,且來源于同一張?jiān)紙D的圖像集合。其通過梯次向下采樣獲得,直到達(dá)到某個(gè)終止條件才停止采樣。金字塔的底部是待處理圖像的高分辨率表示,而頂部是低分辨率的近似。我們將一層一層的圖像比喻成金字塔,層級(jí)越高,則圖像越小,分辨率越低。 常見兩類圖像金字塔 
 兩者的簡要區(qū)別:高斯金字塔用來向下降采樣圖像,注意降采樣其實(shí)是由金字塔底部向上采樣,分辨率降低,它和我們理解的金字塔概念相反(注意);而拉普拉斯金字塔則用來從金字塔底層圖像中向上采樣重建一個(gè)圖像。 要從金字塔第i層生成第i+1層(我們表示第i+1層為G_i+1),我們先要用高斯核對(duì)G_1進(jìn)行卷積,然后刪除所有偶數(shù)行和偶數(shù)列。新得到圖像面積會(huì)變?yōu)樵磮D像的四分之一。按上述過程對(duì)輸入圖像G_0執(zhí)行操作就可產(chǎn)生出整個(gè)金字塔。 當(dāng)圖像向金字塔的上層移動(dòng)時(shí),尺寸和分辨率就降低。OpenCV中,從金字塔中上一級(jí)圖像生成下一級(jí)圖像的可以用PryDown。而通過PryUp將現(xiàn)有的圖像在每個(gè)維度都放大兩遍。 圖像金字塔中的向上和向下采樣分別通過OpenCV函數(shù) pyrUp 和 pyrDown 實(shí)現(xiàn)。概括起來就是: 
 這里的向下與向上采樣,是對(duì)圖像的尺寸而言的(和金字塔的方向相反),向上就是圖像尺寸加倍,向下就是圖像尺寸減半。而如果我們按上圖中演示的金字塔方向來理解,金字塔向上圖像其實(shí)在縮小,這樣剛好是反過來了。 但需要注意的是,PryUp和PryDown不是互逆的,即PryUp不是降采樣的逆操作。這種情況下,圖像首先在每個(gè)維度上擴(kuò)大為原來的兩倍,新增的行(偶數(shù)行)以0填充。然后給指定的濾波器進(jìn)行卷積(實(shí)際上是一個(gè)在每個(gè)維度都擴(kuò)大為原來兩倍的過濾器)去估計(jì)“丟失”像素的近似值。PryDown( )是一個(gè)會(huì)丟失信息的函數(shù)。為了恢復(fù)原來更高的分辨率的圖像,我們要獲得由降采樣操作丟失的信息,這些數(shù)據(jù)就和拉普拉斯金字塔有關(guān)系了。 2.1 高斯金字塔(Gaussian pyramid) 高斯金字塔是通過高斯平滑和亞采樣獲得一系列下采樣圖像,也就是說第K層高斯金字塔通過平滑、亞采樣就可以獲得K+1層高斯圖像,高斯金字塔包含了一系列低通濾波器,其截至頻率從上一層到下一層是以因子2逐漸增加,所以高斯金字塔可以跨越很大的頻率范圍。金字塔的圖像如下:               另外,每一層都按從下到上的次序編號(hào), 層級(jí) G_i+1 (表示為 G_i+1尺寸小于第i層G_i)。 
 為了獲取層級(jí)為 G_i+1 的金字塔圖像,方法步驟如下: <1> 對(duì)圖像G_i進(jìn)行高斯內(nèi)核卷積,進(jìn)行高斯模糊; <2> 將所有偶數(shù)行和列去除。 得到的圖像即為G_i+1的圖像,顯而易見,結(jié)果圖像只有原圖的四分之一。通過對(duì)輸入圖像G_i(原始圖像)不停迭代以上步驟就會(huì)得到整個(gè)金字塔。同時(shí)我們也可以看到,向下取樣會(huì)逐漸丟失圖像的信息。以上就是對(duì)圖像的向下取樣操作,即縮小圖像。 
 方法步驟如下: <1> 將圖像在每個(gè)方向擴(kuò)大為原來的兩倍,新增的行和列以0填充 <2> 使用先前同樣的內(nèi)核(乘以4)與放大后的圖像卷積,獲得 “新增像素”的近似值 得到的圖像即為放大后的圖像,但是與原來的圖像相比會(huì)發(fā)覺比較模糊,因?yàn)樵诳s放的過程中已經(jīng)丟失了一些信息,如果想在縮小和放大整個(gè)過程中減少信息的丟失,這些數(shù)據(jù)形成了拉普拉斯金字塔。 2.2 拉普拉斯金字塔(Laplacian pyramid) 拉普拉斯金字塔第i層的數(shù)學(xué)定義:        式中的 pryUp,就是在進(jìn)行上面這個(gè)式子的運(yùn)算。因此,可以直接用OpenCV進(jìn)行拉普拉斯運(yùn)算:   將降采樣之后的圖像再進(jìn)行上采樣操作,然后與之前還沒降采樣的原圖進(jìn)行做差得到殘差圖!為還原圖像做信息的準(zhǔn)備! 也就是說,拉普拉斯金字塔是通過源圖像減去先縮小后再放大的圖像的一系列圖像構(gòu)成的。保留的是殘差!為圖像還原做準(zhǔn)備! 整個(gè)拉普拉斯金字塔運(yùn)算過程可以通過下圖來概括:                      所以,我們可以將拉普拉斯金字塔理解為高斯金字塔的逆形式。 另外再提一點(diǎn),關(guān)于圖像金字塔非常重要的一個(gè)應(yīng)用就是實(shí)現(xiàn)圖像分割。圖像分割的話,先要建立一個(gè)圖像金字塔,然后在G_i和G_i+1的像素直接依照對(duì)應(yīng)的關(guān)系,建立起”父與子“關(guān)系。而快速初始分割可以先在金字塔高層的低分辨率圖像上完成,然后逐層對(duì)分割加以優(yōu)化。 注意:上采樣和下采樣是非線性處理,不可逆,有損的處理! 2.3 DOG金字塔(Difference of Gaussian-DOG) 通俗描述:就是把同一張圖像在不同的參數(shù)下做高斯模糊之后的結(jié)果相減,得到的輸出圖像。稱為高斯不同(DOG)。高斯不同是圖像的內(nèi)在特征,在灰度圖像增強(qiáng)、角點(diǎn)檢測中經(jīng)常用到 理論描述:差分金字塔,DOG(Difference of Gaussian)金字塔是在高斯金字塔的基礎(chǔ)上構(gòu)建起來的,其實(shí)生成高斯金字塔的目的就是為了構(gòu)建DOG金字塔。DOG金字塔的第1組第1層是由高斯金字塔的第1組第2層減第1組第1層得到的。以此類推,逐組逐層生成每一個(gè)差分圖像,所有差分圖像構(gòu)成差分金字塔。概括為DOG金字塔的第0組第l層圖像是由高斯金字塔的第0組第i+1層減第0組第i層得到的。 DOG金字塔的構(gòu)建可以用下圖描述:           每一組在層數(shù)上,DOG金字塔比高斯金字塔少一層。后續(xù)Sift特征點(diǎn)的提取都是在DOG金字塔上進(jìn)行的。 //金字塔(圖像的上采樣和降采樣) 效果圖: 1降采樣: 
 2上采樣 
 分析: 圖像經(jīng)過一次下采樣后尺寸變?yōu)樵瓉淼?/4,由高分辨率變?yōu)榈头直媛实膱D像;而且由于下采樣過程會(huì)丟失信息,所以對(duì)降采樣后的圖像進(jìn)行上采樣重建時(shí)會(huì)發(fā)現(xiàn),重建后的圖像變得模糊。 3 拉普拉斯金字塔 
 分析:拉普拉斯金字塔代表著高斯金字塔進(jìn)行下采樣時(shí)丟失的信息。 4 高斯不同 (差分金字塔第一組第一層) 
 (差分金字塔第一組第二層) 
 分析:同一張圖像在不同的參數(shù)下做高斯模糊之后的結(jié)果相減,得到的輸出圖像,即高斯不同圖像。SIFT特征點(diǎn)的提取都是在DOG金字塔上進(jìn)行的。 | 
|  |