zoukankan      html  css  js  c++  java
  • 教你如何用python数字图像处理做图像滤波效果!

    本文主要介绍python数字图像处理,图像简单滤波,图文并茂介绍skimage库中通过filters模块进行滤波操作,希望对您的学习有所帮助。

    对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声;另一种是微分算子,可以用来检测边缘和特征提取。

    skimage库中通过filters模块进行滤波操作。

    1、sobel算子

    sobel算子可用来检测边缘

    函数格式为:skimage.filters.sobel(image, mask=None)


    2、roberts算子

    roberts算子和sobel算子一样,用于检测边缘

    调用格式也是一样的:

    edges = filters.roberts(img)

    3、scharr算子

    功能同sobel,调用格式:

    edges = filters.scharr(img)

    4、prewitt算子

    功能同sobel,调用格式:

    edges = filters.prewitt(img)

    5、canny算子

    canny算子也是用于提取边缘特征,但它不是放在filters模块,而是放在feature模块

    函数格式:skimage.feature.canny(image,sigma=1.0)

    可以修改sigma的值来调整效果


    从结果可以看出,sigma越小,边缘线条越细小。

    6、gabor滤波

    gabor滤波可用来进行边缘检测和纹理特征提取。

    函数调用格式:skimage.filters.gabor_filter(image, frequency)

    通过修改frequency值来调整滤波效果,返回一对边缘结果,一个是用真实滤波核的滤波结果,一个是想象的滤波核的滤波结果。


    以上为frequency=0.6的结果图。

    以上为frequency=0.1的结果图

    7、gaussian滤波

    多维的滤波器,是一种平滑滤波,可以消除高斯噪声。

    调用函数为:skimage.filters.gaussian_filter(image, sigma)

    通过调节sigma的值来调整滤波效果


    可见sigma越大,过滤后的图像越模糊

    8.median

    中值滤波,一种平滑滤波,可以消除噪声。

    需要用skimage.morphology模块来设置滤波器的形状。


    从结果可以看出,滤波器越大,图像越模糊。

    9、水平、垂直边缘检测

    上边所举的例子都是进行全部边缘检测,有些时候我们只需要检测水平边缘,或垂直边缘,就可用下面的方法。

    水平边缘检测:sobel_h, prewitt_h, scharr_h

    垂直边缘检测: sobel_v, prewitt_v, scharr_v


    上边左图为检测出的水平边缘,右图为检测出的垂直边缘。

    10、交叉边缘检测

    可使用Roberts的十字交叉核来进行过滤,以达到检测交叉边缘的目的。这些交叉边缘实际上是梯度在某个方向上的一个分量。

    其中一个核:

    0 1

    -1 0

    对应的函数:

    roberts_neg_diag(image)

    例:


    另外一个核:

    1 0

    0 -1

    对应函数为:

    roberts_pos_diag(image)



    此文转载文,著作权归作者所有,如有侵权联系小编删除!

    原文地址:https://www.tuicool.com/articles/FRZZ3qb

    需要源代码的或者想了解更多的(点击这里下载)

  • 相关阅读:
    Unable To Open Database After ASM Upgrade From Release 11.1 To Release 11.2
    11g Understanding Automatic Diagnostic Repository.
    How to perform Rolling UpgradeDowngrade in 11g ASM
    Oracle 11.2.0.2 Patch 说明
    Pattern Matching Metacharacters For asm_diskstring
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    Upgrading ASM instance from Oracle 10.1 to Oracle 10.2. (Single Instance)
    OCSSD.BIN Process is Running in a NonRAC Environment
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    On RAC, expdp Removes the Service Name [ID 1269319.1]
  • 原文地址:https://www.cnblogs.com/wxys/p/13749378.html
Copyright © 2011-2022 走看看