iradon函数和radon函数

(2016-05-14 10:56:37)

转载

   

iradon函数

iradon函数是基于R-L滤波器的滤波反投影法。实现重建图像的过程如下:

1、把投影矩阵R转换到频域,生成fft(R);

2、fft(R)和滤波函数H相乘,得到滤波后的频域投影矩阵fft(R)*H;

3、把fft(R)*H 转换到空域,得到空域中的滤波后的投影矩阵R'=ifft(fft(R)*H );

4、R'插值后,得到处理好的投影矩阵R'';

5、直接反投影得到重建图像矩阵I。

滤波函数H如果选择“none”,则没有滤波,选择“ram-lak”,则把R-L滤波函数的傅里叶函数,和频域中每个角度的投影相乘,实现滤波。选择其他,则R-L滤波函数的傅里叶函数与设定的函数相乘,再和频域中每个角度的投影相乘。

I=iradon(R,theta,interp,filter,frequency_scaling,output_size)

经过FFT 后频域中的投影值是0或者2的幂,既可以防止与空域的投影值混淆,也可以加快FFT 的速度。(待确定)

R是投影矩阵。

theta可以是一个包含所有扫描角度的向量,这时每两个相邻角度间隔相等;也可以是一个标量值,等于相邻两个扫描角度的间隔。

interp是插值函数,有以下几种差值方式可以选择:

nearest:最邻近插值方法(nearest neighbor interpolation)。这种插值方法在已知数据的最邻近点设置插值点,对插值点的数值进行四舍五入,对超出范围的数据点返回NaN。

linear:线性插值(linear interpolation),这是interp中的默认数值。该方法采用直线将相邻的数据点相连,对超出数据范围的数据点返回NaN。

spline:三次样条插值(cubic spline interpolation),该方法采用三次样条函数获取插值数据点,在已知点为端点的情况下,插值函数至少具有相同的一阶和二阶导数。

pchip:分段三次厄米多项式差值(piecewise cubic Hermite interpolation)。

cubic:三次多项式插值,与分段三次厄米多项式插值方法相同。

v5cubic:MATLAB5中使用的三次多项式插值。

方法                                                             说明

nearest      最快的插值方法,但是数据平滑方面最差,数据是不连续的。

linear        执行速度较快,有足够的精度,最为常用,而且为默认设置。

cubic       较慢,精度高,平滑度好,当希望得到平滑的曲线时可以使用该选项。

spline       执行速度最慢,精度高,最平滑。

filter是滤波函数,有以下几种滤波器可以选择:

‘Ram-Lak’——频带有限的斜坡函数滤波器,是MATLAB默认的滤波器,对投影中的噪声敏感( R-L滤波函数和S-L滤波函数)。

‘Shepp-Logan’——sinc函数*R-L函数。

‘Cosine’——cosine函数*R-L函数 。

‘Hamming’——Hamming函数*R-L函数 。

‘Hann’——hann函数*R-L函数 。

‘None’——没有滤波。

frequency_scaling是一个标量值,取值范围[0,1],通过缩放滤波函数的频率修改滤波函数。

默认值为1。如果取值小于1,则滤波函数的频率被压缩到适合[0,frequency_scaling]的范围。比如默认值为1时,滤波函数的窗口为[0,10Hz],frequency_scaling=0.5时,滤波函数的窗口为[0,20Hz]。(待确定)在频域中,频率若大于frequency_scaling对应的频率,则该频率处的函数值为0。

output_size是一个标量,用来规定重建图像的行数和列数。

默认等于2*floor(size(R,1)/(2*sqrt(2)))。改变output_size会改变重建图像的大小,但是不会改变像素点的个数。


radon函数

R=radon(I,theta)

[R,Xp]=radon(I,theta,N)

如果theta是标量,返回R是列向量 ,表示theta角度下图像I的radon变换。如果theta是向量,返回R是矩阵,每一列表示某一theta角度下图像I 的radon变换。忽略theta,则默认为是0:179的向量。

返回行向量Xp,投影数据R的每一行的射线坐标。

I可以是数值型、逻辑型的二维非稀疏矩阵,theta是双精度型。

已设N,则用N个点计算投影, 且R有N行。

未设N,则用 2*ceil(norm(size(I)-floor((size(I)-1)/2)-1))+3 个点计算投影,即使射线通过图像对角线,这个值也足够。

调用c程序radonc( )实现radon变换

mfilename函数中,I是第一个变量,theta是第二个变量,N是第三个变量。如果生成投影的行维度r不等N,则进行N等分,线性插值,变成行维度为N的投影。

radon函数中theta有3种情况:

1 包含所有扫描的角度向量,角度范围是从最小角度到最大角度

2 一个标量,则角度范围=标量*正弦图的角度个数。

3 没有设置,角度范围180度,从0到179,间隔1。

iradon函数和radon函数相关推荐

  1. MATLAB使用radon函数和iradon函数计算图像的投影并从投影中重构图像

    %使用radon函数和iradon函数计算图像的投影并从投影中重构图像 P = phantom(256); %应用在X线断层摄影术里广泛使用一个测试图像::Shepp-Logan Head影像 ims ...

  2. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

  3. Python day10 global关键字、函数递归、匿名函数、map函数的用法详解

    1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage'def littepage():global ...

  4. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)

    每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...

  5. Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]

    1. 函数签名 函数类型也叫做函数签名,可以使用 fmt.Printf("%T") 格式化参数打印函数类型. package mainimport "fmt"f ...

  6. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  7. MySQL 学习笔记(3)— 字符串函数、数值函数、日期时间函数、流程函数、聚集函数以及分组数据

    1. 字符串函数 MySQL 的常用函数包括字符串函数.数值函数.日期时间函数.流程函数等. SELECT ascii("abc"),char(97),concat("h ...

  8. 经常可能会用到的【函数节流和函数防抖】记录下,做下区分

    今天突然被人问到,函数节流和函数防抖的区别是什么, 结果我脑子一热直接举了个滚动条的粟子说是优化高频率执行的手段,就记得自己是用setTimeout来实现的. 完了区别是什么??哪个是哪个都蒙B了 回 ...

  9. c语言随机数生成0 99函数,C语言生成随机数的函数、延时函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面C语言代码使用了生成随机数的函数.延时函数.请大家仔细观察其显示效果. 从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定 ...

  10. 在python中使用关键字define定义函数_python自定义函数def的应用详解

    这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...

最新文章

  1. python返回unicode_Python 中通过 unicode 码返回单字符的函数是 ,返回单字符 unicode 码的函数是 。_学小易找答案...
  2. 全国各地区最低工资标准情况(截至2020年3月31日)
  3. matlab图片拼接变成白的,利用matlab实现对图片的拼接
  4. Spring Cloud的应用程序—上下文服务
  5. 用单片机测量流体流速的_金属管转子流量计基本测量原理
  6. pytorch load state dict_学习Pytorch过程遇到的坑(持续更新中)
  7. 漢城博殺的日子 (四)
  8. 局部变量是线程安全的,原因是什么
  9. Objective-C中的NSNumber和NSString
  10. excel2010文件转换为 dbf 格式文件
  11. 风控建模九:一些特征工程方法及自动化工具小结
  12. 富士施乐Fuji Xerox DocuCentre 2003 驱动
  13. 2022年熔化焊接与热切割操作证考试题库及答案
  14. python过滤违禁词_网站全站敏感词检测、广告违禁词查询很简单,一个python脚本轻松搞定...
  15. mac 上装windows系统 win10 没声音 耳机也没声音
  16. 你们天天说的应用性能监控: Sky Walking
  17. 计算机是人类的好伴侣 作文,电脑真好作文
  18. 多个路由器相连接的方式(以及配置成交换机的方式)
  19. php 白鹭对接,微信好友排行榜 - 白鹭对接
  20. 集线器、交换机、路由器、网桥、网关之间的区别

热门文章

  1. 135微信编辑html语言,135微信编辑器
  2. 利用按键精灵实现QQ群发和微信群发
  3. UIImagePickerController本地化控件文字
  4. 电脑时间校准方法,怎么校准电脑时间
  5. PHP月考---给自己建个错题本
  6. A卡福利 : AMD Fluid Motion Video补帧教程,让你的视频从24帧补到60帧(144)
  7. python第三方库 invalid requirement_python第三方库安装出问题
  8. 失败的教训,总结下三个多月的考研历程(最终发现调剂非全复试成功了)
  9. 计算机室火灾隐患表现,消防控制室存在的火灾隐患及对策
  10. Python格式化字符 %s %d %f %g实例讲解