Python实现基于canny算子的EdgeDetection(边缘提取)

本文介绍了使用Python和OpenCV库实现Canny边缘检测的方法,包括读取图像、计算梯度、非极大值抑制(NMS)和双阈值边缘追踪等步骤。详细注释贯穿代码,帮助理解每个阶段的操作。

Python实现基于canny算子的EdgeDetection(边缘提取) Python 语言实现

代码中含有详细注释

# 引入需要用的第三方库
import numpy as np
import cv2

读取图像

# 读取图像并resize
# 原图太大,做 NMS 时有点慢,resize 到(512,512)可节省时间
img = cv2.imread("./picture.jpg",0)
img = cv2.resize(img,(512,512))
x = img.shape[0]
y = img.shape[1]
img.shape

输出结构:
在这里插入图片描述
输出结果时图下的尺寸。

滤波(降噪)optional,我没有进行滤波操作,但是抛出代码。

# 定义高斯核
G_kernal = np.array([[1,1,1],[1,0,1],[1,1,1]])
# 高斯滤波操作
for i in range(1,x-1):
    for j in range(1,y-1):
        img[i,j] = ((img[i-1,j-1]*G_kernal[0,0])+(img[i-1,j]*G_kernal[0,1])+(img[i-1,j+1]*G_kernal[0,2])+(img[i,j-1]*G_kernal[1,0])+(img[i,j]*G_kernal[1,1])+(img[i,j+1]*G_kernal[1,2])+(img[i+1,j-1]*G_kernal[2,0])+(img[i+1,j]*G_kernal[2,1])+(img[i+1,j+1
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值