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之间

    二、四种图像的代码演示

      

    三、源码

  • 相关阅读:
    python快速查看内置模块函数
    kettle -小技巧 null 跳过唯一索引
    IOException:Connection refused:connect Kettle连接数据库
    各种数据库的jdbc驱动下载及连接方式
    DataCleaner中文文档
    ModuleNotFoundError: No module named 'xlwt' 。
    liunx 常用命令
    Mysql 环境搭建详解
    查询mysql所有表数据、字段信息
    mysqp pk、nn、qu、b、un、zf、ai、g代表的意思
  • 原文地址:https://www.cnblogs.com/cybg/p/12495966.html
Copyright © 2011-2022 走看看