前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >医学图像处理教程(四)——医学图像去噪算法

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

作者头像
医学处理分析专家
发布2020-06-29 14:57:57
4K0
发布2020-06-29 14:57:57
举报

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

1、均值滤波

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

代码语言:javascript
复制
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区域里计算中值滤波的结果。

代码语言:javascript
复制
# 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方向上都一样的大小,也可以设置成不同的大小,还有一个参数设置是是否要对高斯进行尺度归一化。

代码语言:javascript
复制
# 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')

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 最新医学影像技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档