计算机视觉-边缘检测

一、边缘

1.1 边缘的类型

①实体上的边缘

②深度上的边缘

③符号的边缘

④阴影产生的边缘

不同任务关注的边缘不一样

1.2 提取边缘

突变-求导(求导也是一种卷积)

近似,=1(右边的一个值-自己=可以用卷积做)

该点f(x,y)在x方向上的导数为f(x+1,y)*1 + f(x,y)*(-1),也就是f(x,y)*g(x,y)在卷积区域内求和,卷积区域为1*2,-1与1对应的是g(x,y)。

对x求导,是y方向左右差异比较大的

对y求导,是x方向上下差异比较大的

eg:-1、1与原图卷积就是出现左下方的图,(右减左)

1.3 图像的梯度

梯度方向与边(边缘)垂直

梯度指向信号方向大的地方

梯度值越大,说明这个点是边缘的可能性就越大

eg:

Prewitt:自己左边的值与右边的值相减,衡量自己是不是边缘值

Sobel:先平滑高斯滤波,再边缘提取(对噪声敏感程度更低)

Roberts:是检测135度的线,是检测45度的线

检测模版与线的方向是垂直的

1.4 噪声的影响

现实中信号有噪声,求导后找不到梯度的极大值和极小值

先用高斯核与原图像卷积进行滤波去噪,再求导就能找到极值点了(费时)?

改进:利用卷积的交换律和结合律,先算高斯核的导数再算与原图像的卷积(高斯偏导模版

高斯偏导模版(越黑越负)

x方向求偏导:衡量y方向差异

y方向求偏导:衡量x方向差异

1.5 高斯核的参数

用高斯偏导核卷积图像就可以得到去噪后的边缘图像

像素代表方差,方差越大,平滑能力越强

给出标准差就能生成高斯模版(高斯模版只需要σ和窗宽两个量就可以计算出,而窗宽=2σ+1)

1.6 回顾 高斯平滑核和高斯偏导核

高斯平滑核:用来做平滑的,不会有负数,权值和等于1

高斯偏导核:用来提取边缘信息,会有负数,权值和等于0

二、Canny算法

2.1 Canny算法

用x方向的卷积模版计算一次再用y方向的卷积模版计算一次,求和

一个阈值,减小宽度

2.2 非极大值抑制

减小线条宽度

计算梯度大小,剔除掉梯度小的点,选择合适的边缘点

抑制后图像

2.3 双门限法

下巴边没有了??怎么办 双门限

高门限:检测出边缘边

低门限:排除噪声(把有连接的找出来)

2.4 算法步骤

1、高斯偏导(考虑到噪声)滤波器:先对图像进行x、y方向滤波

2、衡量每个点的梯度强度,梯度方向(看有没有比它还大的)

3、非最大化抑制(宽边变成细边)

4、定义两个门限

相关推荐
大模型真好玩28 分钟前
LangChain DeepAgents 速通指南(三)—— 让Agent告别混乱:Tool Selector与Todo List中间件解析
人工智能·langchain·trae
孟祥_成都1 小时前
【全网最通俗!新手到AI全栈开发必读】 AI 是如何进化到大模型的
前端·人工智能·全栈
牛奶1 小时前
AI辅助开发的基础概念
前端·人工智能·ai编程
东坡肘子1 小时前
OpenClaw 不错,但我好像没有那么需要 -- 肘子的 Swift 周报 #125
人工智能·swiftui·swift
风象南9 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端
牛奶10 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶10 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
罗西的思考12 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab13 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab13 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯