網(wǎng)站一般如何做搜索功能網(wǎng)站推廣公司排行榜
- 操作系統(tǒng):ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
函數(shù)主要是對圖像進行模糊處理并將其降采樣。
默認情況下,輸出圖像的大小計算為 Size((src.cols+1)/2, (src.rows+1)/2),但無論如何,以下條件必須滿足:
∣ dstsize.width ? 2 ? s r c . c o l s ∣ ≤ 2 ∣ dstsize.height ? 2 ? s r c . r o w s ∣ ≤ 2 \begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array} ∣dstsize.width?2?src.cols∣≤2∣dstsize.height?2?src.rows∣≤2?
該函數(shù)執(zhí)行高斯金字塔構(gòu)建中的降采樣步驟。首先,它使用以下核對源圖像進行卷積:
1 256 [ 1 4 6 4 1 4 16 24 16 4 6 24 36 24 6 4 16 24 16 4 1 4 6 4 1 ] \frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix} 2561? ?14641?41624164?62436246?41624164?14641? ?
然后,通過丟棄偶數(shù)行和列來對圖像進行降采樣。
pyrDown() 函數(shù)是 OpenCV 中用于圖像金字塔處理的一個函數(shù)。它主要用于圖像降采樣,即將圖像縮小到較小的分辨率。這是構(gòu)建圖像金字塔的基礎(chǔ)步驟之一,常用于圖像處理和計算機視覺任務(wù)中,例如特征檢測、對象識別等。
函數(shù)原型
void cv::pyrDown
(InputArray src,OutputArray dst,const Size & dstsize = Size(),int borderType = BORDER_DEFAULT
)
參數(shù)
- 參數(shù)src 輸入圖像。
- 參數(shù)dst 輸出圖像;具有指定的大小和與輸入圖像相同的類型。
- 參數(shù)dstsize 輸出圖像的大小。
- 參數(shù)borderType 像素外推方法,參見 BorderTypes(不支持 BORDER_CONSTANT)。
代碼示例
#include <iostream>
#include <opencv2/opencv.hpp>int main()
{// 加載圖像cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/erik.jpg", cv::IMREAD_COLOR );if ( img.empty() ){std::cout << "無法加載圖像,請檢查路徑是否正確。" << std::endl;return -1;}cv::Size sz2Sh( 400, 600 );cv::resize( img, img, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );// 使用 pyrDown 對圖像進行降采樣cv::Mat smaller_img;cv::pyrDown( img, smaller_img );// 顯示結(jié)果cv::namedWindow( "Original Image", cv::WINDOW_NORMAL );cv::imshow( "Original Image", img );cv::namedWindow( "Downsampled Image", cv::WINDOW_NORMAL );cv::imshow( "Downsampled Image", smaller_img );cv::waitKey( 0 ); // 等待按鍵return 0;
}