這篇文章主要為大家展示了“C++ OpenCV圖像上如何實現(xiàn)采樣和降采樣”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“C++ OpenCV圖像上如何實現(xiàn)采樣和降采樣”這篇文章吧。
創(chuàng)新互聯(lián)憑借專業(yè)的設計團隊扎實的技術(shù)支持、優(yōu)質(zhì)高效的服務意識和豐厚的資源優(yōu)勢,提供專業(yè)的網(wǎng)站策劃、網(wǎng)站制作、成都網(wǎng)站設計、網(wǎng)站優(yōu)化、軟件開發(fā)、網(wǎng)站改版等服務,在成都十多年的網(wǎng)站建設設計經(jīng)驗,為成都上千家中小型企業(yè)策劃設計了網(wǎng)站。
圖像金字塔概念
圖像金字塔是一種以多分辨率來解釋圖像的有效但概念簡單的結(jié)構(gòu)。應用于圖像分割,機器視覺和圖像壓縮。一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低,且來源于同一張原始圖的圖像集合。其通過梯次向下采樣獲得,直到達到某個終止條件才停止采樣。金字塔的底部是待處理圖像的高分辨率表示,而頂部是低分辨率的近似。我們將一層一層的圖像比喻成金字塔,層級越高,則圖像越小,分辨率越低。
常見的兩類圖像金字塔:
高斯金字塔 ( Gaussianpyramid): 用來向下采樣,主要的圖像金字塔
拉普拉斯金字塔 (Laplacianpyramid): 用來從金字塔低層圖像重建上層未采樣圖像,在數(shù)字圖像處理中也即是預測殘差,可以對圖像進行最大程度的還原,配合高斯金字塔一起使用。
兩者的簡要區(qū)別:高斯金字塔用來向下降采樣圖像,而拉普拉斯金字塔則用來從金字塔底層圖像中向上采樣重建一個圖像。
相關(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 .
目標圖片 它有指定的對象和相同的類型和原圖片
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:
目標圖像大小。默認情況下,它是計算尺寸((SRC.列+ 1)/ 2、(SRC.行+ 1)/ 2)。但在任何情況下,應滿足以下條件:
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)雖然它實際上可以用來構(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 .
目標圖片 它有指定的對象和相同的類型和原圖片
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:
目標圖像大小。默認情況下,它是計算尺寸((SRC.列+ 1)/ 2、(SRC.行+ 1)/ 2)。但在任何情況下,應滿足以下條件:
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)核的源圖像進行卷積:
Then, it downsamples the image by rejecting even rows and columns.
然后,它再下采樣圖像的行和列。
先上干貨,演示效果
代碼演示
新建一個項目opencv-0013,配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.并加載我們常用的那個圖片顯示出來,這次我們直接顯示兩個相同的圖片,第一個是原圖,第二個是效果圖
代碼里面我們通過了按鍵來控制效果圖采用的上采樣還是下采樣
執(zhí)行效果
按了U鍵后效果
按了D鍵效果
以上是“C++ OpenCV圖像上如何實現(xiàn)采樣和降采樣”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!