2490|0

29

帖子

7

TA的资源

一粒金砂(中级)

楼主
 

《深度学习与医学图像处理》阅读心得3:数据预处理 [复制链接]

本帖最后由 kkompp 于 2024-5-23 23:44 编辑

      由于最近一段时间出差,不能就书中的示例代码进行调试,刚刚看了看论坛要求,阅读活动截止到4月30日。很是抱歉。

     《深度学习与医学图像处理》的第四章是:数据预处理,也就是把用医疗设备采集到的数据进行预处理。说是预处理,其实还是数字图像处理,就是对图像进行噪声去除、数据增强、特征提取等图像处理技术。医学图像处理在医院应用非常广泛,在实际诊断中,由于设备质量,采集等原因,医学成像质量有很大不同,随着AI技术的发展,医学数字图像由于设备差异、多模态、噪声等问题都会对模型的训练造成很大的困难。本书第四章主要是通过深度学习的方法对主流医学数字图像进行处理,包括插值、重采样、直方图的分析与均衡化、数据归一化、连通域分析与形态学方法等。

       书中就常见的数据增强方式、弹性形变以及基于TensorFlow的在线数据增强方法进行了介绍,给出了主要代码。

       本章内容用到的算法主要使用SimpleITK、Numpy,Scikit-image,TensorFlow,Matplotlib,math,elasticdeform等库进行实现。

一  库函数版本号

     书中用到的示例代码库函数版本号如下:

     # Simpleitk==2.0.2
    # matplotlib==3.1.3
    # numpy==1.18.1
    # elasticdeform==0.4.9
    # scikit-image==0.16.2
    # tensorflow==1.15.0

二 导入相关的库

     import math
     import SimpleITK as sitk
     import matplotlib.pyplot as plt
     import numpy as np
     import elasticdeform as edf
     from skimage import measure, color, morphology, transform, exposure, data, io
     import tensorflow as tf

     我们用pycharm打开,并用pip安装对应的版本库

  点击运行,没有报错,说明需要的库都安装正确。

三 SimpleITK

      这里重点要说明SimpleITK,由于书中章节安排,没有对SimpleITK进行详细介绍,安装SimpleITK的时候可能会出错,所以版本的一致性很是重要。SimpleITK需要与python版本对应。SimpleITK是专门处理医学影像的软件,是ITK的简化接口,使用起来非常便捷,SimpleITK支持8种编程语言,包括c++、Python、R、Java、c#、Lua、Ruby和TCL。SimpleITK中图像是一个物理实体,图像中的每一个像素都是物理空间中的一个点,不光有着像素值,还有坐标、间距、方向等概念。

在使用SimpleITK库之前,需要将SimpleITK库导入进来,如下:

import SimpleITK as sitk

 

SimpleITK可以读取如.mhd , .nii, .nrrd等图像数据格式。

四 数据预处理:插值法

    插值法在书中主要采用skimage的两种插值方法进行图像缩放,一个是最近邻域法,一个是线性插值法。这是两种不同的算法。

书中定义了一个函数如下:

def Linear_interpolation(img, target_shape, interpolation_method):
    if interpolation_method == 'nearest_neighbor':
        return transform.resize(img, target_shape, order=0, preserve_range=True)
    elif interpolation_method == 'bilinear':
        return transform.resize(img, target_shape, order=1, preserve_range=True)
    else:
        raise NameError('Undefined Method.')

我们把这段代码用pycharm进行实现如下图所示

 

定义好函数,我们进行调用

测试图片采用第三章3dslicer中处理的图像如下图所示

 

 

     接下来用最近邻域法与线性插值法进行处理,结果如下图所示

 

图中,nn是最近邻域法,bil是双线性插值法。

需要注意这里数据导入需要采用skimage的数据导入

五 重采样的实现

     由于调试问题,重采样的实现下次实现。

 

 

 

此帖出自医疗电子论坛
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表