在路上●我的年青●悠忽两年

题记:悠忽两年,今天又到了我的生日,离开校园几近五年,大学毕业也快八年。偶然的机会帮着师弟分析一个问题,仔细整理后,发现用到的都是大学阶段所学。蓦然发觉,这些东西装入大脑十年有余,却不曾倒出来过。特发此文,回忆那些再也回不去的时光,想念我的老师、同学,缅怀青春!

MATLAB RADON及其相关函数分析

摘要:MATLAB Phantom函数产生的Shepp-Logan模型,和人脑结构相似,是医学影像学中用于CT图像仿真重建领域的经典模型。本文首先详细分析Shepp-Logan模型的结构,然后介绍对该模型数据求取Radon变换的两种方法。Radon变换后的数据求取Iradon变换,需要对数据预处理,预处理中用到滤波和卷积函数,第二节对其详述。模型数据的Fanbeam和IFanbeam变换,重要的是平行射线转扇形射线、以及扇形射线转平行射线的转换,而转换的过程就是插值,第三节详述常用的分段三次立方插值和三次样条插值方法。通篇都是分析,没有创新,涉及到的M文件有phantom,radon,iradon,fft,ifft,conv,pchip,spline。其中快速傅里叶变换实现频域滤波的物理意义,以及时域卷积的物理意义,并没有解释清楚,需要继续探讨。

关键字:Phantom函数C实现;Iradon函数C实现;离散傅里叶变换;离散卷积;埃尔米特插值时一阶导数求法;三次样条插值时非扭结条件;三对角矩阵的追赶法

1 投影变换

1.1 Radon变换

实际就是求取物体的截面(与接收器平行的那个截面),在平行射线穿透下的投影值。本节先分析图像仿真重建用到的Shepp-Logan模型,然后介绍模型生成的数据,求取Randon变换的两种方法。

1.1.1 MATLAB phantom 函数

MATLAB phantom 函数用于产生头骨幻影数据,该数据是一个N*N的矩阵,N默认是256,可以用来验证randon和irandon、以及其他二维的图像重建算法的数值准确度。phantom函数产生的Shepp-Logan模型,和人脑结构相似,是医学影像学中最先用于CT图像重建仿真领域的经典模型,实际处理中为了视觉观察上的方便,一般选取修正的Shepp-Logan模型。phantom产生的图像,如图1-1所示,其中(a)图是模型,(b)图是二维灰度图像,(c)图是模拟的人脑结构模型。

(a)

(b)

(c)

图1-1 (a) 头骨幻影模型;(b) 头骨幻影灰度图像; (c) Shepp-Logan模拟的人脑模型

phantom函数产生的图像,有10个椭圆组成(圆是椭圆的一种特殊情况),如图1-1(a)中的a,b,c,d … i,j,每个椭圆有6个特征数据,默认的数据如表1-1所示[1]。其中灰度值范围是[0 1],图像显示时对应[0 255],表示椭圆内部都是这个值,重复的地方要叠加,密度值的叠加就是灰度值;x轴和y轴的坐标范围都是从[-1 1];旋转角度是度数,不是弧度。另外要注意的是,图1-1(a)倾斜的椭圆c和d,它们两个是由中心在坐标原点的椭圆,旋转一定角度,然后再将旋转后的椭圆,沿着x轴和y轴平移得来的,即先旋转后平移。

根据表1-1,结合图1-1(a),则图1-1(b)中的灰度图像,灰度取值有6种情况,分别是0, 0.1, 0.2, 0.3, 0.4, 1。椭圆a外面的、以及椭圆c和d内部的都是0,椭圆d与椭圆e相交的地方、椭圆d与椭圆f相交的地方都是0.1,椭圆b内部其它地方是0.2,椭圆e、f、g、h、i、j内部的都是0.3,椭圆e和f相交的地方是0.4,椭圆a和b相交的地方是1。

表1-1 修正的Shepp-Logan模型中椭圆特征数据

(a)

(b)

图1-2 (a) 生成头骨幻影模型的MATLAB代码;(b) 生成头骨幻影数据的C代码

matlab irandon函数,在路上●我的年青●悠忽两年相关推荐

  1. matlab meshc函数_MATLAB函数库大全(收藏版)

    转发朋友圈获30赞,截图发送至公众号对话框,即可获该文章的PDF版本方便阅读. 目录 1 常用命令 表1.1 管理用命令 表1.2管理变量与工作空间用命令 表1.3文件与操作系统处理命令 表1.4窗口 ...

  2. matlab matlabpool,Matlab matlabpool函数undefined

    我尝试使用matlab并行计算功能. 我先输入"版本"来检查,如果我已经安装了并行计算工具箱,它确实Matlab matlabpool函数undefined >> ve ...

  3. MATLAB常用函数, 常见问题

    MATLAB常用函数 1.常用取整函数 round(x):四舍五入函数 floor(x) : 向下取整, 即 floor(1.2)=1,  floor(1.8) = 1 ceil(x) : 向上取整, ...

  4. matlab doc函数,matlab常用函数.doc

    matlab常用函数.doc MatLab 常用函数 1. 特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 name ...

  5. matlab中imresize函数的用法,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同

    为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同?今年 4 月,我在依照 MATLAB 代码自己写一个卷积神经网络 C++ 实现的过程中,就发现了这个问题,不过那 ...

  6. matlab 数学库,matlab数学函数库

    (n) 求 n 的阶乘 如何用 matlab 配方 没有发现 matlab 有这一命令,不过我们可以调用 maple 的命令,调用方法如下: 首先加载 maple 中的 student 函数库,加载. ...

  7. matlab freqz函数使用

    Matlab freqz函数使用 (2012-10-22 13:42:03) 转载▼ 标签: 杂谈 freqz函数计算线性系统的频率响应,包括幅频响应和相频响应,基本输入为线性系统的AMMA模型系数向 ...

  8. Matlab参考函数

    附录1 常用命令 附录1.1 管理用命令 函数名 功能描述 函数名 功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matlab演示程序 type 列出.M文 ...

  9. matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...

    参考资料 Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB. P.387 P401 数值实现 Matlab 2019a ...

  10. Matlab自定义函数的几种方法

    Matlab自定义函数的几种方法_czw-CSDN博客_matlab自定义函数 Matlab 定义函数的几种方法_海底小星星的博客-CSDN博客_matlab定义函数

最新文章

  1. Android网络连接异常处理方案
  2. 单例模式(单一实例)
  3. DOA——ESPRIT算法
  4. WolframAlpha 的使用
  5. Springboot后台管理(CRUD)
  6. JavaScript高级之ECMASript 7、8 、9 、10 新特性
  7. 以社会工程学助力网络安全
  8. 1.1.29 加入项目符号后换行文字未对齐
  9. Android【报错】android.content.ActivityNotFoundException:activity in yourAndroidManifest.?
  10. 数字通信的调制方式 ASK FSK PSK QAM
  11. 前端Vue+后端Django实现微信登录
  12. 如何解决MathPage.wll文件找不到问题
  13. 大冰--寻人启事--one
  14. xshell双击无反应
  15. 职业生涯手记——序章
  16. java post 405 错误
  17. GitLab分支介绍
  18. 点乘a*b和叉乘aXb
  19. 快应用的用法和常见问题解答(上)
  20. 百度CEO李彦宏为何这么拼

热门文章

  1. CSDN 博客添加无水印图片的方法
  2. Unity HDR (高动态范围 )
  3. MySQL启动报错: Failed to start LSB start and stop MySQL
  4. 曾在国内外5家大厂做数据库工程师,这是他给出的5大数据库趋势预测
  5. IE浏览器卡死的问题
  6. Oracle 设置数据库时区
  7. 长期不使用计算机会损坏吗,电脑长时间存放不用会不会影响硬件寿命
  8. 酷狗音乐解析API,支持搜索、歌单、单曲、专辑、MV解析、多音质切换、图片大小切换
  9. office修复找不到msi_安装Office2007,总是提示找不到OfficeMUI.msi
  10. EXCEL-日常技巧整理-2-单元格拆分后原数据填充