• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Radon变换——MATLAB

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

算法说明:

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

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

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

 

语法:

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

 

描述:

theta

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

R

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

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

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

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), colorbar
11 iptsetpref('ImshowAxesVisible','off')

 

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi数组初始化发布时间:2022-07-18
下一篇:
delphiwebbrowser执行js---转发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap