在 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;
}
有关详细的数学定义和其他类型的过滤器,你可以查看原始文档 。