专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

iradon函数原理(iradon变换)

来源:小易整编  作者:小易  发布时间:2023-05-18 09:25
摘要:在MATLAB中,有专门的radon()函数和iradon()函数来实现Radon变换的算法,这也是图像重建过程中必不可少的算法。(1)在MATLAB图像处理工具箱中提供了radon()函数用于计算指定方向上图像的投影,该函数的调用格式如下...

在MATLAB中,有专门的radon()函数和iradon()函数来实现Radon变换的算法,这也是图像重建过程中必不可少的算法。

(1)在MATLAB图像处理工具箱中提供了radon()函数用于计算指定方向上图像的投影,该函数的调用格式如下:

iradon函数原理(iradon变换)

R = radon(I, theta):计算图像I在矢量theta指定方向上的radon变换;

[R,xp] = radon(...):R的各行返回theta中各方向上的radon变换,xp表示theta方向对应的坐标值。图像I的中心,即floor((size(I)+1)/2),为新坐标轴的中心。

(2)在MATLAB图像处理工具箱中提供了iradon()函数用于实现Radon逆变换,完成图像重建,该函数的调用格式如下:

I = iradon(R, theta):R是投影矩阵;theta可以是一个包含所有扫描角度的向量,且每两个相邻角度等间隔;使用的投影越多,所获得的图像越接近原图像,失真越小;

I = iradon(P, theta, interp, filter, frequency_scaling, output_size):interp是插值函数;filter是滤波函数,通过加窗消去投影过程中产生的高频噪声;frequency_scaling是一个标量值,取值范围[0,1],通过缩放滤波函数的频率修改滤波函数;output_size是一个标量,用来规定重建图像的行数和列数;

[I,H] = iradon(...):H的返回值为滤波器的频率响应。


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

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’:没有滤波。


下面通过具体实例来说明Radon变换的含义和操作方法:

代码:

Demo1

Demo2

显示效果:

Demon1.投影——即线积分

Demo1.上述黑白图像的Rando变换

Demo1

可以看出,图像的生成是以(theta,xp)构建一个平面坐标,然后R矩阵中的数据作为该平面各对应点的高度,这样就构成一个三维矩阵,从而显示为上述的Radon变换图像。

Demo2_figure1

Demo2_figure2

Demo2_figure3

可以看到,在角度是0度、30多度、90多度和140多度的位置,有明显的亮点,说明该角度的投影——即垂直于该角度的线积分,值比较大。所以,可以猜测投影方向上存在直线段。例如在90度时,其投影方向为水平方向,有大量的白点,说明原图像中存在大量水平的直线段。我们从原图像可以看到,确实存在较多的水平直线段,其重建图像也表明了这一点。

简单来说,就是Radon变换和我上一篇文章提到的Hough一样,都可以作为检测图像中直线段的方法。

Demo2_figure4

Demo2_figure5

Demo2_figure6

从上面可以看出,确实是投影图像越多,其重建图像失真越小。当投影角度间隔为1度或2度时,重建图像失真较小;而当影角度间隔为5度或10度时,重建图像失真较大,图像信息丢失严重。

「十」MATLAB语言之程序性能优化

「二十九」MATLAB数字图像运算之块操作

「三十二」MATLAB图像变换之Hough变换——寻找图像中的直线段


本文地址:游戏攻略频道 https://www.hkm168.com/game/963067.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


游戏攻略
小编:小易整编
相关文章相关阅读
  • c语言的输入函数有哪些

    c语言的输入函数有哪些

    c语言的输入函数有:1、scanf()函数、从标准输入stdin读取格式化输入;2、getchar()函数,从标准输入stdin获取一个字符;3、gets()函数,从标准输入stdin读取一行;4、getch()函数,从stdin流中读取字...

  • 计算机按工作原理可分为什么

    计算机按工作原理可分为什么

    计算机按工作原理可分为数字计算机和模拟计算机。数字式电子计算机是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号,它有着运算速度快、运算精度高、通用性强等特点。模拟计算机是根据相似原理,用一种连续变化的模拟量...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • Excel函数学习之CHOOSE函数 vs IF函数

    Excel函数学习之CHOOSE函数 vs IF函数

    如果Excel函数圈也有江湖,那CHOOSE函数绝对算得上扫地僧。它不如IF函数那般威震江湖,但它的本领却更胜一筹。今天小花就带大家好好见识一下被大多数人冷遇的CHOOSE函数!   CHOOSE函数使用index_num返回数值参数列...

  • Matlab中length函数怎么用

    Matlab中length函数怎么用

    在matlab中,length函数用于返回向量、数组或字符串中的元素个数。以下是length函数的一些用法示例:1、返回向量中的元素个数:v = [1, 2, 3, 4, 5];  numElements = length(v); % 结果...

  • mysql列转行函数是什么

    mysql列转行函数是什么

    在mysql中,列转行函数是“group_concat()”函数;该函数用于将非空列值按照分组条件进行合并并最终返回,如果其中有空值则返回的结果是空,语法为“selectgroup_concat(name separator';')列...

  • excel求差值用什么函数

    excel求差值用什么函数

    在excel中求差值是没有专门的函数,excel求差值的方法是:首先打开excel工作表;然后在f7单元格内输入“=d7-e7”公式;最后按回车即可得到两个数之间的差值即可。本文操作环境:Windows7系统、DellG3电脑、Micro...

  • Excel Mid函数的使用方法

    Excel Mid函数的使用方法

    在Excel中,提取指定长度的字符有两个函数,分别为Mid函数和Midb函数,前者用于提取指定长度的字符个数,后者用于提取指定长度的字节个数。用Mid函数提取时,无论是汉字、字母还是数字都算一个字符;用Midb函数提取时,汉字算两个字节...

  • 周排行
  • 月排行
  • 年排行

精彩推荐