• 图像平滑(滤波)



    滤波理论

    图像滤波,即在尽量保留图像细节特征的条件下 对目标图像的噪声 进行抑制。
    是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到 后续图像处理 和 分析的有效性和可靠性。

    消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没。因此一个能降低高频成分幅度的滤波器就能够减弱噪声的影响。

    目的

    1. 消除图像中混入的噪声;
    2. 为图像识别抽取出图像特征。

    要求

    1. 不能损坏图像轮廓及边缘;
    2. 图像视觉效果应当更好。

    一、均值滤波

    均值滤波是平均卷积操作

    比如九个格子,将中间的格子(第五个)的值,作为原来的平均数;

    blur = cv2.blur(img, (3,3))  # 每 3x3 做一个操作;即 核 为 3x3
    cv_show(blur)
    

    二、方框滤波

    基本和均值一样,可以选择归一化,容易越界
    中间参数基本都是用 -1;
    如果不使用 normalize,可能会越界;所有越界值,如果大于 255,就取 255;
    normalize 指定为 True,代表做归一化,和均值滤波一样;

    
    box = cv2.boxFilter(img, -1, (3,3), normalize=False)
    # cv_show(box)
    plt.imshow(box)
     
    
    box2 = cv2.boxFilter(img, -1, (3,3), normalize=False)
    # cv_show(box2)
    plt.imshow(box2)
    

    三、高斯滤波

    高斯模糊的卷积核里的数值,是满足高斯分布的,相当于更重视中心的(距离近的)。
    离得近的权重高,远的权重低。

    aussian = cv2.GaussianBlur(img, (3,3), 1)
    
    # cv_show(aussian)
    
    plt.imshow(aussian)
    
    # 噪音点没有前面的严重
    

    四、中值滤波

    相当于用中值代替

    median = cv2.medianBlur(img, 5)
    # cv_show(median)
    
    plt.imshow(median)
    
    # 展示所有
    res = np.hstack((blur, aussian, median))
    cv_show(res)
    
  • 相关阅读:
    WPF TextBox 一些设置技巧
    Rust 初始配置
    Framework​Element.​Find​Name 根据名字查找控件
    C# SQLite 数据库操作
    MP3 信息读取
    C# event 事件学习
    Nginx 整合 Lua 实现动态生成缩略图
    Spring Cloud 入门 之 Config 篇(六)
    Spring Cloud 入门 之 Zuul 篇(五)
    Flyway 简单入门教程
  • 原文地址:https://www.cnblogs.com/fldev/p/14371406.html
Copyright © 2020-2023  润新知