基于python和opencv的canny边缘检测
时间: 2023-11-18 19:05:57 浏览: 152
在Opencv中的Canny边缘检测
Canny边缘检测是一种基于梯度计算的边缘检测算法,它可以在图像中检测出较强的边缘,而忽略较弱的边缘和噪声。在Python中,可以使用OpenCV库来实现Canny边缘检测算法。
下面是一个基于Python和OpenCV的Canny边缘检测的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', 0)
# 高斯滤波
blur = cv2.GaussianBlur(img, (3, 3), 0)
# 计算梯度
canny = cv2.Canny(blur, 50, 150)
# 显示结果
cv2.imshow('Canny', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在代码中,首先使用`cv2.imread()`函数读取一张灰度图像。然后使用`cv2.GaussianBlur()`函数进行高斯滤波,以平滑图像并减少噪声。接着使用`cv2.Canny()`函数进行Canny边缘检测,其中50和150分别是Canny算法中的两个阈值,用来控制边缘的强度和连接性。最后使用`cv2.imshow()`函数显示结果,等待用户按下任意键后使用`cv2.destroyAllWindows()`函数关闭窗口。
需要注意的是,Canny边缘检测算法对图像的光照变化比较敏感,因此在使用时需要注意调整阈值来适应不同的图像。
阅读全文