📜  使用 OpenCV 在Python中实现 Canny 边缘检测器(1)

📅  最后修改于: 2023-12-03 15:06:49.351000             🧑  作者: Mango

使用 OpenCV 在 Python 中实现 Canny 边缘检测器

简介

Canny 边缘检测器是一种常见的图像处理算法,可以有效地检测图像中的边缘。OpenCV 是一个流行的开源计算机视觉库,提供了 Canny 边缘检测器的实现。本文将介绍如何在 Python 中使用 OpenCV 实现 Canny 边缘检测器。

准备工作

在开始编写代码之前,需要安装以下软件:

  • Python 3.x(本文使用 Python 3.8.5)
  • pip 包管理器(Python 3 自带)
  • OpenCV Python 扩展包(可以通过 pip 安装)

在终端中执行以下命令安装 OpenCV Python 扩展包:

pip install opencv-python

安装完成后,即可开始编写代码。

代码实现

首先,引入必要的库:

import cv2
import numpy as np

接下来,加载图像并将其转换为灰度图像:

img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

然后,使用 Gaussian 滤波对图像进行平滑处理:

blur = cv2.GaussianBlur(gray,(5,5),0)

最后,使用 Canny 边缘检测器检测图像中的边缘:

edges = cv2.Canny(blur,50,150)

完整的代码如下:

import cv2
import numpy as np

img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray,(5,5),0)
edges = cv2.Canny(blur,50,150)

cv2.imshow('Original Image',img)
cv2.imshow('Canny Edges',edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码说明
  1. cv2.imread() 函数用于加载图像。该函数返回一个 NumPy 数组,表示图像的像素值。参数 'test.jpg' 指定要加载的图像文件路径。
  2. cv2.cvtColor() 函数用于将图像转换为灰度图像。参数 cv2.COLOR_BGR2GRAY 指定了要使用的颜色转换方式。
  3. cv2.GaussianBlur() 函数用于对图像进行平滑处理。参数 (5,5) 指定了用于卷积的内核大小。参数 0 指定了高斯函数的标准差。
  4. cv2.Canny() 函数用于检测图像中的边缘。参数 50150 是 Canny 边缘检测器中的两个阈值,用于确定边缘的强度。
结论

本文介绍了如何在 Python 中使用 OpenCV 实现 Canny 边缘检测器。编写代码时需要注意加载图像、转换为灰度图像、平滑处理和使用 Canny 边缘检测器等步骤。使用 Canny 边缘检测器可以有效地检测图像中的边缘。