在 C 中用高斯模糊平滑影象

平滑,也稱為模糊,是影象處理中最常用的操作之一。

平滑操作的最常見用途是減少影象中的噪聲以進行進一步處理。

有許多演算法可以執行平滑操作。

我們將看一個用於模糊影象的最常用濾鏡之一,使用 OpenCV 庫函式 GaussianBlur()高斯濾波器。該濾波器專門用於消除影象中的高頻噪聲

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv){

    Mat image , blurredImage;

    // Load the image file
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR);

    // Report error if image could not be loaded
    if(!image.data){
        cout<<"Error loading image" << "\n";
        return -1;
    }

    // Apply the Gaussian Blur filter. 
    // The Size object determines the size of the filter (the "range" of the blur)
    GaussianBlur( image, blurredImage, Size( 9, 9 ), 1.0);

    // Show the blurred image in a named window
    imshow("Blurred Image" , blurredImage);

    // Wait indefinitely untill the user presses a key
    waitKey(0);

    return 0;
}

有關詳細的數學定義和其他型別的過濾器,你可以檢視原始文件