C++使用高斯模糊处理图像
cv::GaussianBlur
是 OpenCV 中用于对图像进行高斯模糊处理的函数。高斯模糊是一种常用的图像滤波方法,它可以减少图像中的噪声,并平滑图像以降低细节级别。
void cv::GaussianBlur(const cv::Mat& src, cv::Mat& dst, cv::Size ksize, double sigmaX, double sigmaY = 0, int borderType = cv::BORDER_DEFAULT);参数说明:src:输入图像,要进行高斯模糊处理的图像。dst:输出图像,模糊后的图像将存储在这里。ksize:高斯核的大小,通常为奇数的正整数。它决定了模糊程度,较大的值会导致更强的模糊。sigmaX:在 x 方向上的标准差,控制高斯核函数的宽度。较大的值会导致更强的模糊。sigmaY:在 y 方向上的标准差,通常默认为0。如果设置为0,则使用与 sigmaX 相同的值。borderType:边界填充类型,用于处理图像边界外的像素。通常使用默认值 cv::BORDER_DEFAULT。
使用高斯模糊处理图片的案例
#include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat inputImage = cv::imread("input.jpg");// 检查图像是否成功加载if (inputImage.empty()) {std::cerr << "无法加载图像" << std::endl;return -1;}// 创建一个与输入图像相同大小的输出图像cv::Mat outputImage;// 定义高斯内核大小和标准差int kernelSize = 5; // 内核大小(奇数值推荐)double sigma = 1.0; // 标准差// 应用高斯模糊cv::GaussianBlur(inputImage, outputImage, cv::Size(kernelSize, kernelSize), sigma);// 显示原始图像和模糊后的图像cv::imshow("原始图像", inputImage);cv::imshow("高斯模糊后的图像", outputImage);// 等待用户按下键盘任意键后关闭窗口cv::waitKey(0);return 0;
}