07 Canny算子边缘检测


前言

前面学习了几个经典算子:
06Laplician
05Priwitt
04Sobel
03Roberts
今天学习的是Canny算子。


一、Canny算子是什么?

Canny算子是一种最优边缘检测算子,它具有较高的精度和低的误检率,常用于计算机视觉和图像处理领域。Canny算子主要由以下几个步骤组成:

1高斯滤波:在图像中采用高斯滤波器来平滑图像,以去除噪声。

2计算图像的梯度:在平滑后的图像中计算每个像素的梯度值和方向。

3非极大值抑制:在梯度方向上,只保留局部最大值的像素,以获得最终的边缘。

4双阈值检测:根据高和低阈值,将图像中的像素分为强边缘和弱边缘。

5边缘连接:根据强边缘和弱边缘的位置和拓扑关系,将弱边缘连接成跟强边缘相连的边缘。

以上步骤是Canny算子的主要过程。相比其他边缘检测算法,Canny算子产生的边缘更为细腻、准确,能够有效地避免噪声和误检率高的问题。

二、程序验证

1.使用第三方库

代码如下(示例):

扫描二维码关注公众号,回复: 15565455 查看本文章
import cv2
import numpy as np

def canny_edge_detection(image):
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    blurred_image = cv2.GaussianBlur(gray_image, (3, 3), 0)
    edges = cv2.Canny(blurred_image, 30, 100)
    return edges

在这里插入图片描述

总结

本文是调用第三方库完成canny边缘提取的,由于canny边缘提取包括的知识点有点多,以我目前的代码水平只能慢慢实现他的全部功能,这部分会在后面文章进行更新。

猜你喜欢

转载自blog.csdn.net/CSDN_Yangk/article/details/129859396