opencv c++模糊细节
时间: 2023-09-02 22:12:19 浏览: 114
在 OpenCV 中,可以使用函数 `cv::blur()` 和 `cv::GaussianBlur()` 来实现图像的模糊处理。这两个函数都可以用于对图像进行平滑滤波,达到模糊效果,但它们的实现原理略有不同。
`cv::blur()` 函数实现了一个简单的均值滤波器,可以对图像进行平均处理,即对每个像素点周围的像素值求平均数,得到该像素点的新值。
`cv::GaussianBlur()` 函数则实现了高斯滤波器,该滤波器对图像进行加权平均处理,权值由高斯函数决定,可以更好地保留图像的细节信息。
下面是一些使用这两个函数的示例代码:
```c++
// 使用 cv::blur() 进行平均滤波
cv::Mat src = cv::imread("image.jpg");
cv::Mat dst;
cv::blur(src, dst, cv::Size(3,3)); // 3x3 的卷积核
cv::imshow("Blur Image", dst);
cv::waitKey(0);
// 使用 cv::GaussianBlur() 进行高斯滤波
cv::Mat src = cv::imread("image.jpg");
cv::Mat dst;
cv::GaussianBlur(src, dst, cv::Size(3,3), 0); // 3x3 的卷积核,sigma=0
cv::imshow("Gaussian Blur Image", dst);
cv::waitKey(0);
```
其中,第一个参数是输入图像,第二个参数是输出图像,第三个参数是滤波器的卷积核大小,第四个参数是高斯滤波的 sigma 值,通常为0。这些函数还有其他可选参数,具体可以查看 OpenCV 官方文档。
阅读全文