cv2.Canny()参数
时间: 2024-03-29 16:32:26 浏览: 120
cv2.Canny()是OpenCV库中的一个方法,用于将输入的原始图像转换为边缘图像[^1]。它有以下参数:
1. image:array格式的输入图像。
2. threshold1和threshold2:分别是我们的下界阈值和上界阈值。这两个阈值用于控制边缘检测的敏感度。边缘像素的梯度值高于threshold2被认为是强边缘,低于threshold1被认为是弱边缘,介于两者之间的像素值被认为是可能的边缘。
3. edges(可选):输出的边缘图像。
4. apertureSize(可选):用于查找图像梯度的Sobel核的大小,默认为3。
5. L2gradient(可选):指定了求梯度幅值的公式,是一个布尔型变量,默认为False。当它为True时,使用L2范数计算梯度幅值,否则使用L1范数。
以下是一个示例代码,演示了如何使用cv2.Canny()方法进行边缘检测:
```python
import cv2
import matplotlib.pyplot as plt
def canny_detect(image_path, show=True):
# 读取图像
image = cv2.imread(image_path, 0)
# 获取结果
edges = cv2.Canny(image, 100, 200)
if show:
# 绘制原图
plt.subplot(121)
plt.imshow(image, cmap='gray')
plt.title('Original Image')
plt.xticks([])
plt.yticks([])
# 绘制边缘图
plt.subplot(122)
plt.imshow(edges, cmap='gray')
plt.title('Edge Image')
plt.xticks([])
plt.yticks([])
plt.show()
return edges
canny_detect('images/2.jpeg')
```
这段代码会读取名为'images/2.jpeg'的图像,并将其转换为边缘图像。最后,它会显示原始图像和边缘图像。
阅读全文