计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-卷积与边缘提取-[北邮鲁鹏]

news2024/11/25 1:46:23

目录标题

  • 参考学习链接
  • 什么是图像边缘?
  • 为什么研究边缘?
  • 有哪些边缘种类?
    • 表面法向不连续
    • 深度不连续
    • 表面颜色不连续
    • 光照不连续
  • 如何检测边缘?
    • 图像求导
    • 图像梯度
      • 图像梯度的方向
      • 图像梯度的模
    • 噪声的影响
      • 噪声影响带来的问题
      • 解决办法(先平滑处理)
        • 高斯核去噪
        • 高斯一阶偏导核
        • 高斯核 vs 高斯一阶偏导核
    • 边缘检测目标
      • Canny边缘检测器
      • 高斯一阶偏导核卷积图像
      • 非极大值抑制
      • 门限过滤
        • Canny如何选择去噪时的门限值?- 双阈值

参考学习链接

计算机视觉与深度学习-04-图像去噪&卷积-北邮鲁鹏老师课程笔记

什么是图像边缘?

图像中亮度明显而急剧变化的点

为什么研究边缘?

1 编码图像中的语义与形状信息。

2 相对于像素表示,边缘表示显然更加紧凑。

有哪些边缘种类?

在这里插入图片描述

表面法向不连续

在这里插入图片描述
瓶盖上方的法线向上,瓶盖周围的法线向外。

深度不连续

在这里插入图片描述
真实图片中是不存在的,拍照照到的地方和照不到的地方的边界。

表面颜色不连续

如这几个AOT字母产生的边
在这里插入图片描述
识别物体时需考虑,品牌标签等

光照不连续

在这里插入图片描述
感知物体位置时需要考虑,与周围物体的位置关系。例如:阴影。

如何检测边缘?

边缘处的导数取最值

在这里插入图片描述

图像求导

2D函数f(x,y)的偏导为:

  • 对x的偏导
    ∂ f ∂ x = lim ⁡ ε → 0 f ( x + ε , y ) − f ( x , y ) ε \frac{{\partial f}}{{\partial x}}=\lim_{{\varepsilon \to 0}} \frac{{f(x + \varepsilon, y) - f(x, y)}}{{\varepsilon}} xf=ε0limεf(x+ε,y)f(x,y)
  • 对y的偏导
    ∂ f ( x , y ) ∂ x = lim ⁡ ε → 0 f ( x , y + ε ) − f ( x , y ) ε \frac{{\partial f(x,y)}}{{\partial x}}=\lim_{{\varepsilon \to 0}} \frac{{f(x, y + \varepsilon) - f(x, y)}}{{\varepsilon}} xf(x,y)=ε0limεf(x,y+ε)f(x,y)

图像求导公式

将2D函数中求偏导公式中邻域范围改成1,得到的效果还可以。所以一直沿用。
∂ f ( x , y ) ∂ x ≈ f ( x + 1 , y ) − f ( x , y ) 1 \frac{{\partial f(x,y)}}{{\partial x}} \approx \frac{{f(x + 1, y) - f(x, y)}}{{1}} xf(x,y)1f(x+1,y)f(x,y)

由上图中图像求导公式可知:

图像求导公式 = 右边像素 f ( x + 1 , y ) − 自己 f ( x , y ) 图像求导公式 = 右边像素 f(x + 1,y) - 自己f(x,y) 图像求导公式=右边像素f(x+1,y)自己f(x,y)
因此,图像求导可以通过卷积核实现。
在这里插入图片描述
举例,对图像使用高斯核进行卷积
在这里插入图片描述

x方向求导,检测的是横向像素间差别,求出来是y方向的边。

y方向求导,检测的是纵向像素间差别,求出来是x方向的边。

图像梯度

Δ f = [ ∂ f ∂ x , ∂ f ∂ y ] Δf = [\frac{{\partial f}}{{\partial x}},\frac{{\partial f}}{{\partial y}}] Δf=[xf,yf]
即两个方向的导数组成的向量
在这里插入图片描述

图像梯度的方向

与边缘方向垂直

梯度方向=arctan(对y偏导数 / 对x偏导数)

θ = arctan ⁡ ( ∂ f ∂ x , ∂ f ∂ y ) \theta = \arctan\left(\frac{{\partial f}}{{\partial x}}, \frac{{\partial f}}{{\partial y}}\right) θ=arctan(xf,yf)

梯度方向与信号的方向垂直,求出梯度方向就可以知道信号的方向。

梯度方向是灰度变换最快的方向。

图像梯度的模

用 图像梯度的模 来反映图像的边缘信息。

∣ ∣ V f ∣ ∣ = ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 |\left|{\mathcal{V}}f\right||={\sqrt{\left({\frac{\partial f}{\partial x}}\right)^{2}+\left({\frac{\partial f}{\partial y}}\right)^{2}}} Vf=(xf)2+(yf)2
梯度模:值越大表示当前点是边缘的可能性越大。

在这里插入图片描述

噪声的影响

噪声图像的某一行或列的灰度值随位置变换的情况
在这里插入图片描述

噪声影响带来的问题

若对灰度函数直接求导,图像中不能确定最大导数位置。
在这里插入图片描述

解决办法(先平滑处理)

高斯核去噪

从图像上看,每个点都有噪声,这是高斯噪声的特点,所以考虑使用高斯核去噪平滑,之后对去噪后的信号求导。
在这里插入图片描述
缺点:需要进行2次卷积操作,一次f *g,一次求x偏导

  1. 第一次卷积:高斯去噪
  2. 第二次卷积:图像求导(对x求偏导 − 1 ∣ 1 -1|1 1∣1,对y求偏导 1 − 1 \frac{1}{-1} 11

解决办法:卷积交换律(高斯一阶偏导核)

先对高斯卷积核(平滑)进行求导卷积(求导),得到新的卷积核(求导+平滑),再
用这个新的卷积核与原图卷积。

高斯一阶偏导核

高斯卷积+求导卷积

d d x ( f ∗ g ) = f ∗ d d x   g \frac{d}{d x}(f*g)=f*\frac{d}{d x}\,g dxd(fg)=fdxdg

微分是卷积,而卷积具有结合性
在这里插入图片描述
节约了一次图像卷积的操作!

高斯一阶偏导核权值可视化

一半正,一半负。

在这里插入图片描述

高斯一阶偏导卷积核的方差参数
在这里插入图片描述
上图中,从左到右,高斯一阶偏导卷积核的方差分别为1,3,7。

  • 方差大,提取粗粒度轮廓。
  • 方差小,提取细粒度轮廓。

高斯核 vs 高斯一阶偏导核

高斯核

  • 消除高频成分(低通滤波器)
  • 卷积核中的权值不可为负数
  • 权值总和为1(恒定区域不受卷积影响)
    在这里插入图片描述

高斯一阶偏导核

  1. 高斯的导数

  2. 卷积核中的权值可以为负
    在这里插入图片描述

  3. 权值总和是0(恒定区域无响应)

    • 恒定区域无响应,即恒定区域不会有边缘
    • 例如一张全白的图,使用[-3,2] 求导, 1 ∗ ( − 3 ) + 1 ∗ 2 = − 1 1 * (-3) + 1 * 2 = -1 1(3)+12=1,计算结果显示有梯度,与实际不符,全白的图不可能有梯度。所以必须使得权值总和为0,保证像这样的情况才不会出错。
  4. 高对比度点的响应值大

    • 响应值越大,表示该点是边缘点的概率越大。
      在这里插入图片描述

边缘检测目标

Canny边缘检测器

在这里插入图片描述

高斯一阶偏导核卷积图像

在这里插入图片描述
期望得到上图中右图所示很精确的边缘。

高斯一阶偏导核卷积图像的缺点

计算每个点的梯度幅值和方向。

  • 梯度幅值:用来描述该点是不是边缘。
  • 期望得到上图中右图所示很精确的边缘。

在这里插入图片描述
经过高斯一阶偏导核的处理,梯度强度边缘很粗,因为边缘附近的信号,从左到右是慢慢改变的,而不是突然改变的阶梯型,但边缘检测想要更细的边,就需要非极大值抑制。
在这里插入图片描述

非极大值抑制

在这里插入图片描述
p跟梯度方向的正方向距离为1的 r 反方向距离为1的 q 比较梯度强度。

梯度强度p > q && p > r,则保留p点,否则删除p点。

提示:q 点、r 点坐标通常不是整数,其对应的强度需要插值获得!!!
一般r和q不在图像正规的像素点上,通常r和q点的强度需要周边的点加权求和来获得。

但,非最大化抑制的结果中有噪声,需要通过门限值对噪声进行过滤。

门限过滤

在这里插入图片描述

Canny如何选择去噪时的门限值?- 双阈值

  • 高阈值门限:提取高骨干边缘曲线。
  • 低阈值门限:提取链接骨干的边缘曲线。低阈值会筛选出很多边,但只保留与高阈值提取的边有关系的边。
    在这里插入图片描述

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

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

相关文章

系统架构设计师-数据库系统(2)

目录 一、规范化理论 1、规范化理论的基本概念 2、Armstrong公理 3、候选键 4、范式 5、模式分解 一、规范化理论 1、规范化理论的基本概念 非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。 下表可拆分为 学号、姓名…

链表应用(C++,递增合并、递增求交集、逆序、删除区间)

#include<iostream> using namespace std; typedef struct list {int data;list* next; }list,*linklist; void Newlist(linklist& l) {l new list;l->next NULL; } void Createlist(linklist& l) {cout << "输入链表长度&#xff1a;" <…

OpenCV之摩尔纹

摩尔纹 用数码相机拍摄景物中&#xff0c;如果有密纹的纹理&#xff0c;常常会出现莫名其妙的水波样条纹。这就是摩尔纹。简单的说&#xff0c;摩尔纹是差拍原理的一种表现。从数学上讲&#xff0c;两个频率接近的等幅正弦波叠加&#xff0c;合成信号的幅度将按照两个频率之差变…

捕获多种异常练习

捕获多种异常 下面存在三种异常&#xff1a;ValueError、KeyboardInterrupt 和其他异常&#xff0c;分别捕获并输出相应的提示语句 当用户输入123以外的字符时出现ValueError异常&#xff0c;这时提示用户输入数字1-3&#xff1b;当用户在输入数字后CtrlC时出现KeyboardInterru…

利用Pycharm将python程序打包为exe文件(亲测可用)

最近做了一个关于py的小项目&#xff0c;对利用Pycharm将python文件打包为exe文件不是很熟悉&#xff0c;故学习记录之。 目录 一、下载pyinstaller库 二、打开Pycharm进行打包&#xff08;不更改图标&#xff09; 三、打开Pycharm进行打包&#xff08;更改图标&#xff09…

ArcGIS Engine:C#基础语法的了解

目录 01 前言 02 实验 2.1 创建“Hello World”程序 2.2 创建程序&#xff0c;完成成绩评定功能 2.3 创建程序&#xff0c;完成1到100的累加 2.4 窗体应用程序 01 前言 学了一些语言了&#xff0c;确实发现&#xff0c;语言只是工具&#xff0c;只有你作为初恋的语言值得…

Linux系统编程6(线程互斥,锁,同步,生产消费模型)

上篇文章介绍完线程的概念后&#xff0c;我们将在这篇文章中初步探讨线程编程以及线程应用中的问题&#xff0c;这篇文章将以抢票系统为例&#xff0c;贯穿整篇文章。笔者将介绍在多线程编程中会出现的问题&#xff0c;什么是同步&#xff1f;什么是互斥&#xff1f;为什么多线…

【nginx】(13: Permission denied) while connecting to upstream

一、问题背景 在使用nginx基于域名转发时&#xff0c;发现通过curl可以请求成功&#xff0c;但是通过外网域名访问无法访问通&#xff0c;通过日志查询发现如下问题 2023/09/18 11:26:18 [crit] 11981#11981: *106 connect() to 127.0.0.1:12500 failed (13: Permission deni…

如何理解JavaScript定时器的4种写法-附带面试题讲解

在JavaScript里&#xff0c;我们已经会使用一些原生提供的方法来实现需要延时执行的操作代码&#xff0c;比如很多在线时钟的制作&#xff0c;图片轮播的实现&#xff0c;还有一些广告弹窗&#xff0c;但凡可以自动执行的东西&#xff0c;都是可以和定时器有关的。今天就来和大…

网工内推 | 国企、上市公司,IA/IP认证即可,有年终、绩效

01 上海市机械设备成套&#xff08;集团&#xff09;有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、 负责公司电脑、网络设备、电器设备、办公设备等硬件的管理、维护和使用&#xff0c;做好计算机硬件及办公设备台帐&#xff1b; 2、 负责公司办公软件的…

博客系统的页面设计

效果展示 博客列表页 博客详情页 博客登录页 博客编辑页 主要分成四个页面: 博客列表页 显示出都有哪些博客博客详情页 展示博客的详细正文博客登录页 进行登录操作博客编辑页 有一个 markdown 编译器,可以编写博客内容 1.实现博客列表页 1.背景设计 body {/*注意这里相对…

【UE5 C++ 學習日志】01. UEnhancedInput

UE5 提供了一種對複雜輸入處理或運行時重新映射按鍵增强輸入插件。此插件向上兼容UE4的默認輸入系統&#xff0c;并可以實現径向死区、同时按键、上下文输入和优先级安排等多種功能。 核心概念&#xff1a; &#xff08;1&#xff09;Input Actions&#xff1a; Input Actio…

ROS学习ROS基础

ROS学习&#xff08;一&#xff09; ROS基础 一、工作空间基本操作二、ROS通信编程——话题编程 "hello world " 例程 1、创建发布者&#xff08;talker&#xff09;2、创建订阅者&#xff08;listener&#xff09;3、添加编译选项4、运行可执行文件 自定义话题消息…

在PHP8中对数组进行排序-PHP8知识详解

在php8中&#xff0c;提供了丰富的排序函数&#xff0c;可以对数组进行排序操作。常见的排序函数如下几个&#xff1a;sort() 函数、rsort() 函数、asort() 函数、arsort() 函数、ksort() 函数、krsort() 函数、natsort()函数和natcascsort()函数。 1、sort() 函数&#xff1a;…

<C++> 红黑树模拟实现map和set

使用一颗红黑树同时封装map和set。 红黑树源码 #pragma once #include <cassert> #include <iostream> #include <utility> using namespace std;// 红黑树结点颜色 enum Colour {RED,BLACK, };template<class K, class V> struct RBTreeNode {//使用…

分析常见数据结构在内存中的存储形式

本文会在x64dbg中分析vector,list,map的内存存储特点 目录 分析vector在内存中的存储形式 x32dbg分析vector数组 总结一下vector的内存布局 分析 list 在内存中的存储形式 x32dbg分析 list 数组 总结一下 list 的内存布局 分析map在内存中的存储形式 x32dbg分析map 总…

python爬虫爬取电影数据并做可视化

思路&#xff1a; 1、发送请求&#xff0c;解析html里面的数据 2、保存到csv文件 3、数据处理 4、数据可视化 需要用到的库&#xff1a; import requests,csv #请求库和保存库 import pandas as pd #读取csv文件以及操作数据 from lxml import etree #解析html库 from …

内网穿透工具 Cpolar 帮您实现用友U8 Cloud 的外网部署,一键畅享云端ERP

文章目录 前言1. 用户需求2. Cpolar内网穿透的安装和注册2.1 Cpolar云端设置2.2 Cpolar Web UI本地设置 3. 公网访问测试 前言 用友U8 Cloud是用友公司推出的一款云端ERP解决方案。它以云计算技术为基础&#xff0c;为企业提供全面的企业资源管理解决方案&#xff0c;涵盖了财…

主机存活检测脚本

原理演示 在命令行下用下面命令安装scap模块&#xff1a; python -m pip install scapyscapy与scrapy 有非常大的区别。 scapy 是一个Python 的第三方模块&#xff0c;被称为“网络神器”。scapy 模块能够发送、捕获、分析和铸造网络数据 sr1发送接收函数 如图&#xff0c;安…