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

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

被折叠的 条评论
为什么被折叠?



