zoukankan      html  css  js  c++  java
  • python opencv Sobel、Laplace、canny算子的边缘提取 以及参数解析

    前提:各种算子不完全区分好坏,但根据我实际操作分析得到,有的算子之间效果大相径庭,但有的也很相似,也就是各有各的用法,这里按

    Sobel、Laplace、canny三种算子作比较,看其结果

    一、  Sobel、Laplace、canny边缘提取()

    1. Sobel算子边缘提取

    注释:gray 灰度转换后的图像,前面省略了一部灰度转换的步骤,后面代码会补上

    1,表示x方向的差分阶数,1或0------------------------------>如果只写一个1,代表x方向提取---》1,0

    1,表示y方向的差分阶数,1或0------------------------------->如果只写一个1,代表y方向提取---》0,1

    sobel = cv2.Sobel(gray, cv2.CV_8U, 1, 1)#sobel算子边缘检测
    
    PointInvert_sobel=255-sobel#反色

      

        2.Laplace算子边缘提取

    注释:这里要说的是通过对比sobel算子的结果,发现Laplace比sobel效果更好,可以说是加强版,效果如下所示

    laplace = cv2.Laplacian(gray, cv2.CV_8U, ksize=3)#laplace算子边缘检测
    
    PointInvert_laplace=255-laplace

        3.Canny算子边缘提取

    注释:上一节提到过:其效果多变,主要是看设置的阈值的范围,

    当我们改变阈值后,图像后渐渐过滤掉一些背景,当然,重在阈值的选取上,当阈值选大的时候,也是会将图像的特征完全损坏的。

    canny=cv2.Canny(gray, 50, 150)#canny边缘检测
    PointInvert_canny=255-canny#canny图像反色
    函数中阈值1和阈值2两者的小者用于边缘连接,而大者用来控制强边缘的初始段,推荐的高低阈值比在2:1到3:1之间

    二、四种图像的代码演示

      

    三、源码

  • 相关阅读:
    Promise关键知识
    CSS实现简易的轮播图
    绝对定位和相对定位的一些特性
    行内元素及其浮动
    webpack实践总结
    less语法详解
    js模拟事件
    jquery各种事件绑定的区别
    前端路由实现的关键知识点
    js鼠标事件相关知识
  • 原文地址:https://www.cnblogs.com/cybg/p/12495966.html
Copyright © 2011-2022 走看看