赞
踩
函数主要是对图像进行模糊处理并将其降采样。
默认情况下,输出图像的大小计算为 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
|dstsize.width∗2−src.cols|≤2|dstsize.height∗2−src.rows|≤2
该函数执行高斯金字塔构建中的降采样步骤。首先,它使用以下核对源图像进行卷积:
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} [1464141624164624362464162416414641]
然后,通过丢弃偶数行和列来对图像进行降采样。
pyrDown() 函数是 OpenCV 中用于图像金字塔处理的一个函数。它主要用于图像降采样,即将图像缩小到较小的分辨率。这是构建图像金字塔的基础步骤之一,常用于图像处理和计算机视觉任务中,例如特征检测、对象识别等。
void cv::pyrDown
(
InputArray src,
OutputArray dst,
const Size & dstsize = Size(),
int borderType = BORDER_DEFAULT
)
#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 ); // 显示结果 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; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。