| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 计算机视觉教程3-1:全面详解图像边缘检测算法(附Python实战) -> 正文阅读 |
|
[人工智能]计算机视觉教程3-1:全面详解图像边缘检测算法(附Python实战) |
0 写在前面
本文采用面向对象设计,定义了一个边缘检测类
这个类的构造函数为
读取的是图像的基本信息。 1 一阶微分算子图像边缘是数字图像的高频成分,对应图像梯度的极值。在二维离散数字图像上,某个方向上图像强度函数微分使用有限差分法来近似,即: { ? f ? x [ i , j ] ≈ f [ i + 1 , j ] ? f [ i , j ] ? f ? y [ i , j ] ≈ f [ i , j + 1 ] ? f [ i , j ] \begin{cases} \frac{\partial f}{\partial x}\left[ i,j \right] \approx f\left[ i+1,j \right] -f\left[ i,j \right]\\ \frac{\partial f}{\partial y}\left[ i,j \right] \approx f\left[ i,j+1 \right] -f\left[ i,j \right]\\\end{cases} {?x?f?[i,j]≈f[i+1,j]?f[i,j]?y?f?[i,j]≈f[i,j+1]?f[i,j]? 因此图像边缘检测即是对图像的差分运算。 1.1 Prewitt算子Prewitt算子本质上就是 x x x或 y y y方向上相邻像素的差分。
其实就是用 x x x与 y y y方向上相邻像素的差分为方向的向量 ? f = [ ? f ? x ? f ? y ] \nabla f=\left[ \begin{matrix} \frac{\partial f}{\partial x}& \frac{\partial f}{\partial y}\\\end{matrix} \right] ?f=[?x?f???y?f??] 在编程实现上,就是构造上图的两个方向的滤波算子,然后将 x x x、 y y y两个方向的边缘合成就是整张图各方向的边缘检测结果
1.2 Sobel算子对高斯核函数 x x x、 y y y方向求导,并将其模板化即得Sobel算子。Sobel算子相比于Prewitt算子有更强的抗噪能力,因为其结合了高斯滤波的效果。 在编程实现上,就是构造上图的两个方向的滤波算子,然后将 x x x、 y y y两个方向的边缘合成就是整张图各方向的边缘检测结果
2 二阶微分算子2.1 Laplace算子将Laplace算子 ? 2 f = ? 2 f ? x 2 + ? 2 f ? y 2 \nabla ^2f=\frac{\partial ^2f}{\partial x^2}+\frac{\partial ^2f}{\partial y^2} ?2f=?x2?2f?+?y2?2f? 写成差分方程形式为 ? 2 f = f ( x + 1 , y ) + f ( x ? 1 , y ) + f ( x , y + 1 ) + f ( x , y ? 1 ) ? 4 f ( x , y ) \nabla ^2f=f\left( x+1,y \right) +f\left( x-1,y \right) +f\left( x,y+1 \right) +f\left( x,y-1 \right) -4f\left( x,y \right) ?2f=f(x+1,y)+f(x?1,y)+f(x,y+1)+f(x,y?1)?4f(x,y) 将差分方程进一步写成卷积核形式如图(a),可将其扩展为图(b)使之具有各向同性。微分算子属于高通滤波,在锐化边缘的同时也增强了噪点,因此Laplace算子抗噪能力弱,且不能检测边缘方向。
2.2 LoG算子为克服Laplace算子抗噪能力弱这一问题,引入高斯-拉普拉斯算子(LoG, Laplace of Gaussian),即先低通滤除噪声,再高通强化边缘,LoG算子本质上是带通滤波器。
3 Canny边缘检测Canny边缘检测算法可以分为以下步骤。
下面是Canny边缘检测算法的效果。 本文完整代码请关注下方公众号回复“CV008”获取~ 🚀 计算机视觉基础教程说明
🔥 更多精彩专栏: 🏠 欢迎加入社区和更多志同道合的朋友交流:AI 技术社 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 2:35:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |