C++使用高斯模糊处理图像

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 

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;
}

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