一:低通滤波器

低通滤波器的目标是降低图像的变化率,比如将第一个像素替换为该像素周围像素的均值。这样就可以平滑并替代那些强度变化明显的区域。

OpenCV 使用blur 函数做到:

dst = cv2.blur(image,(5,5));
# dst -- 处理后的图像
# image -- 待平滑处理的图像
#(5,5) -- 低通滤波器的大小

简单使用示例:

#!/usr/bin/env python
# encoding: utf-8
import cv2
import numpy as np
img = cv2.imread("2.jpg", 0)
result = cv2.blur(img, (5,5))  cv2.imshow("Origin", img)
cv2.imshow("Blur", result)  cv2.waitKey(0)
cv2.destroyAllWindows()  

图像效果:

相同滤波效果函数:boxFilter

result1 = cv2.boxFilter(img, -1, (5, 5))  

二:高斯滤波

与低通滤波器不同,低通滤波器中每个像素的权重是相同的,即滤波器是线性的。而高斯滤波器中像素的权重与其距中心像素的距离成比例。

在一些需要对一个像素的周围的像素给予更多的重视,可以通过分配权重来重新计算这些周围点值。这可通过高斯函数(钟形函数,即喇叭形数)

的权重方案来解决。

cv::GaussianBlur

result = cv2.GaussianBlur(img,(5,5),1.5)  

三:中值滤波器

中值滤波器是非线性滤波器,它对消除椒盐现象特别有用,

result = cv2.medianBlur(image,5)  

image -- 原图像

5  -- 孔径尺寸,一个大于1的奇数。5 中值滤波器会使用 5 x 5 的范围来计算。即对像素的中心值及其 5 x 5 邻域组成了一个数值集,对其进行处理计算

,当前像素被其中值替换掉。

如果在某个像素周围有白色或黑色的像素,这些白色或黑色的像素不会选择作为中值(最大或最小值不用),而是被替换为邻域值,示例如下:

#!/usr/bin/env python
# encoding: utf-8
import cv2
import numpy as np def salt(img, n):    for k in range(n):    i = int(np.random.random() * img.shape[1]);    j = int(np.random.random() * img.shape[0]);    if img.ndim == 2:     img[j,i] = 255    elif img.ndim == 3:     img[j,i,0]= 255    img[j,i,1]= 255    img[j,i,2]= 255    return img   img = cv2.imread("2.jpg", 0)
result = salt(img, 500)
median = cv2.medianBlur(result, 5)  cv2.imshow("Salt", result)
cv2.imshow("Median", median)  cv2.waitKey(0)  

效果图:

中值滤波不会处理最大和最小值,所以就不会受到噪声的影响。相反如果直接采用 blur(低通滤波器)进行均值滤波,

则不会区分这些噪声点,滤波后的图像会受到噪声的影响。

中值滤波器的在处理边缘也有优势。但中值滤波器会清除某些区域的纹理(如背景中的树)

参考和转载:

http://blog.csdn.net/sunny2038/article/details/9155893

Python OpenCV 滤波器 使用(八)相关推荐

  1. python+OpenCv笔记(八):图像噪声(椒盐噪声、高斯噪声)

    由于图像采集.处理.传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理.常见的图像噪声有高斯噪声.椒盐噪声等. 一.椒盐噪声 椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一 ...

  2. [Python图像处理] 三十八.OpenCV图像增强和图像去雾万字详解(直方图均衡化、局部直方图均衡化、自动色彩均衡化)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  3. [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充

    一.学习目标 了解什么是ROI 了解floodFill的使用方法 如有错误欢迎指出~ 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[pyth ...

  5. Python+OpenCV图像处理实验

    目录 1.灰度化功能 2.反转功能 3.通道分离功能 4.噪音.滤波功能 5.高斯双边滤波功能 6.均值偏移滤波功能 7.图像二值化功能 8.Canny边缘检测功能 9.直线检测功能 10.圆形检测功 ...

  6. Python+Opencv实现多种形状的检测

    目录 一.Hough变换是什么? 二.Hough变换原理简介 三.Hough变换实现步骤 四.Hough变换直线检测代码实现及效果展示 五.Hough变换圆形检测代码实现及效果展示 六.基于Hough ...

  7. 【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)

    转载请注明详细地址 本文简单介绍了图像常见几何特征的概念以及求解方法 本文介绍了Python和opencv求解几何特征的常用方法 目录 其他形状外接轮廓的方法可以参考:<OpenCV-Pytho ...

  8. Python+Opencv简易车牌识别(二):形态学运算,HSV颜色空间筛选与图像分割

    注:这是依然一个简单的车牌识别demo 1.前言 在上一篇Python+Opencv简易车牌识别(一):基于HSV颜色空间的图像分割中,我们讲了如何仅基于颜色来进行简单粗暴的车牌分割.今天我们考虑对图 ...

  9. Python+OpenCV:Canny边缘检测

    Python+OpenCV:Canny边缘检测 理论 Canny边缘检测是目前比较流行的边缘检测算法,它由John F. Canny发明. 1. 这是一个多阶段的算法. 2. 降噪:由于边缘检测容易受 ...

最新文章

  1. spring简单总结part2
  2. Mac-使用技巧之快捷键
  3. linux登oracle登陆不了,oracle: linux服务器本机不能登陆的解决
  4. 计算机设备安全检查表,信息安全检查表
  5. WindowsServer2012 R2 64位中文标准版(IIS8.5)下手动搭建PHP环境详细图文教程(二)安装IIS8.5...
  6. TensorLayer MNIST
  7. 蝴蝶曲线python_ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
  8. 学习_HTML5_day2
  9. 继BAT之后 第四大巨头是谁
  10. dell idrac 复位_DELL 服务器 装系统前初始化(恢复出厂、超线程、虚拟化、iDRAC设置)...
  11. python程序设计知识点汇总_Python入门知识点汇总
  12. Spring容器扩展机制
  13. 080 matplolib模块
  14. 无缘无故的推荐弹窗,wps的锅,解决办法
  15. matlab里方框一个叉号,怎么在word文档里添加小方框中打叉的符号
  16. CICD持续集成部署系列2-使用 harbor 搭建 Docker 私有仓库
  17. Ubuntu系统将域名指向指定IP
  18. 学习java之java帝国的诞生
  19. 微信域名防红防屏蔽技术,微信域名总是被封要怎么解决
  20. 机器学习因子:在线性因子模型中捕捉非线性

热门文章

  1. ObjectBox[八] 关系
  2. 下载FTP账号密码链接包含@:
  3. 出现Destination Host Unreachable,解决步骤
  4. 分享个人WordPress博客主题
  5. 16种重要编程语言概览
  6. Unity的DraCall和Batch是什么,UI如何优化性能
  7. vue中template中的scope到底是个什么?
  8. opencv中求图像像素值中位数
  9. JavaFX-TitledPane
  10. sql注入(最简单的注入)