【opencv学习笔记 20 Canny边缘提取】

本文详细介绍了使用Canny算法进行边缘检测的过程,包括高斯模糊、灰度转换、梯度计算、非最大抑制及高低阈值处理等步骤,并提供了Python实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Canny边缘提取

入门级必备!!!

  1. 高斯模糊
  2. 灰度转换
  3. 计算梯度
  4. 非最大梯度抑制
  5. 高低阈值输入二值化图像

相关代码

import cv2 as cv
import numpy as np


def edge_demo(image):
    # 高斯模糊
    blurred = cv.GaussianBlur(image, (3, 3), 0)
    # 灰度化
    gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY)
    # 求x和y方向的梯度
    # X Gradient
    xgrad = cv.Sobel(gray, cv.CV_16SC1, 1, 0)
    # Y Gradient
    ygrad = cv.Sobel(gray, cv.CV_16SC1, 0, 1)
    # edge9
    # 同时用x和y方向的梯度 下面的不用梯度也可以
    edge_output = cv.Canny(xgrad, ygrad, 50, 150) # 50为低阈值 150为高阈值
    # edge_output = cv.Canny(gray, 50, 150) # 不用梯度
    cv.imshow("Canny Edge", edge_output)
    # 与运算获得彩色的边界
    dst = cv.bitwise_and(image, image, mask=edge_output)
    cv.imshow("Color Edge", dst)


src = cv.imread("image20.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
edge_demo(src)
cv.waitKey(0)

cv.destroyAllWindows()

效果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值