溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

發(fā)布時(shí)間:2021-11-26 10:30:56 來(lái)源:億速云 閱讀:587 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣”這篇文章吧。

圖像金字塔概念

圖像金字塔是一種以多分辨率來(lái)解釋圖像的有效但概念簡(jiǎn)單的結(jié)構(gòu)。應(yīng)用于圖像分割,機(jī)器視覺(jué)和圖像壓縮。一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低,且來(lái)源于同一張?jiān)紙D的圖像集合。其通過(guò)梯次向下采樣獲得,直到達(dá)到某個(gè)終止條件才停止采樣。金字塔的底部是待處理圖像的高分辨率表示,而頂部是低分辨率的近似。我們將一層一層的圖像比喻成金字塔,層級(jí)越高,則圖像越小,分辨率越低。

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

常見(jiàn)的兩類(lèi)圖像金字塔:

  • 高斯金字塔 ( Gaussianpyramid): 用來(lái)向下采樣,主要的圖像金字塔

  • 拉普拉斯金字塔 (Laplacianpyramid): 用來(lái)從金字塔低層圖像重建上層未采樣圖像,在數(shù)字圖像處理中也即是預(yù)測(cè)殘差,可以對(duì)圖像進(jìn)行最大程度的還原,配合高斯金字塔一起使用。

兩者的簡(jiǎn)要區(qū)別:高斯金字塔用來(lái)向下降采樣圖像,而拉普拉斯金字塔則用來(lái)從金字塔底層圖像中向上采樣重建一個(gè)圖像。

相關(guān)API

上采樣  PyrUp

void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size());

Parameters:    

    src – Source image.

    原圖片

    dst – Destination image. It has the specified size and the same type as src .

    目標(biāo)圖片 它有指定的對(duì)象和相同的類(lèi)型和原圖片

    dstsize –
    Size of the destination image. By default, it is computed as Size(src.cols*2, (src.rows*2) . But in any case, the following conditions should be satisfied:

    目標(biāo)圖像大小。默認(rèn)情況下,它是計(jì)算尺寸((SRC.列+ 1)/ 2、(SRC.行+ 1)/ 2)。但在任何情況下,應(yīng)滿足以下條件:

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

The function performs the upsampling step of the Gaussian pyramid construction though it can actually be used to construct the Laplacian pyramid. First, it upsamples the source image by injecting even zero rows and columns and then convolves the result with the same kernel as in pyrDown() multiplied by 4.

該函數(shù)執(zhí)行采樣步驟的高斯金字結(jié)構(gòu)雖然它實(shí)際上可以用來(lái)構(gòu)建拉普拉斯金字塔。首先,它下采樣原圖像的行和列,然后用相同的內(nèi)核卷積的結(jié)果作為pyrdown()乘以4。

下采樣  PyrDown

void pyrDown(InputArraysrc, OutputArraydst, const Size&dstsize=Size());

Parameters:   
    src – Source image.  

    原圖片
    dst – Destination image. It has the specified size and the same type as src .   

    目標(biāo)圖片 它有指定的對(duì)象和相同的類(lèi)型和原圖片
    dstsize –
    Size of the destination image. By default, it is computed as Size((src.cols+1)/2, (src.rows+1)/2) . But in any case, the following conditions should be satisfied:

    目標(biāo)圖像大小。默認(rèn)情況下,它是計(jì)算尺寸((SRC.列+ 1)/ 2、(SRC.行+ 1)/ 2)。但在任何情況下,應(yīng)滿足以下條件:

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

The function performs the downsampling step of the Gaussian pyramid construction. First, it convolves the source image with the kernel:

該函數(shù)執(zhí)行高斯金字塔結(jié)構(gòu)下采樣的步驟。首先,它與內(nèi)核的源圖像進(jìn)行卷積:

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

Then, it downsamples the image by rejecting even rows and columns.

然后,它再下采樣圖像的行和列。

先上干貨,演示效果

代碼演示

新建一個(gè)項(xiàng)目opencv-0013,配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫(xiě)入#include和main方法.并加載我們常用的那個(gè)圖片顯示出來(lái),這次我們直接顯示兩個(gè)相同的圖片,第一個(gè)是原圖,第二個(gè)是效果圖

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

代碼里面我們通過(guò)了按鍵來(lái)控制效果圖采用的上采樣還是下采樣

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

執(zhí)行效果

按了U鍵后效果

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

按了D鍵效果

C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣

以上是“C++ OpenCV圖像上如何實(shí)現(xiàn)采樣和降采樣”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI