OpenCV均值、中值滤波器的讲解及实战应用(附Python源码)

2023-10-30

需要源码和图片请点赞关注收藏后评论区留言私信~~~

在尽量保留原图像信息的情况下,去除图像内噪声、降低细节层次信息等一系列过程,叫作图像的平滑处理(或图像的模糊处理)。实现平滑处理最常用的工具就是滤波器。通过调节滤波器的参数,可以控制图像的平滑程度。OpenCV提供了种类丰富的滤波器,每种滤波器使用的算法均不同,但都能对图像中的像素值进行微调,让图像呈现平滑效果

一、均值滤波器

图像中可能会出现这样一种像素,该像素与周围像素的差别非常大,导致视觉上就能看出该像素无法与周围像素组成可识别的图像信息,降低了整个图像的质量,这种格格不入的像素就是图像的噪声,如果图像中的噪声都是随机的纯黑像素和纯白像素,这种噪声称作椒盐噪声,如下图所示

以一个像素为核心,其周围像素可以组成一个n行n列的矩阵,这样的矩阵结构在滤波操作中被称为滤波核,矩阵的行和列决定了滤波核的大小 

3×3的滤波核

 

均值滤波器可以把图像中的每一个像素都当成滤波核的核心,然后计算所有像素的平均值,最后让核心像素值等于这个平均值

均值滤波计算过程如下

 OpenCV将均值滤波器封装成blur方法 语法格式如下

dst=cv2.blur(src,ksize,anchor,borderType)

ksize (高、宽)滤波核大小 滤波核越大 处理之后的图像就越模糊

anchor 可选参数 滤波核的锚点

下面对花朵图像进行均值滤波操作

由下图可见 滤波核越大 那么进行滤波之后的图像就越模糊

 

 部分代码如下

import cv2
img = cv2.imread("amygdaus triloba.jpg")  # 读取原图
dst1 = cv2.blur(img, (3,3))  # 使用大小为3*3的滤波核进行均值滤波
dst2 = cv.blur(img, (5, 5))  # 使用大小为5*5的滤波核进行均值滤波
dst3 = v2.blur(img, (9, 9))  # 使用大小为9*9的滤波核进行均值滤波
cv2.imshow(img", img)  # 显示原图
cv2.imshow("3*3", dst1)  # 显示滤波效果
cv2.imshow("5*5", dst2)
cv2.imsow("9*9", dst3)
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

二、中值滤波器

中值滤波器的原理与均值滤波器非常相似,唯一的不同就是不计算像素的平均值,而是将所有像素值排序,把最中间的像素值取出,赋值给核心像素

中值滤波计算原理如下图

OpenCV将中值滤波器封装成medianblur方法 语法如下

dst=cv2.medianBlur(src,ksize)

ksize 滤波核的边长 必须是大于1的奇数 该方法根据此边长自动创建一个正方形的滤波核 

 处理效果如下

部分代码如下

import cv2ad("amygdalus triloba.jpg")  # 读取原图
dst1 = cv2.mednBlur(img, 3)  # 使用宽度为3的滤波核进行中值滤波
dst2 = cv2.(img, 5)  # 使用宽度为5的滤波核进行中值滤波
dst3 = cv2(img, 9)  # 使用宽度为9的滤波核进行中值滤波
cv2.imshow("img", img)  # 显示原图
cv2.imhow("3", dst1)  # 显示滤波效果
cv2.imshow("5", dst2)
cv2.imshw("9",dst3)
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

 创作不易 觉得有帮助请点赞关注收藏~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV均值、中值滤波器的讲解及实战应用(附Python源码) 的相关文章

随机推荐

  • 基于机器学习方法对销售预测的研究

    很高兴 InfoQ 团队和 百分点大数据学院 牵头举办此次活动 百分点大数据学院 是由百分点发起的大数据领域专业 开放的分享交流平台 通过定期举办线上线下活动 邀请大数据领域学术专家 技术领袖 企业高层 分享行业 技术 应用等方面最前沿的经
  • PowerMock(一):PowerMock的基本使用

    文章目录 为啥要使用PowerMock PowerMock的使用 环境 引入依赖 注解说明 mock普通方法 mock抛出异常 mock新建对象 mock无返回值的方法 mock被final修饰的方法 参数模糊匹配 mock静态方法 moc
  • 下载安装office2019

    Hello 大家好 我是小喵 支付宝搜索 321994 领红包喽 前几天答应给大家写一篇关于安装激活Office2019的文章 一直在准备 准备制作GIF动图 制作图片等 把我电脑上的Office反复安装卸载 折腾的不像样子 终于 功夫不负
  • 在B端供应链上,看见企业增长的「密码」

    在被疫情重塑的B端市场里 在这个新的产业互联时代 发展的新答案到底是什么 作者 皮爷 出品 产业家 2022年中秋节 一款特殊的牛奶让伊利再次在B端市场破圈 在人们司空见惯的牛奶包装上 青花瓷的样本图案清晰可见 典雅大气 蓝白相间之中充斥着
  • [学C日记]---循环

    1 计算 n的阶乘 调用阶乘函数 三种循环 1 计算阶乘 int main int n 0 int m 0 scanf d n m jiecheng n printf d n m system pause return 0 int jiec
  • wsl 固定ip 方法 一劳永逸

    目前网上有很多办法 有用host 有修改bash的 非常多 也非常麻烦 目前发现这种方法最为简单 添加一个开机启动项 配置一个netsh 1 准备一个vbs 并添加到开机启动项 Set ws WScript CreateObject WSc
  • 更改内存频率导致电脑用不了怎么解决?

    目录 台式机 解决办法 笔记本 解决办法 电脑能开机 显示器指示灯闪烁但就是不亮显示器 主要问题是内存 内存超频不能超过本身内存卡的极限 至于内存卡的极限在哪里 你可以上网查一下你的内存卡的信息 超过了极限基本上一改电脑就跟死机差不多 运行
  • 2022国赛17:打印服务

    大赛试题内容 七 打印服务 任务描述 为了提高打印服务效率 节省成本 请采用共享打印服 务 实现共享打印的安全性 1 在 windows4 上安装打印机 驱动程序为 MS Publisher Color Printer 名称和共享名称均为
  • 排序算法(6)----计数排序

    不知道为什么 突然编辑器不支持颜色丰富的intellij IDEA直接复制了 博主有点沮丧 因此我先用图片的形式展示并分析 然后在最后会将全部代码呈上 排序思想 在一个数组中 对于每一个数据 都统计有多少个数字小于它 就能反应出它当前所在的
  • Centos 7开机菜单设置

    Centos 7的开机菜单设置主要是能过 etc grub2 cfg etc grub2 cfg gt boot grub2 grub cfg timeout 5 为等待用户选择时间 当5秒钟没有选择 系统会启动默认的菜单 与centos
  • 基于阿里云服务器+wordpress构建自己的网站(全过程系列,无需任何编程知识)

    1 阿里云服务器配置 既然是基于阿里云服务器 那么当然是先得申请一个阿里云服务器 本博客使用的服务器是云服务器ECS 共享计算型 n4系列 阿里云对新用户有很多优惠活动 这个是我当时花了69块钱买了一年 又通过某个渠道 返了60块钱 相当于
  • 数学建模美赛E、F题备考策略(自用,大部分复制粘贴)

    这里要讲一下故事的背景 我们小组三个人都是大一大二的学生 我的队友们都是数学专业的学生 所以比赛中的编程部分就交给了我这样的工业工程系的选手 我们在看完了历年赛题后一直认为 前面的几题我们都很难建立出很棒的模型 因此我们将目光对准E F两题
  • 为什么 Redis 中的事物很玄学,没人使用 ?

    1 为什么不使用 Redis 中的事物 Redis 中的事物是 弱事物 它在操作的时候 是将多个命令全部加入到事物队列中 然后通过 exec 命令一次性执行所有命令 这样做的好处是可以减少网络往返的次数 提高效率 它的使用示例如下 Redi
  • 输入英文有空格 解决方法

    shift 空格 直接搞定
  • Uniform convergence

    In the mathematical field of analysis uniform convergence is a mode of convergence of functions stronger than pointwise
  • vue3 + elementplus 教程

    一 初始化 安装 vue cli g 全局安装 vue cli npm install vue cli g 或者 yarn global add vue cli 二 创建项目 vue create 项目名 进行项目初始化 D workspa
  • C# JSON 常用方法 - Json字符串转对象

    创建项目 ConsoleApplication Json 选择项目右键管理NuGet程序包 搜索Newtonsoft Json 并下载安装 选择项目添加 JsonHelper cs 添加引用 using Newtonsoft Json 编写
  • [893]推荐几款提高体验与效率的Chrome插件神器

    今天推荐几款好用的 Chrome 插件 都是我自己一直在用的插件 可以到 Chrome 商店下载 话不多说 进入主题 Insight io For Github 如图 就像这样 可以以文件树的方式浏览 github 的代码文件 Toggle
  • 【注册机】JCreator Pro v4.50.010 注册机

    下载地址 http oyksoft oyksoft com oyksoft com JCreator Pro v4 50 010 Keygen Only HAZE rar
  • OpenCV均值、中值滤波器的讲解及实战应用(附Python源码)

    需要源码和图片请点赞关注收藏后评论区留言私信 在尽量保留原图像信息的情况下 去除图像内噪声 降低细节层次信息等一系列过程 叫作图像的平滑处理 或图像的模糊处理 实现平滑处理最常用的工具就是滤波器 通过调节滤波器的参数 可以控制图像的平滑程度