数字图像处理系列 | 线性滤波(高斯滤波)(3)

news2024/9/20 23:39:48

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b42de591ce8043268d986a7b02fbbf5e.png

  • 我们知道了什么是 线性平移不变系统是在做卷积操作 之后,我们发展出了一些非常简单的 线性滤波去增强图片,提取图片特征

文章目录

  • 1. 卷积如何在离散图片中工作的
    • Vis 原图和mask做卷积时发生了什么
      • 首先,如何得到 (i.j)位置的卷积 g[i,j] 呢?
    • 值得注意事情
  • 2. 应用示例:脉冲滤波器 (Impulse Filter)
    • 图片平移:Image Shift
    • 图片平均:Averaging
    • 平滑滤波 (Smoothing With Box Filter)
  • 3. 模糊滤波 (Smoothing With "Fuzzy" Filter)
    • Fuzzy Filter 可以用 高斯卷积核 来表示
    • 来看看Guassian Smoothing
    • 为什么高斯滤波 这么受欢迎:因为高斯是可分离的

1. 卷积如何在离散图片中工作的

  • f[i, j]: 离散图片, 是图片中(i,j) 的像素值
    • i: row Number
    • j: Col Number
  • M, N 是整张图的大小
  • m, n 是卷积核大小
  • Convolved by some impulse response h[i,j]
  • h[i-m, j-n]: 被称为 ”Mask", “Kernel”, “Filter”
    在这里插入图片描述
    在这里插入图片描述

Vis 原图和mask做卷积时发生了什么

在这里插入图片描述

首先,如何得到 (i.j)位置的卷积 g[i,j] 呢?

  • h[m, n] 是一个卷积核
    在这里插入图片描述

  • 反转 h[-m, -n], 看颜色变了吧

  • 这里的h是卷积核哦
    在这里插入图片描述

  • 然后,把卷积核放在你想得到的坐标那里,这里是**(i, j)的位置**
    在这里插入图片描述

  • 做一个卷积相乘,加和,得到右侧的橙色,这就是当前位置的卷积结果
    在这里插入图片描述

  • 你想要得到所有的g[i,j], 你就重复上述动作,1. 旋转你的卷积核,2. slide over entire image

值得注意事情

在这里插入图片描述

2. 应用示例:脉冲滤波器 (Impulse Filter)

平移不变性指我们在图像的每个位置都执行相同的操作。线性指这个操作是线性的,也就是我们用每个像素的邻域的线性组合来代替这个像素。
在这里插入图片描述

图片平移:Image Shift

  • 反转 卷积核,右下角的白色方块 --> 左上角,然后全图经过卷积,原图整体向右,向下移动。
    在这里插入图片描述

图片平均:Averaging

  • Box Filter: 汇集了 周围 5x5=25 个像素的值,所以卷积之后,该位置的值会变得非常大,但我们8 bit的图像中,数值范围是从(0, 255)的,所以 超过255的就按255算,反之小于0 的按0 算。
    在这里插入图片描述
  • 确保你设计Filter的时候,Filter要做归一化,要不就产生上面的问题了,所有的数字相加都到255 了
  • 这样做,图就不会过度曝光了吧,变的平滑了吧
    在这里插入图片描述

平滑滤波 (Smoothing With Box Filter)

  • 是不是看起来不太自然,好吧
  • 然我们看看下一节,高斯滤波,会让他变的自然起来
    在这里插入图片描述

3. 模糊滤波 (Smoothing With “Fuzzy” Filter)

在这里插入图片描述

Fuzzy Filter 可以用 高斯卷积核 来表示

  • σ 是标准差 \sigma是标准差 σ是标准差
  • σ 2 是方差 \sigma^2是方差 σ2是方差
  • σ \sigma σ 越大,高斯的边界越大
    在这里插入图片描述
  • 这里推荐卷积核大小k,因为这能最大化的使用高斯的能量(突出来的部分)
  • 我们可以看到σ=5的中央要比,σ=2的中央暗很多,因为k=5的时候像素很多,然后做了归一化就变得很小了
  • 推荐的k值为 k = 2 π σ k = 2 \pi \sigma k=2πσ

在这里插入图片描述

来看看Guassian Smoothing

  • $ \sigma$ 越大越模糊哦在这里插入图片描述
    在这里插入图片描述

为什么高斯滤波 这么受欢迎:因为高斯是可分离的

  • 2D 高斯 -> 1D 高斯
  • 做1D 高斯计算量会比 2D 小很多
    在这里插入图片描述
    在这里插入图片描述
  • 来看看高斯1D, 2D的计算量
    在这里插入图片描述

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

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

相关文章

电脑突然提示:“failed to load steamui.dll”是什么情况?分享几种解决steamui.dll丢失的方法

相信有一些用户正在面临一个叫做“failed to load steamui.dll”的问题,这种情况多半发生在试图运行某个程序时,系统会提示一条错误消息:“failed to load steamui.dll”。那么,为何steamui.dll文件会丢失,又应该如何解…

文本生成流程图 泰酷啦 Excalidraw Mermaid Obsidian

前言 介绍一个很酷的工具,Mermaid to Excalidraw 。作用是用代码生成流程图。 Mermaid 是一款强大的、轻量级的文本到图表的转换工具,它允许用户使用简单的Markdown风格的语法编写文本描述,然后通过JavaScript引擎将其转换成美观的图表。Mer…

手机投屏技巧:手机怎么投屏到电脑显示屏上?精选6招解决!

手机怎么投屏到电脑显示屏上?出于一些不同的原因,大多数人都希望能将手机投屏到电脑上。其中一个常见的原因是,大家经常会希望在笔记本电脑上共享图片,而无需上传或者登录微信进行文件传输。以及希望不依靠投影仪,就能…

高性价比、超强功能的开源工单解决方案

在企业日常运营中,工单管理系统是不可或缺的工具。高效的工单管理不仅能提升工作效率,还能显著提高客户满意度。今天,我们为您推荐搭贝工单派单系统——一款超高性价比、功能齐全的开源工单管理系统。 🔍 为什么选择搭贝工单派单…

JDBC使用步骤-小白入门

一.JDBC开发流程 加载并注册JDBC驱动创建数据库连接创建Statement对象遍历查询结果关闭连接,释放资源 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class StandardJDBCSample {public static …

统计计算五|MCMC( Markov Chain Monte Carlo)

系列文章目录 统计计算一|非线性方程的求解 统计计算二|EM算法(Expectation-Maximization Algorithm,期望最大化算法) 统计计算三|Cases for EM 统计计算四|蒙特卡罗方法(Monte Carlo Method) 文章目录 系列文章目录一…

npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本

安装npm时出现如下提示: 出现这个错误信息,是系统禁止执行PowerShell的脚本。 出现的原因是,系统默认的执行策略是Restricted(默认设置),限制执行,所以会出现如上提示。 解决方法:…

学前基础知识

1、Java版本: 1995年发布第一个版本,创始人gosling。 可知, JAVA8 和 JAVA11 为长期版本,其他均非长期版本,因此主流都在用 JAVA8 或 JAVA11。 2、Java技术体系平台: 3、Java重要特点 ①Java语言是面向对象…

【SOFARPC框架的设计和实现】笔记记录

感谢刘老师对rpc框架的视频讲解:SOFAChannel#31 RPC框架的设计和实现_哔哩哔哩_bilibili 每个扩展点就是一个接口,可以通过实现接口来时拓展。 以registry举例,可以使用Extensible注解标记接口,然后Extension标记方法的实现。 …

PV PVC

默写 1 如何将pod创建在指定的Node节点上 node亲和、pod亲和、pod反亲和: 调度策略 匹配标签 操作符 nodeAffinity 主机 In,NotIn,Exists,DoesNotExist,Gt,Lt podAffinity …

windows系统电脑外插键盘驱动出现感叹号或者显示未知设备,键盘无法输入的解决办法

笔记本外插的键盘不能用,鼠标可以使用。 查找故障,结果打开设备管理器看到键盘那项里是一个的黄色惊叹号显示未知设备![图片]如下图所示 其实解决办法很简单,不要相信网上的一些博主说删除什么注册表,我开始跟着他们操…

【Python】解决Python报错:TypeError: %d format: a number is required, not str

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

【Linux 网络编程】网络的基础知识详解!

文章目录 1. 计算机网络背景2. 认识 "协议" 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; 🍎局域网(LAN----Local Area Network): 计算机数量更多了, 通过交换机和路由器连接。 🍎 广域网WAN: 将…

echarts-dataset,graphic,dataZoom, toolbox

dataset数据集配置数据 dataset数据集,也可以完成数据的映射,一般用于一段数据画多个图表 例子: options {tooltip: {},dataset: {source: [["product", "2015", "2016", "2017"],["test&q…

添砖Java(十一)——常见类的使用Object,Math,System,BigDeciaml,包装类

目录 object: toString: equals: ​编辑 Math:​编辑 System: BigDecimal: 基本数据的包装类:​编辑 object: 我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法…

写代码之前一定要提前想好思路

就和写数学题目一样,在做题目之前要先把思路确立下来。可能是我早年做数学的时候老是着急做题目没怎么分析过题目,把这个习惯不自觉地代入了代码的写入当中。习惯的养成使得我即使明白了自己的问题也依然会不断的犯错,看来只有刻意地提醒自己…

写Python时不用import,你会遭遇什么

from *** import *** 想必你已经再熟悉不过这样的python语法。 当你的 python 代码需要获取外部的一些功能(一些已经造好的轮子),你就需要使用到 import 这个声明关键字。import可以协助导入其他 module 。(类似 C 预约的 inclu…

深度解析搜索引擎广告(SEM)与社交媒体广告(SMM):NetFarmer助力企业数字化出海

在当今数字化时代,企业出海已经成为了一个必然趋势。然而,如何有效地在海外市场中推广品牌、吸引潜在客户,成为了众多企业面临的重要挑战。搜索引擎广告(SEM)和社交媒体广告(SMM)作为两种主要的…

154.找出出现至少三次的最长特殊字符串|(力扣)

代码解决 class Solution { public:int maximumLength(string s) {// 使用unordered_map来存储每个连续子串出现的次数unordered_map<string, int> mp;string key; // 存储当前的连续子串int ans -1; // 存储最终的答案&#xff0c;如果没有符合条件的子串&#xff0c…

云计算OpenStack基础

1.什么是虚拟化&#xff1f; •虚拟化是云计算的基础。 •虚拟化是指计算元件在虚拟的而不是真实的硬件基础上运行。 •虚拟化将物理资源转变为具有可管理性的逻辑资源&#xff0c;以消除物理结构之间的隔离&#xff0c;将物理资源融为一个整体。虚拟化是一种简化管理和优化…