边缘检测(13)

  边缘检测是图像处理和计算机视觉的基本问题,边缘检测的目的是识别数字图像中亮度变化明显的点.图像属性中的显著变化通常反映了属性的重要事件和变化.

这些包括:

  (1)深度上的不连续

  (2)表面方向的不连续

  (3)物理属性变化和场景照明变化

边缘检测是图像处理和计算机视觉中,尤其是特征提取中的研究领域.

 

 

一. Canny边缘检测算法的处理流程

1 高斯模糊 -- GaossianBlur

2 灰度转换 --cvtColor

3 计算梯度 -- Sobel/Scharr

4 非最大信号抑制

5 高低阈值输出

 

 

 

canny 边缘检测原理介绍 

https://www.cnblogs.com/techyan1990/p/7291771.html

 

 

三 代码实现

import cv2 as cv

#边缘检测算法

def edge_image(image):
    blurred=cv.GaussianBlur(image,(3,3),0)
    #高斯平滑
    gray=cv.cvtColor(blurred,cv.COLOR_BGR2GRAY)
    #分别求xy方向的梯度
    xgrad=cv.Sobel(gray,cv.CV_16SC1,1,0)#x方向梯度
    ygrad=cv.Sobel(gray,cv.CV_16SC1,0,1)
    #canny边缘检测
    edge_output=cv.Canny(xgrad,ygrad,50,150)
    cv.imshow('cannybianyuan',edge_output)
    dst=cv.bitwise_and(image,image,mask=edge_output)
    cv.imshow('colorbianyuan',dst)


src=cv.imread('ying.jpg')
cv.imshow('before',src)
edge_image(src)
cv.waitKey(0)
cv.destroyAllWindows()

 

效果展示

 

posted @ 2019-07-15 10:34  柳帅  阅读(277)  评论(0编辑  收藏  举报
//替换成自己路径的js文件