专栏首页最新医学影像技术医学图像处理教程(四)——医学图像去噪算法

医学图像处理教程(四)——医学图像去噪算法

今天将给大家分享医学图像常见三种图像去噪算法。

1、均值滤波

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。我们使用MeanImageFilter()函数来对图像进行平滑去噪。参数设置就是统计均值计算的半径大小,这里可以xyz方向上都一样的半径大小,也可以设置成不同的半径大小,在这里我们设置成5,就意味着是10x10x10区域里计算均值滤波的结果。

image = sitk.ReadImage("srcdicom.mha")
np_image = sitk.GetArrayFromImage(image)

# mean
sitk_mean = sitk.MeanImageFilter()
sitk_mean.SetRadius(5)
sitk_mean = sitk_mean.Execute(image)
sitk.WriteImage(sitk_mean, 'sitk_mean.mha')

2、中值滤波

中值滤波的原理很简答,对一副图像上的某一点作为中值滤波器,必须先将预求的像素及其邻点内的像素值排序,确定出中值,并将中值赋予该像素点,让周围的像素值接近的真实值,从而消除孤立的噪声点,中值滤波对消除椒盐噪声非常有效。我们使用MedianImageFilter()函数来对图像进行中值滤波去噪。参数设置就是统计中值计算的半径大小,这里可以xyz方向上都一样的半径大小,也可以设置成不同的半径大小,在这里我们设置成5,就意味着是10x10x10区域里计算中值滤波的结果。

# median
sitk_median = sitk.MedianImageFilter()
sitk_median.SetRadius(5)
sitk_median = sitk_median.Execute(image)
sitk.WriteImage(sitk_median, 'sitk_median.mha')

3、高斯滤波

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。我们使用SmoothingRecursiveGaussianImageFilter()函数来对图像进行高斯滤波平滑去噪。参数设置就是高斯核参数Sigma大小,这里可以xyz方向上都一样的大小,也可以设置成不同的大小,还有一个参数设置是是否要对高斯进行尺度归一化。

# gassuian
sitk_gassuian = sitk.SmoothingRecursiveGaussianImageFilter()
sitk_gassuian.SetSigma(3.0)
sitk_gassuian.NormalizeAcrossScaleOff()  # 是否要归一化高斯
sitk_gassuian = sitk_gassuian.Execute(image)
sitk.WriteImage(sitk_gassuian, 'sitk_gassuian.mha')

下面分别是均值滤波,中值滤波和高斯滤波的结果。

本文分享自微信公众号 - 最新医学影像技术(MedicalHealthNews),作者:最新医学影像技术

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 医学图像处理案例(二十)——医学图像处理案例代码详解

    在前面分享的医学图像处理案例中,给出了很多具体案例,但有些读者还是渴望可以深入分享案例代码详解。那么今天我将从骨骼分割,气管分割,肺组织分割,血管分割这四个具体...

    用户7498388
  • 医学图像处理教程(五)——医学图像边缘检测算法

    Sobel算子的思想,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小...

    用户7498388
  • 医学图像处理案例(十三)——快速行进算法分割医学图像

    快速行进方法(FastMarching)是水平集演化方法的一种简化形式,其仅使用正速度项来控制微分方程,生成的水平集轮廓随着时间增长。在实际中,FastMarc...

    用户7498388
  • 医学图像处理案例(二十)——医学图像处理案例代码详解

    在前面分享的医学图像处理案例中,给出了很多具体案例,但有些读者还是渴望可以深入分享案例代码详解。那么今天我将从骨骼分割,气管分割,肺组织分割,血管分割这四个具体...

    用户7498388
  • iOS App 签名的原理

    本文来自 微信读书 团队博客:http://wereadteam.github.io/ 导语 iOS 签名机制挺复杂,各种证书,Provisioning Pro...

    腾讯Bugly
  • 半导体老牌贵族做不好的移动处理器,为什么华为、高通可以无往不利

    如今高通、海思、三星、联发科以及展锐,圈出了各自的一亩三分地,并且以5G为中心,展开新一轮的竞争。

    镁客网
  • LeetCode98题 验证二叉搜索树(Validate Binary Search Tree)

    https://leetcode-cn.com/problems/validate-binary-search-tree/

    code随笔
  • 安装nginx-ingress(上)

    An API object that manages external access to the services in a cluster, typical...

    虚心学习
  • Linux之day8 Vim文本编辑器

    第一步创建文档:a键是在光标后面以为切换到输入模式,i键是在光标当前位置切换到输入模式,o键是在光标下面在创建一个空行。

    心跳包
  • 网站出现证书被吊销的情况(20.3.11/随记)

    自己用的Let's Encrypt,全球免费SSL证书使用量第一应该不能被吊销啊??? 上网找了百度,查了一下,发现原来是签发的SSL证书有BUG,emmm。...

    lollipop72

扫码关注云+社区

领取腾讯云代金券