欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

edge_detection

程序员文章站 2024-01-28 08:52:52
...

边缘检测

一般的方法,可以先得到灰度图,然后使用高斯模糊GaussianBlur,再用拉普拉斯函数Laplacian做边缘函数就好

这里使用更简单的方法,用Canny做:

Canny其实用了五个步骤, 高斯lü’bo(用来去噪),计算梯度,边缘上使用非最大抑制NMS,在检测到的边缘上使用双阈值去除假阳性,分析所有边缘和其连接保留真正的边缘

import numpy as np
import matplotlib.pyplot as plt
import cv2
img = cv2.imread('1.jpg')
img_edge = cv2.Canny(img, 200, 300) # 后面两个参数是阈值,较大的阈值2用于检测图像中明显的边缘,但一般情况下检测的效果不会那么完美,边缘检测出来是断断续续的。所以这时候用较小的第一个阈值用于将这些间断的边缘连接起来。函数返回的是二值图,包含检测出的边缘
plt.imshow(img_edge)
<matplotlib.image.AxesImage at 0x2a113f5ab00>

edge_detection

推荐阅读