利用Hessian矩阵对血管增强并且进行固定阈值分割
1.原始图像
2. 采用itk的Hessian矩阵进行血管增强
代码如下:
def vessleSegment(niipath):sigma_minimum = 0.2sigma_maximum = 3.number_of_sigma_steps = 8lowerThreshold = 40output_image = 'vessel.mha'input_image = itk.imread(niipath)# 1.采用itk的多尺度hessian矩阵进行血管增强ImageType = type(input_image)Dimension = input_image.GetImageDimension()HessianPixelType = itk.SymmetricSecondRankTensor[itk.D, Dimension]HessianImageType = itk.Image[HessianPixelType, Dimension]objectness_filter = itk.HessianToObjectnessMeasureImageFilter[HessianImageType, ImageType].New()objectness_filter.SetBrightObject(True)objectness_filter.SetScaleObjectnessMeasure(True)objectness_filter.SetAlpha(0.5)objectness_filter.SetBeta(1.0)objectness_filter.SetGamma(5.0)multi_scale_filter = itk.MultiScaleHessianBasedMeasureImageFilter[ImageType, HessianImageType, ImageType].New()multi_scale_filter.SetInput(input_image)multi_scale_filter.SetHessianToMeasureFilter(objectness_filter)multi_scale_filter.SetSigmaStepMethodToLogarithmic()multi_scale_filter.SetSigmaMinimum(sigma_minimum)multi_scale_filter.SetSigmaMaximum(sigma_maximum)multi_scale_filter.SetNumberOfSigmaSteps(number_of_sigma_steps)itk.imwrite(multi_scale_filter.GetOutput(), "step1.mha")
效果图如下:
3. 将增强后的血管归一化到0-255范围内
代码如下:
# 2,将增强后的血管归一化到0-255范围OutputPixelType = itk.UCOutputImageType = itk.Image[OutputPixelType, Dimension]rescale_filter = itk.RescaleIntensityImageFilter[ImageType, OutputImageType].New()rescale_filter.SetInput(multi_scale_filter)itk.imwrite(rescale_filter.GetOutput(), "step2.mha")
效果图如下:
4.对归一化的血管进行固定阈值分割
代码如下:
# 3归一化的血管进行固定阈值分割thresholdFilter = itk.BinaryThresholdImageFilter[OutputImageType, OutputImageType].New()thresholdFilter.SetInput(rescale_filter.GetOutput())thresholdFilter.SetLowerThreshold(lowerThreshold)thresholdFilter.SetUpperThreshold(255)thresholdFilter.SetOutsideValue(0)thresholdFilter.SetInsideValue(255)itk.imwrite(thresholdFilter.GetOutput(), "step3.mha")
效果图如下:
利用Hessian矩阵对血管增强并且进行固定阈值分割相关推荐
- Hessian矩阵在血管增强中的应用
Hessian矩阵在图像处理中有着广泛的应用:其中在图像分割领域,包括边缘检测.纹理分析等. 原理: 假设图像像素值关于坐标(x, y)的函数是f(x, y),那么将f(x+dx,y+dy)在f(x0 ...
- 利用Hessian矩阵的Frangi 滤波器-python版本
Frangi滤波网上已经有好多博客来讲解了,尤其是Hessian矩阵. 这里原理到没太多可以说的,大家搜一搜就有了. 不过我看到所有的代码都是matlab版本的,其实都是matlab官网中已经发布的代 ...
- 眼底图像血管增强与分割--(5)基于Hessian矩阵的Frangi滤波算法
在最优化里面提到过的hessian矩阵(http://blog.csdn.net/piaoxuezhong/article/details/60135153),本篇讲的方法主要是基于Hessian矩阵 ...
- 关于Hessian矩阵的图像增强
文章目录 1. 数字图像处理之尺度空间理论 2. 基于尺度理论的Hessian简化算法 3. 基于Hessian矩阵的图像增强 本文是关于图像增强方面的知识. 关于Retinex图像增强, [请点击] ...
- Steger算法(Line_Gauss)-光条中心线提取(基于Hessian矩阵)
Steger算法(Line_Gauss)-光条中心线提取(基于Hessian矩阵) 算法背景介绍 Hessian 矩阵与泰勒多项式 关于求t 导数与中心点.亚像素点 高斯函数作用 文献 算法背景介绍 ...
- python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵
考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...
- Jacobian矩阵和Hessian矩阵的理解
深度学习中梯度向量的计算,Jacobian矩阵和Hessian矩阵是基础的知识点. 求微分其实就是线性化,导数其实就是线性空间之间的线性变换,Jaocibian矩阵本质上就是导数. 比如,映射在处的导 ...
- 三维重建4:Jacobian矩阵和Hessian矩阵
在使用BA平差之前,对每一个观测方程,得到一个代价函数.对多个路标,会产生一个多个代价函数的和的形式,对这个和进行最小二乘法进行求解,使用优化方法.相当于同时对相机位姿和路标进行调整,这就是所谓的BA ...
- 极限和连续+偏导+方向导数+可微+梯度+链式法则+hessian矩阵
文章目录 前言 一.极限和连续 二.偏导数 三.方向导数 四.可微 五.梯度 六.链式法则 七.Hessian矩阵 前言 多元函数 y对某一个变量的导数是偏导数: 偏导数的结果可以推广到任意方向,也就 ...
最新文章
- openpyxl.utils.exceptions.IllegalCharacterError错误
- 2020牛客国庆集训派对day2 F题 Java大数处理
- element ui后台html_GitHub上10个开源且优秀的后台管理系统UI面板
- No.1-Apache IoTDB 随笔 - Time Series DBMS 综述
- [深度学习-TF2实践]应用Tensorflow2.x训练ResNet,SeNet和Inception模型在cifar10,测试集上准确率88.6%
- 首期「线上开发」直播出炉!轻量算法+轻量开发:AI 小白也能上手实操的一款图像分类器...
- inode服务器与响应,inode客户端服务器下线请求和
- windows 2008 server R2 服务器docker安装
- A/B Test 使用指南
- python io操作不被打断_PyAPNs抛出IOError操作不受devi支持
- 今日“春分”,我們來場春天的“飛花令”吧
- Cesium资料大集合
- bzoj 2563阿狸和桃子的游戏
- Amazon CloudWatch 介绍/学习
- oracle 数据库 ORA-28000错误的原因及解决办法
- 玄学小问题之input.focus()没生效的问题
- 读后感《孤独的张小龙,在商业中走出孤独》
- Linux系统学习笔记二
- C语言例题解析 - 基础篇
- pdf怎么在线阅读?一键查阅并不难