fanbeam matlab,Fan-beam transform

fanbeam

Description

F = fanbeam(I,D)

computes the fan-beam projection data (sinogram)

F from the image I.

Each column of F contains fan-beam projection

data at one rotation angle. D is the distance

from the fan-beam vertex to the center of rotation.

F = fanbeam(I,D,Name,Value)

uses name-value pairs to specify the rotation increment and sensor

spacing.

fan_sensor_positions and the rotation

angles where the fan-beam projections are calculated in

fan_rotation_angles.

Examples

Compute Fan-beam Projections for Rotation Angles Over Entire Image

Set the IPT preference to make the axes visible.

iptsetpref('ImshowAxesVisible','on')

Create a sample image and display it.

ph = phantom(128);

imshow(ph)

d45e112eb3fe27d0b58b9f56deddd978.png

Calculate the fanbeam projections and display them.

[F,Fpos,Fangles] = fanbeam(ph,250);

figure

imshow(F,[],'XData',Fangles,'YData',Fpos,...

'InitialMagnification','fit')

axis normal

xlabel('Rotation Angles (degrees)')

ylabel('Sensor Positions (degrees)')

colormap(gca,hot), colorbar

13f3c878231304996ba105848ca43367.png

Compute Radon and Fan-beam Projections and Compare Results

Compute fan-beam projections for 'arc' geometry.

I = ones(100);

D = 200;

dtheta = 45;

[Farc,FposArcDeg,Fangles] = fanbeam(I,D,...

'FanSensorGeometry','arc',...

'FanRotationIncrement',dtheta);

Convert angular positions to linear distance along x-prime axis.

FposArc = D*tan(FposArcDeg*pi/180);

Compute fan-beam projections for 'line' geometry.

[Fline,FposLine] = fanbeam(I,D,...

'FanSensorGeometry','line',...

'FanRotationIncrement',dtheta);

Compute the corresponding Radon transform.

[R,Rpos]=radon(I,Fangles);

Display the three projections at one particular rotation angle. Note the three are very similar. Differences are due to the geometry of the sampling, and the numerical approximations used in the calculations.

figure

idx = find(Fangles==45);

plot(Rpos,R(:,idx),...

FposArc,Farc(:,idx),...

FposLine,Fline(:,idx))

legend('Radon','Arc','Line')

913453ecfbfcf7b6989f7a94ab3ad244.png

Input Arguments

I — Input image

2-D numeric matrix | 2-D logical matrix

Input image, specified as a 2-D numeric or logical

matrix.

D — Distance from fan beam vertex to center of rotation

positive number

Distance in pixels from the fan beam vertex to the

center of rotation, specified as a positive number.

The center of rotation is the center pixel of the

image, defined as

floor((size(I)+1)/2).

D must be large enough to

ensure that the fan-beam vertex is outside of the

image at all rotation angles. See Tips for guidelines on specifying

D. The figure illustrates

D in relation to the fan-beam

vertex for one fan-beam geometry.

6ca88591ab1a99165b86505c4dfe38eb.png

Name-Value Pair Arguments

Specify optional

comma-separated pairs of Name,Value arguments. Name is

the argument name and Value is the corresponding value.

Name must appear inside quotes. You can specify several name and value

pair arguments in any order as

Name1,Value1,...,NameN,ValueN.Example:F =

fanbeam(I,D,'FanRotationIncrement',5)

'FanRotationIncrement' — Fan-beam rotation angle increment

1 (default) | positive scalar

Fan-beam rotation angle increment in degrees, specified as the comma-separated pair

consisting of 'FanRotationIncrement' and a positive scalar.

149aed3595fde07a5c9fb108ebe23d34.png

Data Types:double

'FanSensorGeometry' — Fan-beam sensor positioning

'arc' (default) | 'line'

Fan-beam sensor positioning, specified as the comma-separated pair consisting of

'FanSensorGeometry' and one of the following

values.

ValueMeaningDiagram'arc'Sensors are spaced at equal angles along a circular arc at

distance D from the center of

rotation.

FanSensorSpacing

defines the angular spacing in degrees.437e01a8a73da2c59beb9082aa38989e.png

'line'Sensors are spaced at equal distances along a line that is

parallel to the x' axis. The closest sensor

is distance D from the center of

rotation.

FanSensorSpacing

defines the distance between fan-beams on the

x' axis, in pixels.c0f05a329a5db345d9dfbd40a1a41de6.png

'FanSensorSpacing' — Fan-bean sensor spacing

1 (default) | positive scalar

Fan-bean sensor spacing, specified as the comma-separated pair consisting of

'FanSensorSpacing' and a positive scalar.

If FanSensorGeometry is 'arc',

then FanSensorSpacing defines the angular spacing in

degrees.

If FanSensorGeometry is 'line',

then FanSensorSpacing defines the linear distance

between fan-beams, in pixels. Linear spacing is measured on the

x' axis.

Data Types:double

Output Arguments

F — Fan-beam projection data

numsensors-by-numangles

numeric matrix

Fan-beam projection data, returned as a

numsensors-by-numangles

numeric matrix. numsensors is the

number of fan-beam sensors and

numangles is the number of

fan-beam rotation angles. Each column of

F contains the fan-beam sensor

samples at one rotation angle.

Data Types:double

fan_sensor_positions — Location of fan-beam sensors

numsensors-by-1 numeric

vector

Location of fan-beam sensors, returned as a

numsensors-by-1 numeric

vector.

If FanSensorGeometry is

'arc' (the default), then

fan_sensor_positions contains

the fan-beam spread angles.

If FanSensorGeometry is

'line', then

fan_sensor_positions contains

the fan-beam sensor positions along the

x' axis. See

FanSensorSpacing for more

information.

fanbeam determines the number of

sensors by calculating how many beams are required

to cover the entire image for any rotation angle.

Fewer sensors are required to cover the image when

the distance D between the

fan-beam vertex and the center of rotation is

large.

Data Types:double

fan_rotation_angles — Rotation angle of fan-beam sensors

1-by-numangles numeric

vector

Rotation angle of fan-beam sensors, returned as a

1-by-numangles numeric vector.

numangles is

Data Types:double

Tips

As a guideline, try making D a few pixels larger than

half the image diagonal dimension, calculated as follows.

sqrt(size(I,1)^2 + size(I,2)^2)

The values returned in F are a numerical approximation of

the fan-beam projections. The algorithm depends on the Radon transform,

interpolated to the fan-beam geometry. The results vary depending on the

parameters used. You can expect more accurate results when the image is

larger, D is larger, and for points closer to the middle

of the image, away from the edges.

References

[1] Kak, A.C., & Slaney, M., Principles

of Computerized Tomographic Imaging, IEEE Press, NY,

1988, pp. 92-93.

Introduced before R2006a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
multi-beam imaging是一种在医学图像处理中常用的技术,它可以提高图像的分辨率和质量。在MATLAB中有多种方法可以实现multi-beam imaging。 首先,可以使用信号处理工具箱中的beamforming算法来实现multi-beam imaging。Beamforming是一种将多个接收到的信号进行合并处理的技术,通过合并不同的信号,可以增强图像的对比度和清晰度。在MATLAB中,可以使用beamformplot函数来进行beamforming操作,并通过调整参数来优化图像质量。 其次,可以利用MATLAB中的超分辨率图像重建算法来实现multi-beam imaging。超分辨率图像重建是一种通过将多幅低分辨率图像合成为一幅高分辨率图像的技术,可以提高图像的细节和清晰度。在MATLAB中,可以使用Super-resolution Image Reconstruction (SRR) Toolbox来实现超分辨率图像重建,并通过调整参数和算法来优化multi-beam imaging效果。 最后,还可以利用图像后处理技术来进一步改善multi-beam imaging结果。例如,可以使用图像增强技术来增强细节和对比度,可以使用图像去噪技术来降低噪声干扰,可以使用图像分割技术来提取感兴趣的结构等。MATLAB中有丰富的图像后处理工具箱,可以使用这些工具来进行multi-beam imaging后处理。 总之,利用MATLAB中的信号处理和图像处理工具,可以实现高质量的multi-beam imaging。通过选择合适的算法和调整参数,可以优化multi-beam imaging的效果,提高图像的分辨率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值