十七、计算机视觉-图像平滑处理

news2024/9/23 13:31:22

提示:云峰

文章目录

  • 前言
  • 一、均值滤波(Mean Filtering)
  • 二、高斯滤波器(Gaussian Filter):
  • 三、中值滤波器(Median Filter)


前言

在本节中,我们将探讨图像处理中的平滑处理技术。与之前介绍的膨胀、腐蚀以及其他几种算子一样,平滑处理同样是通过卷积核的运算实现的。如果在之前的课程中已经理解了卷积核的概念,以及他的原理,那么本课就会变得简单许多。我们已经学习了如何使用卷积核对图像进行膨胀、腐蚀等操作,这些操作都是通过将卷积核与图像进行某种运算来实现的。接下来,我们将探讨如何利用不同的卷积核和运算方式来实现平滑处理,从而改善图像质量并减少噪声的影响。常见的滤波有 ,均值滤波、方框滤波 高斯滤波等。用过photoshop的可能就感觉熟悉了,这不是ps滤镜中的模糊吗?是的,你可以吧平滑当成ps中的模糊操作。他们底层实现方式应该都是一样的。

在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、均值滤波(Mean Filtering)

1、均值滤波(Mean Filtering)
将像素点周围的像素值取平均值,从而减少噪声的影响。
我们看下图
在这里插入图片描述
图像平滑处理和之前课程讲的其他操作原理差不多,通过卷积操作将图像中每个像素点周围的像素值进行加权平均,从而减少图像中的噪声并平滑图像。
比如上面的红框是一个3x3的卷积核覆盖的图像的9个像素点。卷积核本身内容都是1,代表他的权重都是1,所以计算均值滤波的计算方式就是(20+10+189+251+12+89+151+231+221)/9=130
通过计算 上图卷积核中心位置的12的最新值就是130.
比如一张图片上有很多噪声点。我们上图其中卷积核中心的12 颜色明显和周围有很大的差距,可能就是一个噪声点,通过我们的平滑操作,中间的点就和其他点颜色比较接近了,这样这个噪声点就看不到了。
但是均值滤波卷积核的每个元素都是相同的权重,因此它会将每个像素点周围的像素值取平均。这意味着,图像中每个像素的值都会受到周围像素值的影响,从而导致图像中的高频信息(例如边缘、细节等)被平滑掉,使得图像变得模糊。
均值滤波的方法是blur,是模糊的意思,所以也可以说是一种模糊的操作。
我们看下 代码怎么实现:

# 定义卷积核大小
kernel_size = (3, 3)

# 使用OpenCV的均值滤波函数进行滤波
output_image = cv2.blur(input_image, kernel_size)

# 显示原始图像和经过均值滤波后的图像
cv2.imshow('Input Image', input_image)
cv2.imshow('Output Image (Average Filter)', output_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

云峰

我们看下 上图第一张是原图 上面有很多椒盐噪点,通过操作 是不是噪点就不太明显了。

二、高斯滤波器(Gaussian Filter):

使用高斯函数来计算像素周围邻域的权重,然后将权重化为卷积核。
高斯函数是一种数学函数,它描述了自然界中许多现象的分布情况。简单来说,高斯函数可以让我们知道某些东西的值在均值附近是最常见的,而离均值越远,出现的概率就越低。
我们想一下上面说的均值滤波,最终值是9个像素点的平均值。这样是不是有个问题。比如下图中心点12 距离89、251、10、231最近,正常情况中心点的的新值应该更接近这4个点的颜色才对,但是均值滤波不管这些 把周围全部的点都平等加进来计算了。

在这里插入图片描述
而高斯滤波的卷积核中的数值是由高斯函数计算得到的,他有一个合理的权重,离中心点越近他的权重越高。我们看下高斯函数,如下图
在这里插入图片描述
卷积核的中心点对应着高斯函数的峰值,即具有最大的权重。从卷积核的中心向外部扩展,权重逐渐减小。钟形曲线中心代表着中心点 具有最高的权重,随着距离越远,他的权重逐渐下降。这就是高斯滤波的卷积核的计算方式。
高斯滤波的实现

# 高斯滤波
blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

# 显示原始图像和滤波后的图像
cv2.imshow("Original Image", image)
cv2.imshow("Blurred Image", blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、中值滤波器(Median Filter)

在图像中的某个区域内,大多数像素都是由同一种类型的物体或背景所组成的,因此该区域内的像素值应该是相似的。而噪声通常以异常值的形式出现在图像中,例如椒盐噪声(salt-and-pepper noise)会使部分像素的值变为最大或最小值。
所以中值滤波的操作方式是 一个卷积核在图像上滑动,把卷积核内的所有像素值按照大小进行排序,找到其中间位置的像素值,即中值。当前像素的值就是中值。还是刚才的图 我们看一下
在这里插入图片描述
上图卷积核中心的12 的新值 应该是这些值中间的一个值 也就是151. 这样做的效果是,噪声点的像素值不再对图像产生影响,而且在相邻像素值相似的区域中,中值滤波器可以有效地保留图像的边缘信息。
在图像中,如果存在一片区域内的像素值非常相似,即使这些像素值不是由噪声引起的,中值滤波器也会对这些区域进行平滑处理。这是因为中值滤波器会在滑动窗口中对所有像素值进行排序,并将窗口中间位置的像素值替换为中值,这样做会导致在相邻像素值相似的区域中,中值滤波器也会对图像进行平滑处理。
然而,与其他平滑滤波器(如高斯滤波器)不同的是,中值滤波器在保留图像边缘信息方面表现更好。这是因为中值滤波器只是简单地取中间位置的像素值,而不像其他滤波器那样对像素值进行加权平均,因此它在处理图像边缘时不会引入过多的模糊效果,能够更好地保留图像的边缘信息。

我们看下实现代码和效果

# 中值滤波
blurred_image = cv2.medianBlur(image, 5)  # 5 是滤波器的核大小

# 显示原始图像和滤波后的图像
cv2.imshow("Original Image", image)
cv2.imshow("Blurred Image", blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频矩阵管理系统:如何提升内容质量,帮助企业获客?

在数字化营销蓬勃发展的今天,短视频已成为企业推广的重要阵地。然而,如何高效管理短视频内容,提升内容质量,进而帮助企业精准获客,成为企业亟待解决的问题。短视频矩阵管理系统应运而生,以其强大的功能和灵…

uniapp:使用mescroll实现左导航,右数据(数据带分页)

<template><view class"u-wrap"><u-navbar title"复购" :is-back"false" :border-bottom"false" title-color"#282828"></u-navbar><view class"u-menu-wrap"><scroll-view scr…

Visual Studio下安装引入Boost库

背景&#xff1a; 在 Win 上通过 Visual Studio 运行 c 代码&#xff0c;引入头文件 #include <boost/...>&#xff0c;显式无法打开&#xff0c;需要手动下载boost并进行配置。 1、下载boost Boost官网&#xff1a;Boost Downloads 下载boost&#xff0c;解压&#xf…

2024年高职物联网实验室建设及物联网实训平台整体解决方案

随着物联网技术的蓬勃发展&#xff0c;其在各行业的应用日益广泛&#xff0c;对具备物联网专业技能的高素质人才需求也急剧增加。为了满足这一市场需求&#xff0c;高职院校作为技能型人才培养的重要阵地&#xff0c;亟需加强物联网专业的建设。本文旨在提出《2024年高职物联网…

STM32基础篇:EXTI × 事件 × EXTI标准库

EXTI EXTI简介 EXTI&#xff1a;译作外部中断/事件控制器&#xff0c;STM32的众多片上外设之一&#xff0c;能够检测外部输入信号的边沿变化并由此产生中断。 例如&#xff0c;在检测按键时&#xff0c;按键按下时会使电平产生翻转&#xff0c;因此可以使用EXTI来读取按下时…

ChatGPT摆脱“AI味”:全面提升写作质感

ChatGPT在各种写作、创作场景都发挥了很大的价值&#xff0c;即使中文语料库占比不到5%&#xff0c;也能生成流畅的中文文本。但随着使用的深入&#xff0c;大家也逐渐发现了机器生成的内容&#xff0c;往往带有一种僵硬、刻板的“AI味”&#xff0c;尤其在论文、自媒体写作中&…

[RK3308H_Linux] 关于8+2(8路模拟麦克风 + 2路es7243e回采)的调试心得

问题描述 RK3308H 使用8路个模拟麦克风录音&#xff0c;2路用es7243e做回采 解决方案&#xff1a; 首先先调8路模拟麦克风&#xff0c;根据原理图确定使用的是哪路I2S。 以下为dts配置&#xff0c;acodec的属性注释附上。 &acodec {status "okay";rockchip,m…

CCNA-2-V7-模块7–9:可用且可靠的网络考试答案

1.一台启用了DHCP的客户端PC刚刚启动。客户端PC在与DHCP服务器通信时,将在哪两个步骤中使用广播消息?(选两个。) DHCPDISCOVERDHCPACKDHCPOFFERDHCPREQUESTDHCPNAK 2.管理员发出命令:管理员想达到什么目的? Router(config)# interface g0/1 Router(config-if)# ip address …

智充科技营收增速放缓:经营成本飙升,应收账款大幅增长

《港湾商业观察》黄懿 6月10日&#xff0c; XCHG Limited 智能充电有限公司(下称&#xff1a;智充科技)在美国证监会(SEC)更新招股书&#xff0c;拟在美国纳斯达克上市&#xff0c;其股票代码为“XCH”。北京智充科技有限公司为其国内运营主体&#xff08;下称“北京智充科技”…

深入理解Java集合框架:构建高效、灵活的数据管理方案

深入理解Java集合框架&#xff1a;构建高效、灵活的数据管理方案 引言 Java集合框架&#xff08;Java Collections Framework, JCF&#xff09;是Java语言提供的一套用于表示和操作集合的统一架构。它包含了一系列的接口和类&#xff0c;用于存储和操作对象集合&#xff0c;如…

两个视频怎么剪辑成一个视频?3个方法分享

两个视频怎么剪辑成一个视频&#xff1f;将两个视频剪辑成一个视频&#xff0c;是现代数字内容创作中的高频需求&#xff0c;它不仅简化了素材管理&#xff0c;还能通过创意剪辑提升作品连贯性与表现力。通过精心编排&#xff0c;两个视频片段可以无缝融合&#xff0c;讲述更完…

DolphinScheduler本地安装部署与远程任务调度管理实践应用

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问&#xff0c;结合内…

MES系统与其他系统的集成:提升制造业智能化的关键路径

在当今高度竞争的制造业环境中&#xff0c;企业对于生产效率、质量控制、资源优化以及快速响应市场变化的需求日益迫切。制造执行系统&#xff08;MES&#xff09;作为连接企业计划层与车间控制层的重要桥梁&#xff0c;其在提升生产透明度和优化生产流程方面发挥着不可替代的作…

DOM元素可编辑自定义样式获取编辑后的数据

内容比较多&#xff0c;好好看看&#xff0c;收获匪浅 前言&#xff1a;有这么一个场景&#xff0c;比如一个dom元素是可以编辑的&#xff0c;并且编辑样式得自己写一下&#xff0c;这时候我们考虑单独写一套div来控制编辑样式和编辑的内容。内部有很多的span节点需要渲染&…

elasticsearch 查询超10000的解决方案

前言 默认情况下&#xff0c;Elasticsearch集群中每个分片的搜索结果数量限制为10000。这是为了避免潜在的性能问题。 但是我们 在实际工作过程中时常会遇到 需要深度分页&#xff0c;以及查询批量数据更新的情况 问题&#xff1a;当请求form size >10000 时&#xff0c…

Linux环境下Oracle 11g的离线安装与配置历程

在成功体验了 Windows 版本的Oracle 11g 后&#xff0c;这几天心血来潮&#xff0c;决定再挑战一下Linux 环境下的安装&#xff0c;特别是在考虑到部门内部虚拟机无法联网的情况下&#xff0c;我选择了在CentOS 7上进行离线安装。这次安装之旅&#xff0c;主要参考了下面大佬的…

异步日志:性能优化的金钥匙

一、背景 2024 年 4 月的一个宁静的夜晚&#xff0c;正当大家忙完一天的工作准备休息时&#xff0c;应急群里“咚咚咚”开始报警&#xff0c;提示我们余利宝业务的赎回接口成功率下降。 通过 Monitor 监控发现&#xff0c;该接口的耗时已经超过了网关配置的超时阈值(2s)&#…

【验收支撑】软件系统验收计划书(直接套用原件doc)

编写软件验收计划是软件开发过程中的一个关键步骤&#xff0c;其重要性体现在以下几个方面&#xff1a; 明确验收标准&#xff1a;软件验收计划详细列出了验收的标准、测试方法、测试环境等&#xff0c;确保所有相关人员对验收的期望和要求有清晰的认识。这有助于避免在验收阶段…

JavaWeb系列二十一: 数据交换和异步请求(JSON, Ajax)

文章目录 官方文档official documents官方文件官方文件official documentsJSON介绍JSON快速入门JSON对象和字符串对象转换应用案例注意事项和细节 JSON在java中使用说明JSON在Java中应用场景应用实例 Ajax基本介绍Ajax是什么Ajax经典应用场景 Ajax原理示意图传统的web应用Ajax原…

用微客云搭建一套外卖霸王餐系统赚CPS佣金

在当下数字化快速发展的时代&#xff0c;外卖行业作为餐饮业的重要分支&#xff0c;正在经历着前所未有的变革。为了满足市场需求&#xff0c;提高用户体验和增加商户收入&#xff0c;越来越多的外卖平台开始寻求创新&#xff0c;其中&#xff0c;搭建一套高效、稳定且功能丰富…