本系列的目的是详解demo代码,快速学习OpenCV相关操作
平滑处理
//平滑处理
//指定输入图像,进行平滑操作后输出
#include <opencv2/opencv.hpp>
void example2_5( const cv::Mat & image ) {
//创建两个窗口显示输入和输出的图像
cv::namedWindow( "Example2_5-in", cv::WINDOW_AUTOSIZE );
cv::namedWindow( "Example2_5-out", cv::WINDOW_AUTOSIZE );
// 在窗口中显示输入图像
cv::imshow( "Example2_5-in", image );
// 创建一个图像来保存平滑后的输出图像
cv::Mat out;
// ( 可以使用不同的平滑算子 GaussianBlur(), blur(), medianBlur() or bilateralFilter(). )
// 对image每个像素周围5*5的区域进行高斯平滑处理,写入out
cv::GaussianBlur( image, out, cv::Size(5,5), 3, 3);
// 对out进行相同的高斯处理,再写入out
// 这一步是为了说明输入、输出图像可以是相同的,这种情况下会根据所需自动临时分配内存
cv::GaussianBlur( out, out, cv::Size(5,5