zoukankan      html  css  js  c++  java
  • 边缘检测(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()

    效果展示

  • 相关阅读:
    10/11
    el表达式的坑
    在idea下两个项目之间的maven父子级项目依赖
    树上任意两点间距离
    优先级顺序
    HDU 6447
    KMP
    cf 1029 C
    牛客练习赛25
    莫比乌斯算法
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/10700563.html
Copyright © 2011-2022 走看看