Python中cv2.Canny() 函数使用方法

 更新时间:2023年07月07日 09:17:11   作者:change_xzt  
cv2.Canny() 函数是 OpenCV 中的边缘检测函数之一,用于检测图像的边缘,它的基本原理是通过计算图像中每个像素点的梯度值来检测边缘,本文通过示例代码介绍Python中cv2.Canny() 函数用法,需要的朋友参考下吧

Python中cv2.Canny() 函数用法详解

一、Canny算子边缘检测原理及步骤

cv2.Canny() 函数是 OpenCV 中的边缘检测函数之一,用于检测图像的边缘。它的基本原理是通过计算图像中每个像素点的梯度值来检测边缘。具体来说,它的实现步骤如下:
1、对输入图像进行高斯滤波,以平滑图像并去除噪声;
2、计算图像的梯度,找到像素点处灰度值变化最大的方向和大小;
3、应用非极大值抑制(Non-maximum Suppression),以消除可能出现的重复边缘;
4、应用双阈值(Double Thresholding)来检测和连接边缘。

二、cv2.Canny() 函数的语法

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

其中,各参数的含义如下:

  • image:输入图像,必须为单通道灰度图像;
  • threshold1:第一个阈值,用于边缘连接;
  • threshold2:第二个阈值,用于边缘检测;
  • edges:输出的边缘图像;
  • apertureSize:Sobel 算子的大小,可选值为 3、5、7,默认值为 3;
  • L2gradient:是否使用 L 2 L_2L 2 范数计算梯度大小,可选值为 True 和 False,默认值为 False。
  • cv2.Canny() 函数的返回值为边缘图像。

注:第一个阈值参数为低阈值,用于确定哪些梯度变化被认为是潜在的边缘。所有梯度值高于低阈值的像素点都被认为是潜在的边缘点。第二个阈值参数为高阈值,用于确定哪些潜在的边缘点是真正的边缘。所有梯度值高于高阈值的像素点都被认为是真正的边缘点。同时,所有梯度值低于低阈值的像素点都被认为不是边缘点。在实际应用中,合适的阈值参数需要根据具体图像和任务进行调整,以获得最佳效果。通常,可以通过试验不同的参数值来确定最佳的阈值参数。

三、应用示例

下面是一个使用 cv2.Canny() 函数进行边缘检测的例子:

import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)
cv2.imshow('Original Image', img)
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的例子中,我们将一张彩色图像读入,将其转化为灰度图像后,使用 cv2.Canny() 函数进行边缘检测。其中,第一个阈值为 100,第二个阈值为 200。最后,我们将原始图像和边缘图像一起显示出来。

到此这篇关于Python中cv2.Canny() 函数用法详解的文章就介绍到这了,更多相关Python cv2.Canny() 函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python正确读取文件路径的三种方式

    python正确读取文件路径的三种方式

    这篇文章主要介绍了python正确读取文件路径的三种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 使用tensorboard可视化loss和acc的实例

    使用tensorboard可视化loss和acc的实例

    今天小编就为大家分享一篇使用tensorboard可视化loss和acc的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python三方库安装路径及路径变更方式

    Python三方库安装路径及路径变更方式

    这篇文章详细介绍了在Python环境中安装和管理第三方库的多种方法,包括直接使用pip安装、从官方网站下载whl文件、使用压缩包安装等,还提到了如何指定国内镜像源以加速安装过程,以及如何修改和查看安装路径,此外,文章还涵盖了如何导出和导入库文件
    2025-01-01
  • Python使用pypandoc将markdown文件和LaTex公式转为word

    Python使用pypandoc将markdown文件和LaTex公式转为word

    pypandoc 是一个用于 pandoc 的轻量级 Python 包装器,支持多种格式的文档转换,下面我们来看看如何使用pypandoc将markdown文件和LaTex公式转为word吧
    2025-04-04
  • Python 字典中的所有方法及用法

    Python 字典中的所有方法及用法

    这篇文章主要介绍了Python 字典中的所有方法及用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 关于yolov8训练的一些改动及注意事项

    关于yolov8训练的一些改动及注意事项

    Yolo是一种目标检测算法,目标检测的任务是从图片中找出物体并给出其类别和位置,这篇文章主要给大家介绍了关于yolov8训练的一些改动及注意事项,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • python中Apriori算法实现讲解

    python中Apriori算法实现讲解

    给大家详细讲解一下Apriori 算法在python中的实现过程,有需要的朋友收藏一下本片文章吧。
    2017-12-12
  • 基于matlab atan2函数解析

    基于matlab atan2函数解析

    这篇文章主要介绍了matlab atan2函数解析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python正则表达式的应用详解

    Python正则表达式的应用详解

    这篇文章主要介绍了Python中正则表达式的详细教程,正则表达式是Python学习进阶当中的重要内容,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • Python解析并读取PDF文件内容的方法

    Python解析并读取PDF文件内容的方法

    这篇文章主要介绍了Python解析并读取PDF文件内容的方法,结合实例形式分别描述了Python2.7在win32与win64环境下实现读取pdf的相关操作技巧,需要的朋友可以参考下
    2018-05-05

最新评论