zoukankan      html  css  js  c++  java
  • 3D Slicer中文教程(七)—图像中值滤波

    1、中值滤波概念

    中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。中值滤波可以过滤尖峰脉冲。目的在于我们对于滤波后的数据更感兴趣。滤波后的数据保留的原图像的变化趋势,同时去除了尖峰脉冲对分析造成的影响。

    以一维信号的中值滤波举例。对灰度序列80、120、90、200、100、110、70,如果按大小顺序排列,其结果为70、80、90、1000、110、120、200,其中间位置上的灰度值为100,则该灰度序列的中值即为100。一维信号中值滤波实际上就是用中值代替规定位置(一般指原始信号序列中心位置)的信号值。对前面所举的序列而言,中值滤波的结果是用中值100替代序列80、120、90、200、100、110、70中的信号序列中心位置值200,得到的滤波序列就是80、120、90、100、100、110、70。如果在此序列中200是一个噪声信号,则用此方法即可去除这个噪声点。

    二维中值滤波算法是:对于一幅图像的象素矩阵,取以目标象素为中心的一个子矩阵窗口,这个窗口可以是3*3 ,5*5等根据需要选取,对窗口内的象素灰度排序,取中间一个值作为目标象素的新灰度值。窗口示例如ooooxoooo上面x为目标象素,和周围o组成3*3矩阵Array,然后对这9个元素的灰度进行排序,以排序后的中间元素Array[4]为x的新灰度值,如此就完成对象素x的中值滤波,再迭代对其他需要的象素进行滤波即可。图像处理中,中值滤波的实现方法

    均值滤波和中值滤波的内容非常基础,均值滤波相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。中值滤波的优点是可以很好的过滤掉椒盐噪声,缺点是易造成图像的不连续性。在下面的代码中,中值滤波主要通过冒泡算法来实现。

    2、3D Slicer中值滤波示例

    (1)3D Slicer中值滤波CT图像前后对比结果

        左图为原图,右图为中值滤波之后的图像。明显看出左图中的细小点在右图中已经消失,经过中值滤波的图像更加光滑。本图没有进行三维重建,重建后的对比更加明显,中值滤波后的三维图像更加平滑真实

              

                         (a)原图                              (b)中值滤波后的图

    (2)3D Slicer中值滤波具体步骤

    a.在Modules 处选择Filtering——Denosing——Median Image Filtering,即可到滤波窗口界面

     

    b.滤波窗口如下图所示,median image parameters窗口设置参数大小,默认为(1,1,1);IO栏设置Input Volume和Output Volume;

    c.设置好之后点击apply按钮等待运行结束即可,运行过程如图所示。

    总结:3D Slicer滤波方法有几种,这里只是用了中值滤波,其他方法类似。中值滤波的优点是可以很好的过滤掉椒盐噪声,缺点是易造成图像的不连续性。本文中用的中值滤波处理后的图像满足个人要求,使用时还需要根据个人需要进行参数等设置。

  • 相关阅读:
    CAAnimation动画相关文章
    [源代码]List的增加与删除
    [原创]c# 类中 Collection 字段初始化的特殊之处
    c# 多数值区间判断是否有重叠
    将M个客服随机分配给N个客户
    c# IList.ToList()后更改元素值会不会影响原列表的值
    java单元测试之Mock静态方法
    java的Spring学习2- junit和mock
    java mybatis学习二
    java8 方法引用与lambda
  • 原文地址:https://www.cnblogs.com/mat-wu/p/8391063.html
Copyright © 2011-2022 走看看