图像的噪声
就是只图像在摄取的过程中或者是在传输的过程中受到随机干扰信号
我们常见的噪声有椒盐噪声和高斯噪声
椒盐噪声:出现的位置随机,但是噪声的幅值基本相同的
高斯噪声:出现位置固定,但是噪声的幅值基本是固定的
怎么才能把不需要的噪声滤掉呢,其中最基本的就是均值滤波和中值滤波
均值滤波:线性平均滤波器,它通过求窗口内所有像素的平均值来得到中心像素点的像素值。这样的好处是可以有效的平滑图像,降低图像的尖锐程度,降低噪声。但缺点是不能消除噪声,而且将周围的景物的像素点平均了,变得模糊了。
为了改善这么一个情况可以加上加权平均,也就是这样,在前面用到的改善对比度的时候用的掩膜也是这么个道理
中值滤波:对模板里的像素来个简单的冒泡排序,然后求个中值代替中心点像素就ok了
因为椒盐噪声的幅值近似的,而且分布在不同的地方,附近有没有被污染的和被污染的像素点,所以用中值来代替
椒盐像素点效果很好。
blur(src1, src, Size(11, 11), Point(-1, -1));
@param src input image; it can have any number of channels, which are processed independently, but
the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.//源图
@param dst output image of the same size and type as src.输出
@param ksize blurring kernel size.就是上图那个框框
@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel
center.默认(-1,-1)就好,自动是kernel的中心
@param borderType border mode used to extrapolate pixels outside of the image, see cv::BorderTypes
@sa boxFilter, bilateralFilter, GaussianBlur, medianBlur
*/
CV_EXPORTS_W void blur( InputArray src, OutputArray dst,
Size ksize, Point anchor = Point(-1,-1),
int borderType = BORDER_DEFAULT );
哈哈,科比变模糊了