边缘检测
前言
本节学习使用OpenCV对图像进行边缘检测功能,使用Canny边缘检测算法,相对于前面轮廓检测,这里只需要简单几行代码便可实现。
实验目的
图像边缘检测并显示。
实验讲解
OpenCV Python库提供了Canny()函数实现边缘检测功能。
Canny() 使用方法
edges = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
Canny边缘检测。返回edges为二值图像。
iamge
:原始图像。threshold1
:计算使用的第1个阈值,通常是最小阈值。threshold2
:计算使用的第2个阈值,通常是最大阈值。
从上面可知道Canny方法使用非常简单,我们只需要根据需求设定好合适的阈值即可,我们可以使用2组阈值来对比实验。代码编写流程如下:
参考代码如下:
'''
实验名称:边缘检测
实验平台:核桃派1B
'''
import cv2
img = cv2.imread('lenna.jpg') #读取图像,原图观察用
cv2.imshow('lenna', img) #显示原图像
#第1组阈值边缘检测
e1 = cv2.Canny(img, 20, 60)
cv2.imshow('e1', e1) #显示原图像
#第2组阈值边缘检测
e2 = cv2.Canny(img, 200, 400)
cv2.imshow('e2', e2) #显示原图像
cv2.waitKey() #等待键盘任意按键按下
cv2.destroyAllWindows() #关闭窗口
实验结果
在核桃派运行上面代码,可以2组阈值的边缘检测结果如下图,不同阈值会导致检测的细节程度不一样: