[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

猜你喜欢

转载自www.cnblogs.com/zlc364624/p/12733126.html