图像平滑概述

图像平滑是指受传感器和大气等因素的影响,遥感图像上会出现某些亮度变化过大的区域,或出现一些亮点(也称噪声)。这种为了抑制噪声,使图像亮度趋于平缓的处理方法就是图像平滑。图像平滑实际上是低通滤波,平滑过程会导致图像边缘模糊化。

图像平滑处理算法

 噪声滤除算法可以从设计方法上分为两大类:线性滤波算法、非线性滤波算法

参数说明

src:输入图像,可以是任何通道数的图像,处理时是各通道拆分后单独处理,但图像深度必须是CV_8U, CV_16U, CV_16S, CV_32F 或CV_64F;
    ddepth:输出图像深度(请参考《图像表示的相关概念:图像深度、像素深度、位深的区别和关系》),如果目标图像深度和输入图像深度相同,则传值-1,在Python中此时取值None、0效果也一样,注意ddepth在这里必须传值,不能使用默认值。
    dst:结果图像,其大小和类型都与输入图像相同;
    ksize:卷积核(convolution kernel )矩阵大小,如上概述所述,实际上是相关核(correlation kernel),为一个单通道的浮点数矩阵,如果针对图像不同通道需要使用不同核,则需要将图像进行split拆分成单通道并使用对应核逐个进行处理
    anchor:核矩阵的锚点,用于定位核距中与当前处理像素点对齐的点,默认值(-1,-1),表示锚点位于内核中心,否则就是核矩阵锚点位置坐标,锚点位置对卷积处理的结果会有非常大的影响
    normalize:核矩阵是否归一化处理的标记,为True进行归一化处理,否则不进行归一化处理,默认值为True
    borderType:当要扩充输入图像矩阵边界时的像素取值方法,当核矩阵锚点与像素重合但核矩阵覆盖范围超出到图像外时,函数可以根据指定的边界模式进行插值运算。

过滤器大小:大过滤器(d > 5)非常慢,因此建议在实时应用中使用 d=5,对于需要大量噪声过滤的离线应用,建议使用 d=9。

Sigma 值:为简单起见,您可以将 2 个 sigma 值设置为相同。 如果它们很小(< 10),则滤镜不会有太大的效果,而如果它们很大(> 150),它们会产生非常强烈的效果,使图像看起来“卡通”。

代码实现

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取图片
img = cv2.imread('1.bmp',cv2.IMREAD_GRAYSCALE)
source = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)#均值滤波
result1 = cv2.blur(source, (5,5))
result2 = cv2.blur(source, (7,7))#方框滤波
result3 = cv2.boxFilter(source, -1, (5,5), normalize=1)
result4 = cv2.boxFilter(source, -1, (7,7), normalize=1)#高斯滤波
result5 = cv2.GaussianBlur(source, (3,3), 0)
result6 = cv2.GaussianBlur(source, (15,15), 0)#中值滤波
result7 = cv2.medianBlur(source, 3)#高斯双边滤波
result8 =cv2.bilateralFilter(source, 15, 50, 50)#显示图形
titles = ['Source', 'Blur 5*5', 'Blur 7*7', 'BoxFilter 5*5','BoxFilter 7*7', 'GaussianBlur 3*3', 'GaussianBlur 15*15','medianBlur', 'bilateralFilter']
images = [source, result1, result2, result3,result4, result5, result6, result7, result8]  fig = plt.figure(figsize=(10, 10))#设置大小
for i in range(9):  plt.subplot(3,3,i+1), plt.imshow(images[i], 'gray')  plt.title(titles[i])  plt.xticks([]),plt.yticks([])
plt.show()
fig.savefig('fig.jpg',bbox_inches='tight')

效果展示

参赛话题:学习笔记

Python图像平滑滤波处理(均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波)相关推荐

  1. opencv学习笔记11:图像滤波(均值,方框,高斯,中值)

    为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...

  2. 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波

    邻域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积禅城右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻 ...

  3. 域滤波:方框、高斯、中值、双边滤波

    邻域滤波(卷积) 邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如图左边图像与中间图像卷积禅城右边图像.目标图像中绿色的像素由原图像中蓝色标记的像素计算得到. 通用线性邻域滤波是一种常用的邻 ...

  4. OpenCV函数简记_第三章数字图像的滤波处理(方框,均值,高斯,中值和双边滤波)

    系列文章目录 OpenCV函数简记_第一章数字图像的基本概念(邻域,连通,色彩空间) OpenCV函数简记_第二章数字图像的基本操作(图像读写,图像像素获取,图像ROI获取,图像混合,图形绘制) Op ...

  5. CV10 图像模糊(均值、高斯、中值、双边滤波)

    通过将图像与低通滤波器内核进行2D卷积来实现图像模糊.这对于消除噪音很有用.它实际上从图像中消除了高频部分(例如噪声,边缘).因此,在此操作中边缘有些模糊.(有一些模糊技术也可以不模糊边缘).Open ...

  6. 9、opencv 方盒、均值、高斯、中值、双边滤波 2022-08-22

    import cv2 import numpy as npimg_path = "./R-C.jpg"img = cv2.imread(img_path) 方盒滤波 # norma ...

  7. 【OpenCV】5种图像滤波辨析:方框、均值、高斯、中值、双边

    from:http://www.07net01.com/2015/12/1003192.html 图像滤波 什么是图像滤波 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预 ...

  8. OpenCV3学习(4.2)——图像常用滤波方法(方框、均值、高斯、中值、双边)

    滤波处理分为两大类:线性滤波和非线性滤波.OpenCV里有这些滤波的函数,使用起来非常方便,现在简单介绍其使用方法. 线性滤波: 1.方框滤波:模糊图像 2.均值滤波:模糊图像 3.高斯滤波:信号的平 ...

  9. 【opencv】(3) 图像滤波:均值、方框、中值、高斯

    内容有: 均值滤波 cv2.blur(),方框滤波 cv2.boxFilter(),高斯滤波 cv2.GaussianBlur(),中值滤波 cv2.medianBlur() 滤波可理解为,平均卷积操 ...

  10. 基于python的九轴惯性传感器的数据预处理代码-中值滤波实验

    ** 基于python的九轴惯性传感器的数据预处理代码-中值滤波实验 ** import random import numpy as np import pandas as pd import sc ...

最新文章

  1. EPML schema(附带用myeclipse生成的结构图)
  2. TensorFlow:深度学习框架TensorFlow TensorFlow_GPU的简介、安装、测试之详细攻略
  3. 常用的几个JavaScript调试技巧
  4. 电影院里为何有散落的青瓜?
  5. 《C++ Primer 第五版》(第4.11-4.12节)——static_cast,const_cast和reinterpret_cast类型转换, 运算符优先级表
  6. 总结深度学习各种网络结构【更新中...】
  7. 2 FI配置-企业结构-定义-创建公司代码(Company Code)
  8. 诺基亚X71上手评测:中端机市场中的绝对C位
  9. linux 下生成中文pdf,Linux itex pdf生成中文不显示
  10. jstack分析CPU高的问题
  11. vc++HOOK详细讲解
  12. Java简介:Java是什么?及Java语言的特点
  13. react-native获取农历日期和二十四节气
  14. windows系统下ink!canvas-node安装
  15. android wifi 5g,android 判断 wifi 是否是 5G
  16. 关于运筹学三方库的编译和使用 ortools
  17. LockSupport 的 park 和 unpark 以及线程中断对 park 的影响
  18. [rom助手]制作刷机包,一键刷机不求人
  19. 如何根据负载选择开关电源规格?
  20. 【0基础】最简单的英灵神殿/Valheim服务器搭建实战教学

热门文章

  1. 使用Syncthing同步数据
  2. AFBP 折旧运行日志查看
  3. SpringBoot 系列教程(八十五):Spring Boot使用MD5加盐验签Api接口之前后端分离架构设计
  4. ESP分区丢失,新建ESP分区修复引导教程
  5. matlab——矩阵点乘,叉乘
  6. 《大话数据结构》6、7树、图
  7. CDbCriteria示范代码之一
  8. Python3 tkinter 使用图片作为背景,并在该背景上加输入框,按钮
  9. M2006+C610驱动方案(三)pid调参
  10. 面试官经常问我三次握手和四次挥手,现在终于知道怎么简简单单的叙述出来了