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

![在这里插入图片描述](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.mzph.cn/bicheng/19167.shtml

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

相关文章

操作系统中的内存管理

虚拟内存 操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。如果程序要访问虚拟地址的时候,由操作系统转换成不同的物理地址,这样不同的进程运行的时候,写入的是不同的物理地址,这样就不会冲…

Slurm集群使用基础

Introduction 我们在做生物信息分析时,对于大规模的上游数据的处理,一般需要在大型服务器或集群上进行。我最早接触并使用的是一个基于SLURM调度系统的集群,在此记录一下基础使用方法。 高性能计算集群(High-Performance Comput…

【渗透测试】|文件上传

1、安装使用蚁剑 https://blog.csdn.net/weixin_42474304/article/details/116376746 1、登陆dvwa,进入初级文件上传&#xff0c;上传一句话木马文件cmd.php&#xff0c; //cmd.php <?php eval($_POST[ccit]); ?> //eval: 执行命令的函数 //ccit:一句话木马文件的参数…

渗透测试工具Cobalt strike-2.CS基础使用

三、结合metasploit,反弹shell 在kali中开启使用命令开启metasploit msfconsole ┌──(root㉿oldboy)-[~] └─# msfconsole --- msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp --- msf6 exploit(multi/handler) > show …

什么是访问控制漏洞

什么是AC Bugs&#xff1f; 实验室 Vertical privilege escalation 仅通过隐藏目录/判断参数来权限控制是不安全的&#xff08;爆破url/爬虫/robots.txt/Fuzz/jsfinder&#xff09; Unprotected functionality 访问robots.txt 得到隐藏目录&#xff0c;访问目录 &#xff0c;…

基于Visual Studio版本的AI编程助手

Visual Studio 是一个出色的 IDE,可用于构建适用于 Windows、Mac、Linux、iOS 和 Android 的丰富、精美的跨平台应用程序。 使用一系列技术(例如 WinForms、WPF、WinUI、MAUI 或 Xamarin)构建丰富。 1、安装 点击上方工具栏拓展选项,选择管理拓展选项 接着在联机页面中搜索&q…

基于51单片机的室内空气质量检测-仿真设计

本设计是基于单片机的空气质量检测设计&#xff0c;主要实现以下功能&#xff1a; 可实现通过SGP30测量二氧化碳及甲醛浓度&#xff0c;当超过设置的最大值时&#xff0c;进行报警及通风和净化空气处理 可实现通过MQ-4测量甲烷浓度&#xff0c;当超过设置的最大值时&#xff0…

压力测试JMeter

压力测试JMeter 1 下载JMeter1.1 测试计划1.2 JMeter Address Already in use 错误解决1.3 java 内存模型1.4 jconsole与jvisualvm1.5 优化方向1.6 Nginx动静分离 1 下载JMeter 官网地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 运行apache-jmeter-5.6.3\…

HaloDB 的 Oracle 兼容模式

↑ 关注“少安事务所”公众号&#xff0c;欢迎⭐收藏&#xff0c;不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽&#xff0c;国产数据库&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安装指引 ★ HaloDB是基于原生PG打造的新一代高性能安…

代码随想录训练营Day 43|力扣343. 整数拆分、96.不同的二叉搜索树

1.整数拆分 代码随想录 视频讲解&#xff1a;动态规划&#xff0c;本题关键在于理解递推公式&#xff01;| LeetCode&#xff1a;343. 整数拆分_哔哩哔哩_bilibili 代码&#xff1a; class Solution { public:int integerBreak(int n) {// dp[i] 拆分数字i所获得的最大乘积为d…

景源畅信:抖音小店如何开橱窗?

在当今数字化时代&#xff0c;社交媒体平台不仅仅是人们交流和分享生活的工具&#xff0c;更成为了商家们展示和销售产品的重要场所。抖音作为一款流行的短视频社交应用&#xff0c;其内置的电商功能——抖音小店&#xff0c;为众多商家和个人提供了便捷的在线销售途径。其中&a…

使用NuScenes数据集生成ROS Bag文件:深度学习与机器人操作的桥梁

在自动驾驶、机器人导航及环境感知的研究中&#xff0c;高质量的数据集是推动算法发展的关键。NuScenes数据集作为一项开源的多模态自动驾驶数据集&#xff0c;提供了丰富的雷达、激光雷达&#xff08;LiDAR&#xff09;、摄像头等多种传感器数据&#xff0c;是进行多传感器融合…

jmeter多用户并发登录教程

有时候为了模拟更真实的场景&#xff0c;在项目中需要多用户登录操作&#xff0c;大致参考如下 jmx脚本&#xff1a;百度网盘链接 提取码&#xff1a;0000 一&#xff1a; 单用户登录 先使用1个用户登录&#xff08;先把1个请求调试通过&#xff09; 发送一个登录请求&…

贪心(临项交换)+01背包,蓝桥云课 搬砖

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0搬砖 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 将物品按照w[i] v[i]升序排序然后跑01背包就是答案 下面证明&#xff1a;&#xff08;不要问怎么想到的&#xff0c;做题多了就能想到&#xff…

AVB协议分析(一) FQTSS协议介绍

FQTSS协议介绍 一、AVB整体架构二、概述三、协议作用及作用对象四、协议的实现五、参考文献&#xff1a; 一、AVB整体架构 可见FQTSS位于MAC层的上面&#xff0c;代码看不懂&#xff0c;咱们就从最底层开始&#xff0c;逐层分析协议&#xff0c;逐个击破&#xff0c;慢就是快。…

基于GO 写的一款 GUI 工具,M3u8视频下载播放器-飞鸟视频助手

M3u8视频下载播放器-飞鸟视频助手 M3u8视频飞鸟视频助手使用m3u8下载m3u8 本地播放 软件下载地址m3u8嗅探 M3u8视频 M3u8视频格式是为网络视频播放设计&#xff0c;视频网站多数采用 m3u8格式。如腾讯&#xff0c;爱奇艺等网站。 m3u8和 mp4的区别&#xff1a; 一个 mp4是一个…

【PB案例学习笔记】-12秒表实现

写在前面 这是PB案例学习笔记系列文章的第11篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

【2.文件和目录相关(下)】

一、查看文件内容命令 1、cat 文件名&#xff1a;用于显示文件内容&#xff0c;比如 cat test.c。 &#xff08;1&#xff09;cat -b test.c 表示加行号显示文件内容。 &#xff08;2&#xff09;cat -s test.c 表示多个空行合并成一个空行显示。 2、nl 文件名&#xff1a;…

2024 京麟ctf -MazeCodeV1

文章目录 检查代码思路一个字节的指令注意附上S1uM4i佬们的exp https://www.ctfiot.com/184181.html 检查 代码 __int64 __fastcall check_solve(char *a1) {__int64 result; // rax__int64 v2; // rax__int64 index_step; // rax__int64 v4; // rax__int64 v5; // rax__int64…

MVC架构中的servlet层重定向404小坑

servlet层中的UserLoginServlet.java package com.mhys.servlet; /*** ClassName: ${NAME}* Description:** Author 数开_11* Create 2024-05-29 20:32* Version 1.0*/import com.mhys.pojo.User; import com.mhys.service.UserService; import com.mhys.service.impl.UserSer…