当前位置: 首页 > news >正文

常见的图像处理算法:Canny边缘检测

一、Canny边缘检测算子的由来

Canny 边缘检测算子是一种多级检测算法。1986 年由 John F. Canny 提出,同时提出 了边缘检测的三大准则:

1、低错误率的边缘检测:检测算法应该精确地找到图像中的尽可能多的边缘,尽可能的减少漏检和误检。  

2、最优定位:检测的边缘点应该精确地定位于边缘的中心。

3、图像中的任意边缘应该只被标记一次,同时图像噪声不应产生伪边缘。

Canny 算法出现以后一直是作为一种标准的边缘检测算法,此后也出现了各种基于Canny 算法的改进算法。时至今日,Canny 算法及其各种变种依旧是一种优秀的边缘检测算法

二、Canny 边缘检测步骤

1、使用高斯滤波,消除噪声,举例为 3*3 的高斯内核

2、计算梯度幅值和方向

用 sobel 算子在 x 和 y 方向求图像梯度

使用下面公式计算梯度的幅值和方向

梯度方向一般取值为:0°,45°,90°,135

3、非极大值抑制

这一步排除非边缘像素,仅仅保留了一些细线条(候选边缘)

4、滞后阈值:

Canny 使用了滞后阈值(高阈值和低阈值):

(1)若某一像素位置的幅值超过高阈值,该像素被保留为边缘像素。

(2)若某一像素位置的幅值小于低阈值,该像素被排除。

(3)若某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。

三、图像梯度计算 Gradient

图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大。一般情况下,图像梯度计算的是图像的边缘信息。严格来讲,图像梯度计算需要求导数,但图像梯度一般通过计算像素差值来得到梯度的近似值。常用的算子有Sobel,Scharr 和 Lapacian。计算图像梯度,水平梯度和垂直梯度采用 sobel 算子在 x 轴、y 轴方向计 算梯度,全部梯度使用下面的公式计算。


http://www.mrgr.cn/news/45322.html

相关文章:

  • 火情监测摄像机:守护生命与财产安全的“眼睛”
  • JVS·智能BI数据可视化图表:普通列表与分组列表配置全解析
  • QT开发:深入掌握 QtGui 和 QtWidgets 基本控件:QLabel、 QPushButton 和 QLineEdit 的应用
  • 【优选算法】--- 分治 快速排序
  • winform appconfig
  • Chromium 如何查找前端Browser 等对象定义在c++中的实现呢
  • 为什么Linux系统下的程序无法在Windows下运行
  • ORA-00257 archiver error 错误的处理方法
  • CAN XL协议标准在CANoe中的应用
  • 如何处理建筑材料弯曲?玛哈特矫平机高效应对
  • ruoyi-python 若依python版本部署及新增模块【问题解决】
  • 拍立淘API接口以图搜商品列表功能实现技术分享item_search_img|返回商品列表商品id商品价格url
  • 43页PPT | 大健康行业BI解决方案
  • Chromium 中JavaScript navigator对象c++实现分析
  • 获取外盘期货高频数据的方法以及量化分析
  • 【Git原理与使用】远程操作标签管理
  • PostgreSQL 小课专栏大纲
  • RL_足球教练
  • 学习threejs,模拟窗户光源
  • Protobuf:复杂类与接口