blurred_img = cv2.GaussianBlur(img, (5, 5), 0) c++ 示例
时间: 2024-11-27 15:19:53 浏览: 10
在OpenCV的C++版本中,高斯模糊的操作也是通过`cv::GaussianBlur()`函数完成的。以下是一个简单的例子,展示了如何使用C++实现高斯模糊:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 读取图像
Mat img = imread("image.jpg", IMREAD_GRAYSCALE); // 如果是彩色图像需要改为IMREAD_COLOR
if (img.empty()) {
std::cout << "Could not read the image!" << std::endl;
return -1;
}
// 定义高斯滤波器的参数,这里 kernelSize 是一个大小为 (5, 5) 的整型元组,sigmaX=0 表示自动计算标准差
Size kernelSize(5, 5);
double sigmaX = 0;
// 应用高斯模糊
Mat blurred_img;
GaussianBlur(img, blurred_img, kernelSize, sigmaX);
// 显示原始和模糊后的图像
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", img);
namedWindow("Blurred Image", WINDOW_NORMAL);
imshow("Blurred Image", blurred_img);
waitKey(0); // 等待用户按键
return 0;
}
```
这个例子首先读取图像,然后创建一个大小为5x5的高斯核,并将它应用到图像上。最后,显示原始图像和模糊后的图像供比较。
阅读全文