博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Radon变换——MATLAB
阅读量:5126 次
发布时间:2019-06-13

本文共 1685 字,大约阅读时间需要 5 分钟。

算法说明:

图像的Radon变换是每个像素的Radon变换的总和。

该算法首先将图像中的像素分成四个子像素,并分别投影每个子像素,如下图所示。

根据投影位置和箱体中心之间的距离,每个子像素的贡献按比例分成两个最近的仓。如果子像素投影击中仓的中心点,则轴上的仓将获得子像素的全部值,或像素值的四分之一。如果子像素投影命中两个分区之间的边界,则子像素值在分区之间被均匀分割。

 

语法:

R = radon(I, theta)

[R,xp] = radon(...)
[___]= radon(gpuarrayI,theta)

 

描述:

R = radon(I, theta)返回角度度R的强度图像的Radon变换。Itheta

Radon变换是沿着以特定角度定向的径向线的图像强度的投影。如果theta是标量,R则是包含theta度数的Radon变换的列向量。如果theta是向量,R则是其中每列是其中一个角度的Radon变换的矩阵theta。如果省略theta,则默认为0:179。

[R,xp] = radon(...)返回一个xp包含对应于每行的径向坐标的向量R

径向坐标返回在xp沿着值'轴,其在面向theta逆时针方向从度X轴。两个轴的原点是图像的中心像素,其定义为

地板((大小(I)+1)/ 2)

例如,在20×30的图像中,中心像素为(10,15)。

[___]= radon(gpuarrayI,theta)在GPU上执行Radon变换。输入图像和返回值是2-D gpuArrays。theta可以是double基础类的一个或者gpuArray double

类支持:

I可以是类doublelogical或任何整数类。所有其他输入和输出都是类double。这两个输入都不可能是稀疏的。

gpuarrayI是与基础类gpuArray uint8uint16uint32int8int16int32logicalsingledouble,并且必须是二维的。thetadouble底层类的向量或gpuArray向量double。

 

实例:

计算Radon变换和显示图

使轴缩放可见此图像。

iptsetpref('ImshowAxesVisible','on')

创建示例图像。

I = zeros(100,100);I(25:75, 25:75) = 1;

计算Radon变换。

theta = 0:180;[R,xp] = radon(I,theta);

显示变换。

imshow(R,[],'Xdata',theta,'Ydata',xp,'InitialMagnification','fit')xlabel('\theta (degrees)')ylabel('x''')colormap(gca,hot), colorbar

使轴缩放不可见。

iptsetpref('ImshowAxesVisible','off')

 

计算GPU上的Radon变换

在GPU上计算Radon变换并将其可视化。

1 iptsetpref('ImshowAxesVisible','on') 2 I = zeros(100,100); 3 I(25:75, 25:75) = 1; 4 theta = 0:180; 5 [R,xp] = radon(gpuArray(I),theta); 6 imshow(R,[],'Xdata',theta,'Ydata',xp,... 7             'InitialMagnification','fit') 8 xlabel('\theta (degrees)') 9 ylabel('x''')10 colormap(gca,hot), colorbar11 iptsetpref('ImshowAxesVisible','off')

 

 

作者:耑新新,发布于  

转载请注明出处,欢迎邮件交流:

转载于:https://www.cnblogs.com/Amedeo/p/7532121.html

你可能感兴趣的文章
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
[转]: 视图和表的区别和联系
查看>>
图论例题1——NOIP2015信息传递
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>