文章目录

  • smoothing and blurring平滑和模糊
    • 1 averaging均值滤波
    • 2 gaussian高斯滤波
    • 3 median中值滤波
    • 4 bilateral双边滤波

smoothing and blurring平滑和模糊

什么是模糊呢,当我们拍照片没对上焦的时候,就是模糊。

实际上,这意味着图片中的每个像素点都和他旁边的像素点的值混在了一起,这种和相邻像素点进行混合的结果,就是模糊。

模糊通常是我们不希望的,但这在我们进行阈值处理,或者边缘检测的时候显得非常重要,通常第一步就是对图片进行平滑或者模糊。

1 averaging均值滤波

blurred = np.hstack([# 第二个值表示k*k的一个核,通常k要求为奇数# 这个k*k的滑动窗口就表示一个卷积核cv2.blur(image, (3,3)),cv2.blur(image, (5,5)),cv2.blur(image, (7,7))])
cv2.imshow("averaged", blurred)

2 gaussian高斯滤波

均值滤波使用的是一个平均值,而高斯滤波使用的是加权平均值,离中心元素越近的地方权重越大,离中心元素越远的地方权重越小。得到的结果比均值滤波更自然。

blurred = np.hstack([# 第二个值表示k*k的一个核,通常k要求为奇数# 第3个数值表示x-axis的偏差cv2.GaussianBlur(image, (3,3), 0),cv2.GaussianBlur(image, (5,5), 0),cv2.GaussianBlur(image, (7,7), 0)])
cv2.imshow("Gaussian", blurred)

3 median中值滤波

本质上是中位数滤波,中值滤波在去除椒盐(想象照片上撒满了胡椒粉和盐颗粒)噪声的时候非常有效,因为他总是用图像中已有的像素值来更新当前像素。

blurred = np.hstack([# 第二个值表示k*k的一个核,通常k要求为奇数cv2.mediaBlur(image, 3),cv2.mediaBlur(image, 5),cv2.mediaBlur(image, 7)])
cv2.imshow("median", blurred)

4 bilateral双边滤波

上面几个模糊方法有个问题,就是会丢失图像中的边缘。

为了解决这个问题,我们使用两个高斯分布,这就是双边滤波。

第一个高斯函数只考虑空间邻域,第二个高斯函数对邻域像素值进行建模,确保只有相似像素值的像素参与模糊计算,即那些与众不同的像素(他们其实是图像边缘和边界)被保留下来。

blurred = np.hstack([# 第2个值,5代表像素邻域空间的直径,# 第3个值,21表示颜色邻域,越大就会有更多的颜色参与计算# 第4个值,21代表空间邻域,越大,那么更远的像素就会参与计算cv2.bilateralFilter(image, 5, 21, 21),cv2.bilateralFilter(image, 7, 31, 31),cv2.bilateralFilter(image, 9, 41, 41)])
cv2.imshow("Bilateral", blurred)

OpenCV-python学习笔记(四)——smoothing and blurring平滑和模糊相关推荐

  1. python学习笔记四-列表

    list列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表是最常用的Python数据类型,它可以作为一个 ...

  2. python学习笔记(四):函数

    一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...

  3. openCV Python学习笔记(二)画几何

    此处要花几何图形,我们需要用到如下几个函数: cv2.line 画线函数 cv2.circle 画圆函数 cv2.ellipse 画椭圆 cv2.rectangle 画矩形 1.画线 img=cv2. ...

  4. python学习笔记(四)、条件、循环及其他语句

    1 再谈print和import 1.1 打印多个参数 print 能够同时打印多个表达式,并且能自定义分隔符.如下: print('a','b','c') --> a b c print('a ...

  5. Python学习笔记四(Python OS模块)

    Python os模块提供了一个统一的操作系统接口函数,通过python os模块可以实现对系统本身的命令,文件,目录进行操作,官方参考文档( http://docs.python.org/libra ...

  6. Python学习笔记(四)—生成随机数

    函数randint(a,b)可以产生区间(a,b)中的随机数.但是要加import random: 比如说: import random number1 = random.randint(0,9) n ...

  7. 【懒懒的Python学习笔记四】

    编程的时候常常需要检查一些条件,并据此决定采用什么措施,在Python中,if语句常用来做判断语句. 一.一个简单的示例 下面是一个简短的示例,演示了如何使用if语句进行判断,假如你有一个水果列表,你 ...

  8. python学习笔记(四)模块

    4.1基础 模块实现函数重用,import导入模块. import sys for i in sys.argv:print(i) 运行结果: C:\Users\liyz-b\Desktop\work\ ...

  9. python学习笔记四——数据类型

    1.数字类型: 2.字符串类型: 切片:a[m:n:s] m:起始值   n:结束值(不包括n)   s:步长,负数表示从后向前取值 3.序列:列表,元组和字符串都是序列 序列的两个主要特点是索引操作 ...

最新文章

  1. 计算机考试金麦圈编号教程,计算机二级:数据处理.doc
  2. Qt DOM读写XML文件
  3. 【数据结构与算法】之深入解析“字符串相乘”的求解思路与算法示例
  4. 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则
  5. dlibdotnet 人脸相似度源代码_使用dlib中的深度残差网络(ResNet)实现实时人脸识别 - supersayajin - 博客园...
  6. Pytorch:损失函数
  7. DSP5509项目之用FFT识别钢琴音调(5)之开始傅里叶变换
  8. python爬虫免费代理池_Python爬取免费代理搭建代理池
  9. python气象绘图_Python气象绘图教程特刊(一)
  10. Linux之操作系统杂谈
  11. 股灾情形下搞了个满堂红,我也是醉了
  12. python 颜色大全 颜色对应 matplotlab plot 颜色对应
  13. 市面常见存储卡的读写速度对比测试
  14. 恢复手机qq删除的收藏表情
  15. 赵鑫:强化学习在京东广告序列推荐中的应用
  16. vue项目中Echarts两个图表之间连接两条线
  17. 找不到服务器或dsn错误,win7浏览网页提示“找不到服务器或DNS错误”原因及解决方法...
  18. PDF签名系列(2):PDF的签名值到底存在哪里?
  19. 计数问题:1~n中x出现了多少次?
  20. linux开启telnet服务(总结)

热门文章

  1. MyCat分布式数据库集群架构工作笔记0012---高可用_Mycat双主双从复制原理
  2. 人工智能TensorFlow工作笔记007---认识张量
  3. python数据结构剑指offer-替换空格
  4. java 中文件outputstream的操作注意
  5. 多线程的那点儿事(之原子锁)
  6. oracle 序列赋值变量,Oracle变量的定义、赋值及使用
  7. matlab anova 如何不画图,方差分析的数据处理和作图
  8. yii mysql 操作数据库_YII2中操作数据库的方式
  9. CVE-2021-21871: PowerISO 内存越界写漏洞
  10. 卷积神经网络(CNN)相关的基础知识