Radon变换——MATLAB

算法说明:

图像的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), colorbar
11 iptsetpref(‘ImshowAxesVisible‘,‘off‘)

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

转载请注明出处,欢迎邮件交流:[email protected]

时间: 2024-10-11 00:49:37

Radon变换——MATLAB的相关文章

Radon变换

转自:http://baike.baidu.com/view/2435650.htm 两维情况下radon变换大致可以这样理解:一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa)就是函数f的Radon变换.也就是说,平面(d,alfa)的每个点的像函数值对应了原始函数的某个线积分值.一个更直观的理解是,假设你的手指被一个很强的平行光源透射,你迎着光源看到的手指图像就是手指的光衰减系数的三维Radon变换(小小的推广)在给定方向(两个

Radon变换简介

学习笔记(2)---Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全 一.通用函数: colorbar  显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \

MATLAB Image Processing Toolbox 官方文档

一.函数 导入,导出和转换 从文件读取和写入图像数据 imread 从图形文件读取图像 imwrite 将图像写入图形文件 imfinfo 显示图形文件的信息 nitfinfo 显示NITF文件信息 nitfread 从NITF文件读取映像 dpxinfo 显示DPX文件信息 dpxread 读取DPX图像 analyze75info 从Analyze 7.5数据集的头文件中读取元数据 analyze75read 从Analyze 7.5数据集的图像文件读取图像数据 interfileinfo

MATLAB中图像处理的一些简单函数

A. imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread('filename','fmt')其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径).例:[X,MAP]=imread('flowers.tif','tif');比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size函数用来显示数组的维数,了解数据的特点.B=size(a) 返回数组a 的维数.

matlab图像处理

matlab图像处理 转自:http://www.cnblogs.com/lovebay/p/5094146.html 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大:MATLAB还支持另一种类型无符号整型(uint8),即图像矩阵中每个数据占用1个字节. 在使用MATLAB工具箱时,一定要注意函数所要求的参数类型.另外,uint8与double两种类型数据的值域不同,编程需注意值域转换. 从uint8到double的转

matlab快捷键大全

原文地址,点此查看 一.常用对象操作 除了一般windows窗口的常用功能键外. 1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看. 2.who   可以查看当前工作空间变量名, whos 可以查看变量名细节. 3.功能键: 功能键           快捷键           说明 方向上键      Ctrl+P       返回前一行输入 方向下键      Ctrl+N       返回下一行输入 方向左键      Ctrl+B       光标向后移一

MATLAB图像处理工具箱

下列表格中除了个别函数外,其余函数都是图像处理工具箱提供的关于图像处理的函数,现摘录到此以备查找. 表1 图像显示 函数名 功能说明 函数名 功能说明 colorbar 颜色条显示 montage 按矩形剪辑方式显示多帧图像 getimage 从坐标系中获取图像数据 immovie 从多帧索引图像中制作电影 image 建立显示图像 movie 播放电影 subimage 在同一图像窗口显示多个图像 trueszie 调整图像显示大小 imagesc 调整数据并显示图像 warp 显示图像为纹理

Matlab命令合集 妈妈再也不用担心我不会用matlab了

matlab命令 一.常用对象操作:除了一般windows窗口的常用功能键外.1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2.who 可以查看当前工作空间变量名, whos 可以查看变量名细节.3.功能键:功能键 快捷键 说明方向上键 Ctrl+P 返回前一行输入方向下键 Ctrl+N 返回下一行输入方向左键 Ctrl+B 光标向后移一个字符方向右键 Ctrl+F 光标向前移一个字符Ctrl+方向右键 Ctrl+R 光标向右移一个字符Ctrl+方向左键 Ctr