返回顶部
首页 > 资讯 > 后端开发 > Python >opencv 边缘检测 cv2.Canny()详解
  • 880
分享到

opencv 边缘检测 cv2.Canny()详解

opencv计算机视觉python 2023-09-03 06:09:17 880人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

👨‍💻个人简介: 深度学习图像领域工作者 🎉总结链接:              链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直

👨‍💻个人简介: 深度学习图像领域工作者
🎉总结链接:
             链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直接复制运行即可。包括:
                    📌1.工作中常用深度学习脚本
                    📌2.torch、numpy等常用函数详解
                    📌3.opencv 图片、视频等操作
                    📌4.个人工作中的项目总结(纯干活)
              链接: https://blog.csdn.net/qq_28949847/article/details/128552785
🎉视频讲解: 以上记录,通过B站等平台进行了视频讲解使用,可搜索 ‘Python图像识别’ 进行观看
              B站:Python图像识别
              抖音:python图像识别
              西瓜视频:Python图像识别


cv2.Canny()函数是OpenCV中用于边缘检测的函数,其主要功能是检测图像中的边缘并标记出来。

函数的调用格式如下:

edges = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]])

其中,参数含义如下:

  • image:要进行边缘检测的输入图像,可以是灰度图像或彩色图像。

  • threshold1:第一个阈值,用于边缘检测中的滞后阈值,建议取值为100。

  • threshold2:第二个阈值,用于边缘检测中的滞后阈值,建议取值为200。

  • edges:可选参数,用于存储边缘检测的结果。如果指定了该参数,则该参数会被用来存储检测到的边缘图像。如果没有指定该参数,则函数会自动创建一个与输入图像相同大小的数组来存储检测到的边缘图像。

  • apertureSize:可选参数,用于指定Sobel算子的大小,建议取值为3。

  • L2gradient:可选参数,用于指定是否使用 L 2 L_2 L2梯度计算方式。默认值为False,表示使用 L 1 L_1 L1梯度计算方式。

cv2.Canny()函数的工作原理如下:

  1. 对输入图像进行灰度化处理。
  2. 对灰度图像进行高斯滤波,以平滑图像并去除噪声。
  3. 对滤波后的图像使用Sobel算子计算梯度幅值和方向。
  4. 对梯度幅值进行非极大值抑制,以压缩边缘带宽。
  5. 对压缩后的边缘带宽使用滞后阈值进行二值化,得到二值化图像。
  6. 对二值化图像进行连接操作,将断开的边缘进行连接,得到最终的边缘图像。

下面是一个简单的示例代码,演示了如何使用cv2.Canny()函数进行边缘检测:

import cv2import numpy as np# 读取一张图片img = cv2.imread('test.jpg', 0)# 使用Canny函数进行边缘检测edges = cv2.Canny(img, 100, 200)# 显示结果cv2.imshow('Original', img)cv2.imshow('Canny Edges', edges)cv2.waiTKEy(0)cv2.destroyAllwindows()

需要注意的是,在使用cv2.Canny()函数进行边缘检测时,阈值的选择对最终的结果有很大的影响。一般来说,较低的阈值可以检测到较弱的边缘,而较高的阈值可以去除较弱的边缘。建议在使用该函数时,先使用默认的阈值进行测试,然后根据实际情况进行调整。

来源地址:https://blog.csdn.net/qq_28949847/article/details/129537581

--结束END--

本文标题: opencv 边缘检测 cv2.Canny()详解

本文链接: https://lsjlt.com/news/391669.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作