[opencv]图像处理-边缘检测
Cannny边缘检测
- 使用高斯滤波器,以平滑图像,滤除噪声
- 计算图像中每个像素点的梯度强度和方向
- 应用非极大值抑制,以消除边缘检测带来的杂散响应
- 应用双阈值,检测来确定真实和潜在的边框
- 通过抑制鼓励的弱边缘最终完全边缘检测
代码:
import cv2 import numpy as np def cv_show(img,name): cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows() # 载入图片灰度图 img=cv2.imread('E:/img/4.jpg',cv2.IMREAD_GRAYSCALE) # 阈值范围 v1=cv2.Canny(img,80,150) v2=cv2.Canny(img,80,100) # 并列展示 res=np.hstack((v1,v2)) cv_show(res,'res') # 载入灰度图 img=cv2.imread('E:/img/4.jpg',cv2.IMREAD_GRAYSCALE) # 阈值范围 v1=cv2.Canny(img,120,250) v2=cv2.Canny(img,50,100) # 并列展示 res=np.hstack((v1,v2)) cv_show(res,'res')
阈值:
80-150
80-100效果为
120-150
50-100