该篇章主要实现了向一幅图像中分别加入椒盐噪声和高斯噪声,体会两种不同噪声的区别;并通过三种线性邻域滤波(方框滤波,均值滤波和高斯滤波)和两种非线性滤波(中值滤波和双边滤波)对图像进行去噪。在其中运用轨迹条进行调节参数以达到最优的滤波效果。
code:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
//#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;
Mat imagey1,image,g_image4, g_image5;
int g_nMedianBlurValue = 10;//中值滤波参数值
int g_nBilateralFilterValue = 10;//双边滤波参数值
Mat addSaltNoise(const Mat srcImage, int n); //添加椒盐噪声
double generateGaussianNoise(double mu, double sigma); //生成高斯噪声
Mat addGaussianNoise(Mat & srcImage); //给图像添加高斯噪声
//轨迹条回调函数
static void on_MedianBlur(int, void *); //中值滤波器
static void on_BilateralFilter(int, void *); //双边滤波器
int main()
{
/*Mat src = imread("pic/test1/a.jpg");
Canny(src,src,3,9,3