用c++ opencv写一个高斯增强示例
时间: 2024-09-12 13:10:17 浏览: 36
混合高斯背景建模的例子(基于c++的opencv实现)
在C++中使用OpenCV库编写一个简单的高斯滤波(Gaussian Blurring)增强图像的例子,你可以参考以下步骤:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(int argc, char** argv)
{
// 读取图像
cv::Mat srcImage = cv::imread("input.jpg", cv::IMREAD_COLOR); // 替换为你需要处理的图片路径
if (srcImage.empty())
{
std::cout << "Error reading image" << std::endl;
return -1;
}
// 定义高斯核大小,一般选择奇数,如5x5、7x7等
int kernelSize = 5;
// 创建高斯核,OpenCV内部已经预设了各种尺度的标准高斯核
cv::Mat kernel = cv::getGaussianKernel(kernelSize, 0); // 第二个参数为标准差,默认为0,表示自动计算
// 应用高斯滤波
cv::Mat blurredImage;
cv::filter2D(srcImage, blurredImage, -1, kernel); // 使用-1作为第三个参数表示使用默认的内核类型
// 显示原图和模糊后的图像
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", srcImage);
namedWindow("Gaussian Enhanced Image", WINDOW_NORMAL);
imshow("Gaussian Enhanced Image", blurredImage);
// 等待用户按键,然后关闭窗口
waitKey(0);
destroyAllWindows();
return 0;
}
```
阅读全文