2021-02-26

做视觉的都知道opencv,但它只能处理2D的图像。对于医学图像处理,那就不得不祭出ITK(Insight Segmentation and Registration Toolkit)了(python下可以使用SimpleITK),这是一个非常强悍的3D分割和配准开源工具箱。下图是它所涉及的类别。

有必要花点时间对他里面的图像处理相关接口进行一次梳理,一方面可以系统性的了解整个图像处理和立体视觉相关的知识框架,也方便后面的使用。以下链接是官方函数说明手册,非常详细,本文制作部分梳理和解释,详细内容请参考以下文档。

https://itk.org/ItkSoftwareGuide.pdf​itk.org

 

1.Reading and Writing Images

这个就不多少了,dcm,nii.gz,nrrd,mha,mhd等几乎所有的医学影像的常见格式都支持。

2.Filtering

(1)阈值滤波器

二值阈值:BinaryThresholdImageFilter,阈值后得到二值图像
通用阈值:ThresholdImageFilter,阈值后,阈值范围内的图像保持不变,阈值范围外被设定为固定值。(有点像clip操作,更通用)

(2)边缘检测器

Canny边缘检测:CannyEdgeDetectionImageFilter,一种经典的边缘检测滤波器

(3)强制转换和灰度映射

  • 线性映射:
CastImageFilter:最简单,类型强壮,比如int转float
RescaleIntensityImageFilter:对范围进行重新映射,需输入转换后的最大值和最小值
ShiftScaleImageFilter:灰度上的平移和尺度变换,需输入平移量和尺度变化量
NormalizeImageFilter:归一化,减均值除方差。
  • 非线性映射:
SigmoidImageFilter,用Sigmoid函数进行映射,注意不是标准sigmoid函数,需要输入β和α参数:

(4)梯度

梯度幅度:GradientMagnitudeImageFilter
带平滑的梯度幅度:GradientMagnitudeRecursiveGaussianImageFilter,求梯度之前为了降低噪声的影响,通常会先做一个高斯滤波平滑,边缘提取效果会更好。
无平滑偏导:DerivativeImageFilter,计算沿某一轴方向上的偏导。

(5)二阶导

不平滑直接求导会放大很多噪声,尤其是二阶导。可以使用RecursiveGaussianImageFilter进行计算。

递归高斯滤波器:RecursiveGaussianImageFilter,一种快速的IIR高斯滤波器
拉普拉斯滤波器:LaplacianRecursiveGaussianImageFilter,直接计算二阶导

(6)邻域滤波

均值滤波:MeanImageFilter
中值滤波:MedianImageFilter

(7)数学形态学

  • 二值形态学
腐蚀:BinaryErodeImageFilter
膨胀:BinaryDilateImageFilter
可通过BinaryBallStructuringElement设置形态学操作子的大小
  • 灰度形态学:
腐蚀:GrayscaleErodeImageFilter
膨胀:GrayscaleDilateImageFilter
仍是使用BinaryBallStructuringElement设置形态学操作子的大小

(8)投票滤波器

投票的含义:领域内哪种类别多听谁,有点像投票。这叫投票操作。

二值中值滤波:BinaryMedianImageFilter,在二值图像上进行中值滤波,管用的二值图降噪(投票机制,周围相似哪个类别多就听谁,而不需要再排序)
二值空洞填充:VotingBinaryHoleFillingImageFilter,通过投票的方式实现的空洞填充操作。这种方式还有助于平滑边界。滤波效果本质上和边缘曲率有关系。
迭代空洞填充:VotingBinaryIterativeHoleFillingImageFilter,迭代运行上一个函数,有平滑边缘和空洞填充的效果。

(9)平滑滤波器

  • 模糊器
离散高斯模糊:DiscreteGaussianImageFilter,高斯分布被离散化后,用一个卷积核表示,然后卷积核在图像上进行卷积。这种方法存在的固有缺陷:方差大的高斯核需要更大的kernel size去编码,导致大方差高斯滤波计算量很大。
递归IIR高斯滤波:SmoothingRecursiveGaussianImageFilter,为解决离散高斯滤波的固有缺陷,通过IIR滤波器,近似实现高斯卷积和求导。不同方差的高斯滤波都可以通过固定大小的卷积核实现。还可设置对其一阶或二阶导进行高斯滤波(可以通过这个实现二阶导)
二项模糊:BinomialBlurImageFilter,计算每个维度上的最邻近平均,迭代进行,迭代次数越多结果越接近使用高斯核进行滤波的结果。
  • 局部模糊
GaussianBlurImageFunctionZ:文档中没有具体介绍
  • 边缘保持平滑

边缘保持的目的:一般的平滑,都会吧梯度大的地方削弱,所以边界信息也会丢失。保边去噪希望值去除孤立点噪声,保持边缘。

各向异性扩散:把图像看作热量场,每个pixel看做热流,根据和邻域像素的灰度差,决定是否向旁边扩散。和某个方向的邻域像素的灰度差异越大,向这个方向的扩散速度越慢。扩散过程就是在平滑图像,但是平滑的区域不会向边界扩散,从而达到保边的效果。

梯度各向异性扩散:GradientAnisotropicDiffusionImageFilter,利用梯度控制扩散速率。扩散系数和梯度成反比。即传统的PM扩散。边缘增强特性,边缘对比度增加。

曲率各向异性扩散:CurvatureAnisotropicDiffusionImageFilter。曲率在图像里面其实代表二阶导(梯度的变化),二阶导相比于一阶导的精细细节反映能力更好,而对大边界的反应能力差一些。因此该滤波器对对对比敏感度更低,但是可以保持更细节的结构信息。

曲率流:CurvatureFlowImageFilter,
最小最大曲率流
双边滤波
  • 向量和色彩图像的边缘保持平滑
向量梯度各向异性扩散
向量曲率各向异性扩散
彩图的梯度各向异性扩散
彩图的曲率各向异性扩散
  • 距离场

丹尼尔松距离场:DanielssonDistanceMapImageFilter,丹尼尔松提出的,

(10)几何变换

 

(11)频域

 

(12)表面提取

 

3.配准

 

4.分割

 

5.统计

 

未完待续...

2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
02-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值