1、对数变换

图像对数变换首先将图像从SimpleITK图像数据转成Numpy矩阵数据,然后采用Numpy的log1p()函数来计算数据的log(1+x)变换,由于1+x不能小于零,因此这里我们使用图像减去图像的最小值来计算对数变换结果。

image = sitk.ReadImage("srcdicom.mha")
np_image = sitk.GetArrayFromImage(image)
# log transform
np_log_image = np.log1p(np_image - np.min(np_image))
log_image = sitk.GetImageFromArray(np_log_image)
log_image.SetOrigin(image.GetOrigin())
log_image.SetDirection(image.GetDirection())
log_image.SetSpacing(image.GetSpacing())
sitk.WriteImage(log_image, "log_image.mha")

2、幂次变换

图像对数变换首先将图像从SimpleITK图像数据转成Numpy矩阵数据,然后采用Numpy的power()函数来计算数据的幂次变换,为了防止出现计算值溢出错误,因此这里我们使用图像减去图像均值再除以图像方差来计算图像幂次变换结果,,在这里我们计算图像3次幂变换。

# power transform
np_image_clone1 = np_image.copy()
np_image_clone1 = (np_image_clone1 - np_image.mean()) / np_image.std()
np_power_image = np.power(np_image_clone1, 3)
power_image = sitk.GetImageFromArray(np_power_image)
power_image.SetOrigin(image.GetOrigin())
power_image.SetDirection(image.GetDirection())
power_image.SetSpacing(image.GetSpacing())
sitk.WriteImage(power_image, "power_image.mha")

3、指数变换

图像指数变换首先将图像从SimpleITK图像数据转成Numpy矩阵数据,然后采用Numpy的exp()函数来计算数据的指数变换,为了防止出现计算值溢出错误,因此这里我们使用图像减去图像均值再除以图像方差来计算图像指数变换结果。

# exp transform
np_image_clone = np_image.copy()
np_image_clone = (np_image_clone - np_image.mean()) / np_image.std()
np_exp_image = np.exp(np_image_clone)
exp_image = sitk.GetImageFromArray(np_exp_image)
exp_image.SetOrigin(image.GetOrigin())
exp_image.SetDirection(image.GetDirection())
exp_image.SetSpacing(image.GetSpacing())
sitk.WriteImage(exp_image, "exp_image.mha")

4、直方图均衡化

我们使用函数AdativeHistogramEqualizationImageFilter()函数来实现图像的直方图均衡化,这个类函数需要人为设置三个参数:Alpha,Beta,Radius,其中Alpha参数是用来控制结果相对于经典直方图均衡化方法结果的相似程度,Beta参数用来控制图像锐化程度,Radius用来控制直方图统计时的区域大小。

# Histogram equalization
sitk_hisequal = sitk.AdaptiveHistogramEqualizationImageFilter()
sitk_hisequal.SetAlpha(0.9)
sitk_hisequal.SetBeta(0.9)
sitk_hisequal.SetRadius(3)
sitk_hisequal = sitk_hisequal.Execute(image)
sitk.WriteImage(sitk_hisequal, "sitk_hisequal.mha")

5、拉普拉斯图像锐化

我们使用LaplacianSharpeningImageFilter()函数来对图像进行拉普拉斯锐化。参数设置也比较简单,是否使用输入图像的Spacing来进行计算,在这里我们为了保持一致性,设置使用输入图像的Spacing。

# laplace sharpen
sitk_laplaciansharp = sitk.LaplacianSharpeningImageFilter()
sitk_laplaciansharp.UseImageSpacingOn()
sitk_laplaciansharp = sitk_laplaciansharp.Execute(image)
sitk.WriteImage(sitk_laplaciansharp, "sitk_laplaciansharp.mha")

Python SimpleITK实现医学图像增强算法相关推荐

  1. 医学图像边缘检测matlab实验,基于Matlab的医学图像增强与边缘检测算法的实验研究...

    分类号 国际十进分类号(UDC) 第四军医大学 学位论文 基于 Matlab 的医学图像增强与边缘检测 算法的实验研究 (题名和副题名) 袁丽婷 (作者姓名) 指导教师姓名 邱力军 副教授 指导教师单 ...

  2. 影像组学视频学习笔记(33)-使用SimpleITK实现医学影像差值、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获转载授权 RadiomicsWorld.com "影像组学世界" ...

  3. 基于Python Unet的医学影像分割系统源码,含皮肤病的数据及皮肤病分割的模型,用户输入图像,模型可以自动分割去皮肤病的区域

    手把手教你用Unet做医学图像分割 我们用Unet来做医学图像分割.我们将会以皮肤病的数据作为示范,训练一个皮肤病分割的模型出来,用户输入图像,模型可以自动分割去皮肤病的区域和正常的区域.废话不多说, ...

  4. LabVIEW图像增强算法(基础篇—5)

    目录 1.空间域图像增强算法 1.1.线性卷积 1.1.1.一维卷积 1.1.2.二维卷积 1.2.领域增强 1.2.1.线性滤波 1.2.2.非线性滤波 2.频率域图像增强算法 2.1.傅里叶变换算 ...

  5. Retinex图像增强算法——SSR,MSR,MSRCR,MSRCP,autoMSRCR

    系列文章目录 关于OpenCV的一些图像处理函数 图象基本操作(读取.显示.通道提取.边界填充.融合.保存) Retinex图像增强算法--SSR,MSR,MSRCR,MSRCP,autoMSRCR ...

  6. 3.2 Python图像的频域图像增强-高通和低通滤波器

    3.2 Python图像的频域图像增强-高通和低通滤波器 文章目录 3.2 Python图像的频域图像增强-高通和低通滤波器 1 算法原理 1.1理想滤波器 1.2巴特沃斯滤波器 1.3指数滤波器 2 ...

  7. 3.5 Python图像的频域图像增强-同态滤波器

    3.5 Python图像的频域图像增强-同态滤波器 文章目录 3.5 Python图像的频域图像增强-同态滤波器 1 算法原理 2 代码 3 效果 1 算法原理 同态滤波是一种在频域中同时能够压缩图像 ...

  8. 3.3 Python图像的频域图像增强-特殊高通滤波器

    3.3 Python图像的频域图像增强-特殊高通滤波器 文章目录 3.3 Python图像的频域图像增强-特殊高通滤波器 1 算法原理 1.1高频增强滤波器 1.2高频提升滤波器 2 代码 3 效果 ...

  9. 3.1 Python图像的频域图像增强-图像的傅里叶变换和反变换

    3.1 Python图像的频域图像增强-图像的傅里叶变换和反变换 文章目录 3.1 Python图像的频域图像增强-图像的傅里叶变换和反变换 1 算法原理 2 代码 3 效果 1 算法原理 图像的傅里 ...

最新文章

  1. 项目--教师日常办公平台中的活动图
  2. Spring.NET 1.3.1 新特性探索系列2——WCF命名空间解析器
  3. Hadoop之MapTask工作机制
  4. iis7 mysql_windows 7 下搭建php开发环境(windows7+IIS7+php+mysql)
  5. death coming一直连接服务器,Death Coming总是显示无法连接网络
  6. c语言找最长串指针改错,2013年计算机二级C语言上机试题及解析35
  7. 电脑故障速查方法集萃
  8. 移动pc一套代码_【腾讯】如何避免 CDN 为 PC 端缓存移动端页面
  9. WPS制作三线表并去除虚线详解(毕业论文可用)
  10. FID - Web特征数据来了
  11. 安卓view.getMeasuredHeight()得到的高度单位以及dp和px的转换
  12. zabbix监控系统--详细安装教程
  13. 北上广深买的房,程序员月薪得多少?
  14. 前端常用事件案例——抽名字(抽奖)/搜索下拉菜单/微博文本框
  15. Excel中如何使用字符串提取函数LEFT
  16. 动态路由器ensp二层三层交换_eNSP模拟实验-路由器和交换机在不同网段互通配置...
  17. easy_nbt——Bugku
  18. 使用adb连接夜神模拟器,查看多开模拟器端口号
  19. 李阳疯狂英语-228句口语要素
  20. 两个字符串匹配度算法

热门文章

  1. vue2.0 引用qrcode.js实现获取改变二维码的样式
  2. java虚拟机规范阅读(三)异常
  3. 【HDOJ】4363 Draw and paint
  4. FFmpeg 2.1 试用(新版支持HEVC,VP9)
  5. Unity3D调用摄像头显示当前拍摄画面
  6. teamcity mysql 配置_CentOS 7 上 TeamCity 安装
  7. mysql 存储过程 replace_mysql replace存储过程
  8. c+++11并发编程语言,C++11并发编程:多线程std:thread
  9. 计算机模拟蛋白,酶的计算机模拟和蛋白质组分析
  10. vue 组件属性监听_vuejs组件内的对象属性监听问题