zoukankan      html  css  js  c++  java
  • python-opencv-Canny边缘检测

    OpenCV中有专门的Canny边缘检测算法的函数Canny(image,threshold1,threshold2,edges=None,apertureSize=None,L2gradient=None),我们可以直接调用它轻松实现图像的边缘检测。 

    但是Canny()函数内部并没有对图像进行很好地降噪,因此为了保证结果更准确,我们在调用Canny()函数前常常会先通过高斯滤波降噪。OpenCV中提供了
    GaussianBlur(src,ksize,sigmax,dst=None,sigmaY=None,borderType=None)函数来实现高斯滤波器降噪

    高斯滤波-高斯降噪:

    import cv2
    
    image = cv2.imread("1.png",1)
    image_info =image.shape
    height=image_info[0]
    width=image_info[1]
    gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    cv2.imshow('gray',gray)
    
    image_G=cv2.GaussianBlur(gray,(5,5),0)  #高斯滤波-高斯降噪
    '''
    参数1 src:必选参数。待处理的图像。它可以是单独的任意通道数的图像,但图片深度必须为CV_8U,CV_16U,CV_16S,CV_32F以及CV_64F之一
    参数2 ksize:必选参数。高斯内核的大小。其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数或者它们都为零。【用来计算的像素点】
    参数3 sigmaX:必选参数。表示高斯内核函数在X方向的的标准偏差。
    参数4 可选参数。sigmaY: 高斯核函数在Y方向上的标准偏差,如果sigmaY是0,则函数会自动将sigmaY的值设置为与sigmaX相同的值,如果sigmaX和sigmaY都是0,这两个值将由ksize.width和ksize.height计算而来
    '''
    cv2.imshow("dst",image_G)
    
    cv2.waitKey()

    效果图:

    可以看到,经过高斯平滑滤波降噪后的图像会比原图像模糊,因此通常高斯滤波我们也叫高斯模糊。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,其结果就是减少图像的噪声并降低细节层次。

    import cv2
    
    image = cv2.imread("wuhuan.jpg",1)
    image_info =image.shape
    height=image_info[0]
    width=image_info[1]
    gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    cv2.imshow('gray',gray)
    
    image_G=cv2.GaussianBlur(gray,(5,5),0)  
    
    dst=cv2.Canny(image_G,50,50)  #边缘检测
    '''
    参数1 image:必选参数。表示原图像数组,即8位输入图像
    参数2 threshold1:必选参数。用于设置最小阈值
    参数3 threshold2:必选参数。用于设置最大阈值--用于进一步删选边缘信息
    最后决定哪些是边缘,哪些是真正的边,哪些不是边。Canny边缘检测会设置两个
    值,我们称为高阈值(MaxVal)和低阈值(MinVal)。当像素点的幅值超过高阈值时,该像素点被保留为边缘像素;当像素点的幅值小于低闽值时,该像素点被排除;当像素点位于低阈值和高阈值之间时,只有当像素点连接一个超过高阈值的像素时才被保留。
    '''
    cv2.imshow(
    "dst",dst) cv2.waitKey()

    效果图:

  • 相关阅读:
    mysql(二)数据类型
    mysql(一)
    MySQL8 安装官方示例 employees 数据库
    Elasticsearch入门
    redis入门
    git 基本使用
    vue-cli4环境变量配置和代理跨域配置
    nginx配置
    彻底搞清浏览器和服务器跨域
    File文件过滤器
  • 原文地址:https://www.cnblogs.com/liming19680104/p/12240989.html
Copyright © 2011-2022 走看看