目录
edges = cv2.Canny(image, 100, 200)
一、提前准备
1、树莓派4B 及 64位系统
2、提前安装opencv库 以及 numpy库
3、保存一张图片
二、代码详解
Canny算法可以形象地比喻为一个“探边者”的过程。首先通过平滑处理来减少干扰(去除噪声),然后仔细“探摸”图像,寻找亮度变化最大的地方(找到图像中的变化),并通过过滤和连接步骤,最终确定真正的边缘。这种方法不仅找到了边缘,还非常有效地排除了不必要的“边缘”信息,使得结果更加清晰、准确。
import cv2
# 打开图像
image = cv2.imread('/home/raspberry4B/Pictures/MD.jpg')
# 应用边缘检测
edges = cv2.Canny(image, 100, 200)
# 显示边缘检测后的图像
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
edges = cv2.Canny(image, 100, 200)
-
功能: 使用
cv2.Canny
函数对图像进行边缘检测。Canny边缘检测是一种多阶段算法,用于检测图像中的边缘。 -
参数:
image
: 输入的图像。100
: 第一个阈值,称为低阈值,用于检测图像中的弱边缘。小于此值的像素被认为不是边缘。200
: 第二个阈值,称为高阈值,用于检测图像中的强边缘。大于此值的像素被保留为边缘像素。
Canny边缘检测的步骤:
- 噪声去除: 使用高斯滤波器去除图像中的噪声。
- 计算梯度: 使用Sobel算子计算图像的梯度,获取边缘强度和方向。
- 非最大值抑制: 保留局部梯度方向上的最大值,抑制非边缘的像素。
- 双阈值检测: 使用两个阈值(高阈值和低阈值)识别强边缘和弱边缘,并对边缘进行跟踪。
三、运行现象
四、完整工程贴出
持续更新中……