OpenCV Canny边缘检测

news2024/9/29 5:36:53

        本文是OpenCV图像视觉入门之路的第13篇文章,本文详细的介绍了Canny边缘检测算子的各种操作,例如:Canny算子进行边缘检测等操作。

Canny函数是OpenCV中用于执行边缘检测的函数之一,其参数包括:

  • threshold1:第一个阈值,用于在检测到的边缘上消除弱的像素点。通常设置为较小的值,例如50或100。
  • threshold2:第二个阈值,用于确定哪些像素点是强边缘,哪些是弱边缘。通常设置为较大的值,例如150或200。
  • apertureSize:Sobel算子的核大小。通常设置为3,表示使用一个3x3的核,但也可以设置为5、7或其他值。
  • L2gradient:一个布尔值,指示是否使用L2范数来计算梯度幅值。如果设置为False,则使用L1范数。

Canny算法的基本原理如下:

  1. 去噪:由于图像可能存在噪声,需要对图像进行高斯平滑来去除噪声。

  2. 计算梯度幅值和方向:使用Sobel算子对平滑后的图像进行梯度计算,并计算每个像素点的梯度幅值和方向。

  3. 非极大值抑制:对每个像素点的梯度幅值进行非极大值抑制,以保留边缘的细节。

  4. 双阈值检测:使用两个阈值来确定哪些边缘是强边缘,哪些是弱边缘。通常,梯度幅值大于第二个阈值的像素点被认为是强边缘,梯度幅值小于第一个阈值的像素点被认为不是边缘,而位于两个阈值之间的像素点被认为是弱边缘。

  5. 滞后阈值处理:对于位于两个阈值之间的像素点,如果其与某个强边缘相连,则将其视为强边缘,否则将其视为非边缘。这个过程叫做滞后阈值处理,可以进一步增强边缘的连通性。

Canny算法的目标是从图像中提取出尽可能准确的边缘信息,并尽量避免将噪声或者其他不重要的信息误判为边缘。

import cv2
import numpy as np
from numpy import unicode

if __name__ == '__main__':
    img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)

    # v1 = cv2.Canny(img, 80, 150)
    # v2 = cv2.Canny(img, 50, 100)

    v1 = cv2.Canny(img, 120, 250)
    v2 = cv2.Canny(img, 50, 100)

    #res = np.hstack((v1, v2))

    cv2.imshow("v1", v1)
    cv2.imshow("v2", v2)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

 

 

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

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

相关文章

【NVMEM子系统】一、Efuse介绍及安全启动浅析

个人主页:董哥聊技术我是董哥,嵌入式领域新星创作者创作理念:专注分享高质量嵌入式文章,让大家读有所得!文章目录1、Efuse是什么2、OTP是什么3、什么是Secure Boot4、CPU内部安全机制4.1 bootROM4.2 iRAM4.3 eFUSE4.5 …

高通开发系列 - USB不能正常工作

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回高通开发系列 - 总目录 目录 USB不能正常工作问题概述问题分析USB不能正常工作 问题概述 升级完linux内核后,msm-4.9内核中usb、adb…

[22] Rodin: A Generative Model for Sculpting 3D Digital Avatars Using Diffusion

paper: https://arxiv.org/abs/2212.06135 总结:提出一种基于扩散模型和tri-plain features的3D虚拟人像生成方法。该方法包含多个模型,需要多次训练: 使用Blender synthetic pipeline(Fake it untill you make it)生…

LeetCode-257. 二叉树的所有路径

目录题目分析递归法题目来源 257. 二叉树的所有路径 题目分析 前序遍历以及回溯的过程如图: 递归法 1.递归函数参数以及返回值 要传入根节点,记录每一条路径的path,和存放结果集的result,这里递归不需要返回值,代…

时间序列预测--基于CNN的股价预测(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 时间序列预测有很多方法,如传统的时序建模方法ARIMA、周期因子法、深度学习网络等,本次实验采用最简单的…

趣味三角——第11章——一个著名的公式

目录 1. 著名无限积公式简述及证明 2. Jules Lissajous 和他的图形(Jules Lissajous and His Figures) 11章 一个著名的公式 The prototype of all infinite processes is repetition. . . . Our very concept of the infinite derives from the notion that what has bee…

umap 速度测试

今天终于把umap的速度给测了一下,结果如下 预处理文件(83万的数据量) # import scanpy as sc # adatasc.read("/DATA1/zhangjingxiao/yxk/dataset/FullMouseBrain/FullMouseBrain_raw.h5ad") # print(adata) # sc.pp.normalize_…

HTTP协议---详细讲解

目录 一、HTTP协议 1.http 2.url url的组成: url的保留字符: 3.http协议格式​编辑 ①http request ②http response 4.对request做出响应 5.GET与POST方法 ①GET ②POST 7.HTTP常见Header ①Content-Type:: 数据类型(text/html等)在上文…

H5/APP客服端源码/uniapp在线客服系统源码开源了,全源码代码解读及发行安装教程...

前言 目前,即时通讯在线咨询在网站、APP、小程序中已经是不可获取的功能,尤其是专注于线上营销的商家,迫切需要一套可以随时与访客交流的即时通讯工具。 如果使用市面上的SaaS客服系统,会在功能上受限制,需要开通高级V…

AWS Control Tower

Hello大家好,在本课时我们将讨论AWS Control Tower。 **AWS Control Tower是AWS organizations的一个功能延伸,**它是设置在organizations的上层,并为您提供一些额外的控制。 通过Control Tower可以创建一个Landing zone,Landing…

linux安装jenkins

1. 官网寻找安装方式 进入到jenkins官网,找到对应的下载页面:https://www.jenkins.io/download/ 根据自己系统还有想要使用的版本,进行选择即可。这里我们使用CentOS作为示例,版本选择长期支持版(LTS) 2.…

DaVinci:色彩扭曲器

调色页面:色彩扭曲器 Color:Color Warper色彩扭曲器 Color Warper是一个非常强大的调色工具,它基于网格的形式,能将控制点从一个位置“扭曲”到另一位置,从而可同时调整两个颜色属性:“色相 - 饱和度”&…

最简单的物体识别例子

第一步下载百度EASYDL工具。 网址EasyDL 图像 然后下载本地训练工具包: 本地下载,运行。 首先创建数据集, 完成,创建目标任务。 选择物体检测创建任务 选择训练,将数据集引入 通用型小型设备SDK 选择这个可以本地直…

Lesson 7.2 Mini Batch K-Means与DBSCAN密度聚类

文章目录一、Mini Batch K-Means 算法原理与实现二、DBSCAN 密度聚类基本原理与实践1. K-Means 聚类算法的算法特性2. DBSCAN 密度聚类基本原理3. DBSCAN 密度聚类的 sklearn 实现除了 K-Means 快速聚类意外,还有两种常用的聚类算法。(1) 是能…

在国内优雅地使用Rancher部署k8s集群

Background 作为一款开源的企业级Kubernetes管理平台,Rancher进入中国已经5年了,在国内使用会有从Github上下载资源慢、拉镜像十分耗时、无法使用library和system-library等问题。通过配置也是可以解决的,即使用阿里云镜像仓库搭建Rancher。记…

2022浙江省“信息安全管理与评估“--应急响应日志分析解析(高职组)

2022浙江省“信息安全管理与评估”(高职组)任务书2022浙江省“信息安全管理与评估”任务书第一阶段竞赛项目试题第二阶段竞赛项目试题任务1:应急响应第三阶段竞赛项目试题2022浙江省“信息安全管理与评估”任务书 第一阶段竞赛项目试题 先略…

21岁,华科博士在读,我的赛事Top经验

Datawhale干货 作者:vaew,华中科技大学,博士二年级在读简介笔者vaew,21岁,现为华中科技大学机械科学与工程学院陶波教授课题组博士二年级学生。主要研究方向是基于视触融合的机器人灵巧操作。学业之余的研究兴趣包括图…

ChatGPT怎么样?

一、先说几个注意的地方1、chat.openai.com发现是中国网络的用户也会访问不了,或提示你此网站在此国家访问不了。2、短信接码平台要先充值,才能加购物车。3、印度、马来西亚、印尼的号不行可以换美国的很快就能收到(找个便宜的)。…

刷题25-重排链表

重排链表 解题思路:通过观察链表可以发现,把链表一分为二,后半段链表反转,然后两个链表穿插连接,当链表的节点总数是奇数时,要保证链表的前半段比后半段多一个节点。 关于把链表一分为二,可以…

CSS中的BFC详细讲解(易懂)

带你用最简单的方式理解最全面的BFC~~~1.先了解最常见定位方案普通流元素按照其在 HTML 中的先后位置至上而下布局行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行所有元素默认都是普通流定位浮动元素首先按照普通流的位置…