算法说明: 图像的Radon变换是每个像素的Radon变换的总和。 该算法首先将图像中的像素分成四个子像素,并分别投影每个子像素,如下图所示。 根据投影位置和箱体中心之间的距离,每个子像素的贡献按比例分成两个最近的仓。如果子像素投影击中仓的中心点,则轴上的仓将获得子像素的全部值,或像素值的四分之一。如果子像素投影命中两个分区之间的边界,则子像素值在分区之间被均匀分割。
语法: R = radon(I, theta)
描述:
Radon变换是沿着以特定角度定向的径向线的图像强度的投影。如果
径向坐标返回在 地板((大小(I)+1)/ 2)
例如,在20×30的图像中,中心像素为(10,15)。
类支持:
实例: 计算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 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论