c++均值滤波:cv::blur
cv::blur
是 OpenCV 中用于进行均值滤波的函数。均值滤波是一种基本的图像平滑处理方法,它用于减小图像中的噪声,平滑图像并模糊细节。
以下是 cv::blur
的一般形式:
void cv::blur(cv::InputArray src, cv::OutputArray dst, cv::Size ksize, cv::Point anchor = cv::Point(-1,-1), int borderType = cv::BORDER_DEFAULT);
src
是输入图像,通常是一个cv::Mat
对象。dst
是输出图像,通常也是一个cv::Mat
对象,用于存储滤波后的结果。ksize
是核的大小,通常使用cv::Size
类型表示,表示核的宽度和高度。anchor
是锚点位置,通常是cv::Point
类型表示,默认值为 (-1, -1),表示核的中心。borderType
是边界处理类型,通常使用默认值cv::BORDER_DEFAULT
。
例如,以下代码演示了如何对输入图像进行均值滤波:
cv::Mat inputImage = cv::imread("input.jpg");
cv::Mat outputImage;
cv::Size kernelSize(5, 5);
cv::blur(inputImage, outputImage, kernelSize);
cv::imshow("Input Image", inputImage);
cv::imshow("Blurred Image", outputImage);
cv::waitKey(0);
在这个示例中,cv::blur
函数对 inputImage
进行了均值滤波,并将结果存储在 outputImage
中。滤波核的大小为5x5。最后,通过 cv::imshow
函数显示了原始图像和滤波后的图像。
均值滤波可以帮助消除图像中的噪声,但也会模糊图像中的细节。核的大小和形状可以影响滤波效果,你可以根据具体需求调整它们。
c++均值滤波案例
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
#include <iostream>
#include <fstream>
using namespace cv; //包含cv命名空间
int main()
{
//【1】载入原始图
Mat srcImage = imread("1.jpg");
//【2】显示原始图
imshow("均值滤波【原图】", srcImage);
//【3】进行均值滤波操作
Mat dstImage;
blur(srcImage, dstImage, Size(7, 7));
//【4】显示效果图
imshow("均值滤波【效果图】", dstImage);
waitKey(0);
return 0;
}