平滑空间滤波器
2016-03-25 21:29
218 查看
平滑线性滤波器,均值滤波
平滑线性空间滤波器的输出(响应)是包含在滤波器模板邻域内的像素的简单平均值。这些滤波器有时也称为均值滤波器。也可以把它们归入低通滤波器。这种处理的结果降低了图像灰度的尖锐变化。由于典型的随机噪声由灰度级的急剧变化组成,因此常见的平滑处理的应用就是降噪。
然而,由于图像边缘(几乎总是一幅图像希望有的特性)也是由图像灰度尖锐变化带来的特性,所以均值滤波器处理还是存在着不希望有的边缘模糊的负面效应。
下面这幅图中的是最为常见的简单平均的滤波器模板:
一种加权平均的均值滤波器:
在这个例子所示的模板中,中心位置的系数最大,因此在均值计算中可以为该像素提供更大的权重。其他像素离中心越近就赋予越大的权重。
这种加权重的策略的目的是,在平滑处理中,试图降低模糊。
均值滤波公式
openCV的均值滤波器:
void menValueFilters(){ auto im = imread("/Users/qixiangzhang/Desktop/openCV/jy.png"); Mat dstIm_5; Mat dstIm_9; Mat dstIm_15; blur(im, dstIm_5, Size(5,5)); blur(im, dstIm_9, Size(9,9)); blur(im, dstIm_15, Size(15,15)); imshow("Original",im); imshow("blur5", dstIm_5); imshow("blur9", dstIm_9); imshow("blur15", dstIm_15); }
原图&结果:
滤波后的图像中可能会有黑边。这是由于我们用0(黑色)填充原图像的边界,经滤波后,再去除填充区域的结果,某些黑的混入了滤波后的图像。对于使用较大滤波器平滑的图像,这就成了问题。
统计排序滤波器,中值滤波
统计排序滤波器是一种非线性空间滤波器,这种滤波器的响应以滤波器包围的图像的像素的排序为基础,然后使用统计排序结果决定的值代替中心像素的值。这一类中最知名的就要数中值滤波器:将邻域的灰度排序,将中间值赋予滤波后图像中的相应像素点。对处理椒盐噪声(脉冲噪声)十分有效。
摘自96页:
统计排序滤波器除了中值滤波还有其他的选择方式,例如选择最大值(最大值滤波器),最小值等。
openCV中的中值滤波器:
void midValueFilters(){ auto im = imread("/Users/qixiangzhang/Desktop/openCV/jy.png"); Mat dstIm_5; Mat dstIm_9; Mat dstIm_15; medianBlur(im, dstIm_5, 5); medianBlur(im, dstIm_9, 9); medianBlur(im, dstIm_15, 15); imshow("Original",im); imshow("blur5", dstIm_5); imshow("blur9", dstIm_9); imshow("blur15", dstIm_15); }
相关文章推荐
- Leetcode 116. Populating Next Right Pointers in Each Node
- 【数据结构】二叉树结点插入和前序、中序、后序遍历的递归实现
- Java中的字符串常量池
- 利用动力系统做动画
- poj 3186 Treats for the Cows 动态规划
- 抽屉效果
- 重写(OverRide)与重载(OverlLoad),以及相对应的多态性
- UVA 11584—— Partitioning by Palindromes
- hdu 1754 I Hate It 线段树
- hdu 1754 I Hate It 线段树
- vtkCommand::GetStringFromEventId()
- Linux nautilus文件夹操作
- java的main函数为什么没有返回值
- Linux更新内核的三种方法
- C语言要点笔记
- c和指针详解------指针
- 准备做两件事 1.重现天猫首页.m代码 2.写个iosChart的GPU版
- uvaLive 3222 Joke with Turtles 带权区间调度、覆盖问题 等价转换+线性动归
- bzoj 2588 Spoj 10628. Count on a tree
- Java虚拟机学习之加载机制