c++均值滤波:cv::blur

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 
#include 
#include 
#include 

using namespace std;
using namespace cv;
#include 
#include 
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;
}

c++均值滤波:cv::blur_第1张图片

你可能感兴趣的:(#,C++视觉处理,c++,均值算法,opencv)