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

Canny边缘检测

Canny边缘检测

Canny边缘检测

  • 使用高斯滤波器,以平滑图像消除噪声点
  • 计算图像中每个像素点的梯度和方向
  • 应用非极大值(None-Maximum Suppression)抑制,以消除边缘检测带来的杂散相应
  • 应用双阈值检测来确定真实的和潜在的边缘
  • 通过抑制孤立的弱边缘完成边缘检测
1.使用高斯滤波操作进行噪声点消除

在这里插入图片描述

2.计算梯度和方向

梯度和方向算子使用sobel算子,计算Gx和Gy,方向就是arc tan(Gy/Gx),通过sobel 算子Sx和Sy 计算Gx和Gy的值,

在这里插入图片描述
在这里插入图片描述

3.非极大值抑制

在这里插入图片描述

由于使用线性差值法计算比较复杂,采用近似8个方向像素点进行比较。

在这里插入图片描述

非极大值抑制就是临近像素梯度方向例如上图,梯度方向为C->A->B,如果A点为梯度方向值最大的点则认为该点位边缘像素点保留,另外两个点抑制掉。

4.双阈值检测

在这里插入图片描述

  • 在梯度值大于MaxVal就处理为边界

  • 如果小于minVal就舍弃

  • 如果梯度值minVal<梯度值<maxVal时:

    1.如果该点邻域范围内(周围8个点)有大于maxVal的值,把该点纳入边缘点

    2.如果邻域中不存在大于maxVal的值那么就舍弃。

5.代码实现
import cv2
import numpy as npdef cv_show(name,img): # 定义函数加:cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()img = cv2.imread(r'C:\learn\MarkDown\anconda\lena.png', cv2.IMREAD_GRAYSCALE)
v1=cv2.Canny(img,80,150)
v2= cv2.Canny(img,50,150)
res=np.hstack((v1,v2))
cv_show('res',res)

在这里插入图片描述

http://www.dtcms.com/a/336127.html

相关文章:

  • Python异步编程实战:爬虫案例
  • 【Python】-- 机器学习项目 - 基于KNN算法的鸢尾花分类
  • 【自动化运维神器Ansible】Playbook中的when条件判断:精细化控制任务执行
  • 【Linux系列】常见查看服务器 IP 的方法
  • Python 基本语法(二)
  • 数据结构初始知识
  • 利用标准IO实现寻找文件中字符出现最多次数
  • 问津集 #5:Crystal: A Unified Cache Storage System for Analytical Databases
  • 6-服务安全检测和防御技术
  • gitee SSH配置
  • 探索分子世界:结构、性质、反应与前沿进展
  • 编程算法实例-求一个整数的所有因数
  • 力扣 hot100 Day76
  • WPFC#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
  • 代码随想录刷题——字符串篇(四)
  • 深度学习之优化器
  • 自然语言处理NLP---预训练模型与 BERT
  • Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
  • Git 入门指南:核心概念与常用命令全解析
  • 「数据获取」《中国文化文物与旅游统计年鉴》(1996-2024)(获取方式看绑定的资源)
  • 链式前向星、vector存图
  • Kafka_Broker_副本基本信息
  • 【FreeRTOS】信号量与互斥量
  • LeetCode热题100--104. 二叉树的最大深度--简单
  • 给纯小白的Python操作 PDF 笔记
  • 【牛客刷题】BM63 跳台阶:三种解法深度解析(递归/DP动态规划/记忆化搜索)
  • Baumer高防护相机如何通过YoloV8深度学习模型实现工作设备状态的检测识别(C#代码UI界面版)
  • Shell脚本-流程控制语句基本语法结构
  • Mutually aided uncertainty
  • 5G NR PDCCH之速率匹配