Note:
1消除图像中的噪声成分叫做图像的平滑化或滤波操作。
2信号或图像的能量大部分集中在幅度谱的低频和中频段,而在较高频段,有用信息经常被噪声淹没。
3滤波:低通就是模糊,高通就是锐化。
1.线性滤波
(1)方框滤波:boxFilter 用不同权重结合一个小邻域的像素,得到处理效果。
boxFilter( g_srcImage, g_dstImage1, -1,Size( g_nBoxFilterValue+1, g_nBoxFilterValue+1));
//src dst ddpeth=-1表示使用原图深度 内核大小
(2)均值滤波:blur 加权系数相等的方框操作即归一化。
blur( g_srcImage, g_dstImage2, Size( g_nMeanBlurValue+1, g_nMeanBlurValue+1), Point(-1,-1));
//src dst 内核大小 锚点(被平滑的点)在中心
(3)高斯滤波:GaussianBlur 对整幅图加权平均。//ksize参数为奇数
GaussianBlur( g_srcImage, g_dstImage3, Size( g_nGaussianBlurValue*2+1, g_nGaussianBlurValue*2+1 ), 0, 0);
//src dst 内核大小 x方向的标准偏差 y方向的标准偏差
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;
//-----------------------------------【全局变量声明部分】-------------------------------
Mat g_srcImage,g_dstImage1,g_dstImage2,g_dstImage3;//存储图片的Mat类型
int g_nBoxFilterValue=3; //方框滤波参数值
int g_nMeanBlurValue=3; //均值滤波参数值
int g_nGaussianBlurValue=3; //高斯滤波参数值
//-----------------------------------【全局函数声明部分】-------------------------------
//三个轨迹条的回调函数
static void on_BoxFilter(int, void *); //方框滤波
static void on_MeanBlur(int, void *); //均值滤波
static void on_GaussianBlur(int, void *); //高斯滤波
//-----------------------------------【main( )函数】----------------------------------
int main( )
{
//改变console字体颜色
system("