文档库 最新最全的文档下载
当前位置:文档库 › SAR合成孔径雷达图像点目标仿真报告(附matlab代码)

SAR合成孔径雷达图像点目标仿真报告(附matlab代码)

SAR合成孔径雷达图像点目标仿真报告(附matlab代码)
SAR合成孔径雷达图像点目标仿真报告(附matlab代码)

SAR 图像点目标仿真报告

徐一凡

1 SAR 原理简介

合成孔径雷达(Synthetic Aperture Radar ,简称SAR)是一种高分辨率成像雷达技术。它利用脉冲压缩技术获得高的距离向分辨率,利用合成孔径原理获得高的方位向分辨率,从而获得大面积高分辨率雷达图像。

SAR 回波信号经距离向脉冲压缩后,雷达的距离分辨率由雷达发射信号带宽决定:

2r r

C

B ρ=

,式中r ρ表示雷达的距离分辨率,r B 表示雷达发射信号带宽,C 表示光速。同样,SAR 回波信号经方位向合成孔径后,雷达的方位分辨率由雷达方位向的多谱勒带宽决定:a

a a

v B ρ=

,式中a ρ表示雷达的方位分辨率,a B 表示雷达方位向多谱勒带宽,a v 表示方位向SAR 平台速度。在小斜视角的情况下,方位分辨率近似表示为2

a D

ρ=,其中D 为方位向合成孔径的长度。

2 SAR 的几何关系

雷达位置和波束在地面覆盖区域的简单几何模型如图1所示。此次仿真考虑的是正侧视的条带式仿真,也就是说倾斜角为零,SAR 波束中心和SAR 平台运动方向垂直的情况。

图1 雷达数据获取的几何关系

建立坐标系XYZ 如图2所示,其中XOY 平面为地平面;SAR 平台距地平面高H ,以速度V 沿X 轴正向匀速飞行;P 点为SAR 平台的位置矢量,设其坐标为(x,y,z); T 点为目标的位置矢量,设其坐标为(,,)T T T x y z ;由几何关系,目标与SAR 平台的斜距为:

R PT ==u u u r

(1)

由图可知:0,,0T y z H z ===;令x v s =?,其中v 为平台速度,s 为慢时间变量(

slow

time ),假设T x vs =,其中s 表示SAR 平台的x 坐标为T x

的时刻;再令r =

r 表示目标与SAR 的垂直斜距,重写(1)式为:

(;)PT R s r = =u u u r (2)

(;)R s r 就表示任意时刻s 时,目标与雷达的斜距。一般情况下,0v s s r -<<,于是通过

傅里叶技术展开,可将(2)式可近似写为:

2

20(;)()2v R s r r s s r

=≈+- (3)

可见,斜距是s r 和的函数,不同的目标,r 也不一样,但当目标距SAR 较远时,在观测带内,可近似认为r 不变,即0r R =。

图2:空间几何关系 (a)正视图 (b)侧视图

图2(a)中,Lsar 表示合成孔径长度,它和合成孔径时间Tsar 的关系是Lsar vTsar =。(b)中,θ?为雷达天线半功率点波束角,θ为波束轴线与Z 轴的夹角,即波束视角,min R 为近距点距离,max R 为远距点距离,W 为测绘带宽度,它们的关系为:

22min (max ()max min R H tg R H tg W R R θθθθ??=?-=?+=- (4)

3 SAR 的回波信号模型

SAR 在运动中以一定的周期(1/PRF )发射和接收信号,具体过程如图3

所示。发射机

以l τ的时间发射啁啾脉冲,然后切换天线开关接收回波信号。

图3 雷达发射脉冲串的时序

当雷达不处于发射状态时,它接收3反射回波。发射和接收回波的时间序列如图4所示。在机载情况下,每个回波可以在脉冲发射间隔内直接接收到。但是在星载情况下,由于距离过大,某个脉冲的回波要经过6~10个脉冲间隔才能接收到。这里仿真为了方便,默认为机载情况。

图4 脉冲雷达的发射与接收周期

假设r T 为chirp 信号持续时间,下标r 表示距离向;PRF 为重复频率,PRT 为重复周

期,等于1/PRF 。接收序列中,2*(;)

n R s r C

τ=

表示发射第i 个脉冲时,目标回波相对于发射序列的延时。雷达的发射序列数学表达式为式(5):

2r 2j K ()(*)

(t)rect()e c n j f t

t r

s t p t n PRT t

p e T ππ∞

=-∞

=

-=∑ (5)

式中,rect()g

表示矩形信号,r K 为距离向的chirp 信号调频率,c f 为载频。 雷达回波信号由发射信号波形,天线方向图,斜距,目标RCS ,环境等因素共同决

定,若不考虑环境因素,则单点目标雷达回波信号可写成式(6)所示:

()()r n

n s t wp t n PRT στ

=-∞

=

-?-∑ (6)

其中,σ表示点目标的雷达散射截面,w 表示点目标天线方向图双向幅度加权,n τ表

示载机发射第n 个脉冲时,电磁波再次回到载机时的延时2*(;)

n R s r C

τ=,带入式(6)中得:

22(;)/()(

) exp[(2(;)/)]4 exp[-(;)]exp[2()]

r n r

r c n t n PRT R s r C

s t w rect T j K t n PRT R s r C j

R s r j f t n PRT σππ

πτλ

=-∞

-?-=

???

-?-??-?-∑ (7)

式(7)就是单点目标回波信号模型,其中,2exp[(2(;)/)]r j K t n PRT R s r C π-?-是

chirp 分量,它决定距离向分辨率;4exp[-(;)]j

R s r π

λ

为多普勒分量,它决定方位向分辨

率。 对于任意一个脉冲,回波信号可表示为式(8)所示:

002(,)(2(;)/)()exp{4(;)/} exp{(2(;)/)}

r r a c r s t s A w R s r C w s s j f R s r C j K R s r C τππτ=--?-?-(8)

我们知道,由于(;)R s r 随慢时间s 的变化而变化,所以计算机记录到的回波数据存储

形式如图5所示:

图5 目标照射时间内,单个点目标回波能量在信号处理器的二维存储器中的轨迹

4 距离徙动及校正

根据图2可知,在倾斜角为零或很小的时候,目标与雷达的瞬时距离为(;)R s r ,根据

几何关系可知,(;)R s r =

,根据泰勒级数展开可得:

2

2

(;)()

2

v

R s r r s s

r

=≈+-(9)由式(9)可知,不同慢时间对应着不同的(;)

R s r ,并且是一个双曲线形式或者近似为一个二次形式。如图5所示,同一目标的回波存储在计算机里不在同一直线上,存在距离徙动。从而定义距离徙动量:

2

2

(,)()

2

v

R s r s s

r

?=-(10)

为了进行方位向的压缩,方位向的回波数据必须在同一条直线上,也就是说必须校正距离徙动(,)

R s r

?。由式(10)可知,不同的最近距离r对应着不同的(,)

R s r

?,因此在时域处理距离徙动会非常麻烦。因此,对方位向进行傅里叶变换,对距离向不进行变换,得到新的域。由于方位向的频率即为多普勒频率,所以这个新的域也称为距离多普勒域。

将斜距R写成多普勒fa的函数,即(,)

a

R f r。众所周知,对最近距离为r的点目标

P,回波多普勒

a

f是倾斜角θ的函数,即2sin

a

V

λ

=,斜距(,)/cos

a

R f r rθ

=,于是

22

(,)/cos/

/

1

()

8

a

a

R f r r r

r

r rf

V

θ

λ

==

=

≈+

(11)

所以距离多普勒域中的我距离徙动为(,)

a

R f r

?=22

1

()

8a

rf

V

λ

,可发现它不随慢时间变换,同一最短距离r对应着相同大小的距离徙动。因此在距离多普勒域对一个距离徙动校正就是对一组具有相同最短距离的点目标的距离徙动校正,这样可以节省运算量。

为了对距离徙动进行校正,需要得到距离徙动单元,即距离徙动体现在存储单元中的

移动数值,距离徙动单元可以表示为(,)/

a r

R f rρ

?,这个值通常为一个分数,由于存储单元都是离散的,所以不同通过在存储单元简单的移动得到准确的值。为了得到准确的徙动校正值,通常需要进行插值运算。

本仿真采用了两种插值方法最近邻点插值和sinc插值,下面分别进行介绍。最近邻点

插值法的优点是简单而快速,缺点是不够精确。(,)/=

a r

R f r N n

ρ

?+,其中N为整数部分,n为小数部分,整数部分徙动可以直接通过平移消除,对于小数部分则通过四舍五入的方法变为0或者1,这样就可以得到较为精确的插值。

Sinc插值原理如下:在基带信号下,卷积核是sinc函数

sin()

()sin()

x

h x c x

x

π

π

==(12)插值信号为

()()sin ()d i

g x g i c x i =-∑

(13)

即为所有输入样本的加权平均。

可通过频域来理解,如图6所示,采样信号()d g i 的频谱()d G f 等于以采样率重复的

信号频谱。为了重建信号()g x ,只需要一个周期频谱(如基带周期),因此需要理想矩形低通滤波器在频域中提取基带频谱(如图6)所示。已知该理想滤波器在时域中是sinc 函数。由于频域相乘相当于时域卷积,故插值可以通过与sinc 核的卷积来实现。

图6 理想低通滤波器怎样对采样信号进行插值

5 点目标成像matlab 仿真

5.1距离多普勒算法 距离多普勒算法(RDA )是在1976年至1978年为民用星载SAR 提出的,它兼顾了成熟、简单、高效和精确等因素,至今仍是使用最广泛的成像算法。它通过距离和方位上的频域操作,到达了高效的模块化处理要求,同时又具有了一维操作的简便性。 图7示意了RDA 的处理流程。这里主要讨论小倾斜角及短孔径下的基本RDA 处理框图。 1.当数据处在方位时域时,可通过快速卷积进行距离压缩。也就是说,距离FFT 后随即进行距离向匹配滤波,再利用距离IFFT 完成距离压缩。回波信号为:

002

0(,)[2()/]()

exp{-4()/}exp{(-2()/)}

r a c r s t s A w t R s c w s s j f R s c j K t R s c ππ=--?(14)

距离向压缩后的信号为:

000(,){(,)()}

[2()/]()exp{4()/}

rc t t t r a c s t s IFFT S f s H f A t R s c w s s j f R s c ρπ==--- (15)

2

0(){}exp{}exp{2}||t f f H f rect j j ft K T K

ππ=-- (16)

2.通过方位FFT 将数据变换至距离多普勒域,多普勒中心频率估计以及大部分后续操

作都在该域进行。方位向傅里叶变换后信号为:

102

00(,){(,)}

2()

[]()4 exp{-}exp{}

c s s rc r

d s r a s s s a S t f FFT s t s R f A p t W f f c f R f j j c K ππ==-

-? (17) 3.在距离多普勒域进行随距离时间及方位频率变化的RCMC ,该域中同一距离上的一

组目标轨迹相互重合。RCMC 将距离徙动曲线拉直到与方位频率轴平行的方向。这里可以采用最近邻点插值法或者sinc 插值法,具体插值方法见前面。假设RCMC 插值是精确的,信号变为:

202

002(,)()()4 exp{-}exp{}

s r a s sc s a R S t f A p t W f f c

f R f j j c K ππ=-

-? (18)

4.通过每一距离门上的频域匹配滤波实现方位压缩。为进行方位压缩,将RCMC 后的

2(,)s S t f 乘以频域匹配滤波器()az s H f 。

2

()exp{}s az s a

f H f j K π=-

(19)

320000(,)(,)()

4 (2/)()exp{}

s s az s r a s sc S t f S t f H f f R A p t R c W f f j c

π==--- (20)

5.最后通过方位IFFT 将数据变换回时域,得到压缩后的复图像。复原后的图像为:

30000

(,){(,)} (-2/)()4 exp{-}exp{2}c ac s s r a s s t s IFFT S t f A p t R c p s f R j

j f s c

ππ==?

(21)

图8 距离多普勒算法流程图

5.2 Chirp Scaling 算法 距离多普勒算法具有诸多优点,但是距离多普勒算法有两点不足:首先,当用较长的核函数提高距离徙动校正(RCMC )精度时,运算量较大;其次,二次距离压缩(SRC )对方位频率的依赖性问题较难解决,从而限制了其对某些大斜视角和长孔径SAR 的处理精度。 Chirp Scaling 算法避免了RCMC 中的插值操作,通过对Chirp 信号进行频率调制,实现了对该信号的尺度变换或平移。 图8显示了Chirp Scaling 算法处理流程。这里主要讨论小倾斜角及短孔径下的基本CSA 处理框图。主要步骤包括四次FFT 和三次相位相乘。 1.通过方位向FFT 将数据变换到距离多普勒域。 2.通过相位相乘实现Chirp Scaling 操作,使所有目标的距离徙动轨迹一致化。这是第一步相位相乘。用以改变线调频率尺度的Chirp Scaling 二次相位函数为:

2

12(;)(,;)exp[(;)()()]a s a s a B a R f R H t f R j f R a f t c

πγ=-

(22)

3.通过距离向FFT 将数据变到二维频域。

4.通过与参考函数进行相位相乘,同时完成距离压缩、SRC 和一致RCMC 。这是第二步相位相乘。用于距离压缩,距离徙动校正的相位函数写为:

221

(,;)exp[]

(;)[1()]

4()

exp[]]r a s r a B a s a r H f f R j f f R a f R a f j

f c

π

γπ=+? (23)

5.通过距离向IFFT 将数据变回到距离多普勒域。

6.通过与随距离变化的匹配滤波器进行相位相乘,实现方位压缩。此外,由于步骤2中的Chirp Scaling 操作,相位相乘中还需要附加一项相位校正。这是第三步相位相乘。补偿由Chirp Scaling 引起的剩余相位函数是:

22(,;)exp[(;)]r a B a B H t f R j

R j f R V

π?=Θ

(24)

7.最后通过方位向IFFT 将数据变回到二维时域,即SAR 图像域。

图8Chirp Scaling 算法流程图

简而言之,R-D 算法是将徙动曲线逐一校正,CS 算法是以某一徙动曲线为参考,在Doppler 域内消除不同距离门的徙动曲线的差异,令这些曲线成为一组相互“平行”的曲线,然后在二维频率域内统一的去掉距离徙动。通俗一点就是,RD 算法是将弯曲的信号一根根掰直,而CS 算法是先把所有信号都掰得一样弯,然后再统一掰直。

6 仿真结果

6.1 使用最近邻点插值的距离多普勒算法仿真结果 本文首先对5个点目标的回波信号进行了仿真,5个点目标构成了矩形的4个顶点和中心,其坐标分别如下,格式为(方位向,距离向,后向反射系数): 0 9750 1 100 9750 1 50 10000 1 0 10250 1 100 10250 1

图9的上图是距离向压缩后的图像,从图中可以看到5条回波信号(其中有几条部分重合,但仍能看出来)目标回波信号存在明显的距离徙动,需要进行校正。图9的下图是通过最近邻点插值法校正后的图像,可以看出图像基本被校正为直线。

图9距离向压缩后最近邻点插值的结果

图10为进行方位向压缩后形成的图像,可以明显看出5个点目标,并且5个点目标构成了矩形的四个顶点及其中心。

图10 通过最近邻点插值生成的点目标图像

6.2 使用最近邻点插值的距离多普勒算法仿真结果 图11上图为通过距离压缩后的图像,图11的下图为通过sinc 插值法校正后的图像。

距离向

方位向

x 10

4

-400

-200

200

400距离向

方位向

x 10

4

-400

-200

200

400X: 9777 Y: -5.347Index: -5.635e+04

RGB: 0.698, 0.698, 0.698距离向

方位向

X: 9777 Y: 95.5Index: -6.914e+04

RGB: 0.619, 0.619, 0.619

X: 9998 Y: 48.56Index: -9.081e+04

RGB: 0.508, 0.508, 0.508

X: 1.022e+04 Y: -0.1306Index: -6.263e+04

RGB: 0.667, 0.667, 0.667X: 1.022e+04 Y: 97.24Index: -7.73e+04

RGB: 0.587, 0.587, 0.587

x 10

4

-400

-300

-200

-100

100

200

300

400

图11 距离向压缩后sinc 插值的结果

图12为进行方位向压缩后形成的图像,可以明显看出5个点目标,并且5个点目标构成了矩形的四个顶点及其中心。

图12 通过sinc 插值生成的点目标图像

6.3 Chirp Scaling 算法仿真结果 同样,在Chirp Scaling 中,对5个点目标的回波信号进行了仿真,5个点目标构成了矩形的4个顶点和中心,其坐标分别如下,格式为(方位向,距离向,后向反射系数): 1200 0 1 1250 -50 1 1250 50 1 1150 -50 1 1150 50 1 图13是仿真的雷达回波信号图

距离向

方位向

距离向压缩,未校正距离徙动的图像

x 10

4

-400-200

0200400距离向

方位向

距离向压缩,校正距离徙动后的图像

x 10

4

-400-200

0200400X: 9777 Y: -1.869Index: -4.011e+04RGB: 0.46, 0.46, 0.46距离向

方位向

X: 9775 Y: 98.98Index: -3.731e+04

RGB: 0.508, 0.508, 0.508

X: 1e+04 Y: 48.56Index: -4.628e+04

RGB: 0.381, 0.381, 0.381

X: 1.022e+04 Y: -0.1306Index: -3.207e+04

RGB: 0.571, 0.571, 0.571X: 1.022e+04 Y: 97.24Index: -4.445e+04

RGB: 0.413, 0.413, 0.413

x 10

4

-400

-300

-200

-100

100

200

300

400

图13 仿真出来的SAR 回波信号

图14是经过第一次相位校正之后,通过距离向压缩后的距离时域-方位时域信号图(Chirp Scaling 算法的七个步骤中并不包含该信号,该信号是将步骤2之后的信号通过方位向傅里叶逆变换,再进行距离向压缩得到的,只为了验证原理)。按照理论,该图中所有点的距离徙动都应该一样。从图中大致可看出,五个点的距离徙动是差不多的。

图14 Chirp Scaling 第2步之后、经过距离向压缩得到的图

图15为步骤5之后,信号距离压缩,距离徙动校正之后的距离多普勒域中的信号

图。

方位向

距离向

仿真出来的信号

100

200

300

400

500600700

800

900

1000

50100150200

250300350400450500

方位向

距离向

Chirp Scaling 后、经过距离向压缩,距离徙动一致

100

200

300

400

500600700

800

900

1000

50100150200

250300350400450500

图15 距离徙动校正之后的图

图16为步骤6之后,消除相位偏移的图。

图16 消除相位偏移的图

图17为通过Chirp Scaling 算法生成的点目标图像

方位向

距离向

消除距离徙动后的信号

100

200

300

400

500600700

800

900

1000

50100150200

250300350400450500

方位向

距离向

相位校正后的信号

100

200

300

400

500600700

800

900

1000

50100150200

250300350400450500

图17通过Chirp Scaling 算法生成的点目标图像

6.4 几种算法比较 本文讨论了距离多普勒算法和Chirp Scaling 算法,其中距离多普勒算法考虑了最近邻点插值和sinc 插值两种插值方法。 距离多普勒算法兼顾了成熟、简单、高效和精确等因素,至今仍被广泛使用,但是距离多普勒算法有两点不足:首先,当用较长的核函数提高距离徙动校正(RCMC )精度时,运算量较大;其次,二次距离压缩(SRC )对方位频率的依赖性问题较难解决,从而限制了其对某些大斜视角和长孔径SAR 的处理精度。 最近邻点插值的优点是速度快,该插值的运行时间为2.267137秒,缺点是不够精确;sinc 插值的优点是精确,该方法的运行时间为29.148728秒,缺点是速度慢;Chirp Scaling 算法避免了插值运算,提高了速度,运行时间为0.323327秒,但是其算法较为复杂。

%%================================================================ %%文件名:NearSAR.m %%作者:徐一凡

%%功能:合成孔径雷达距离多普勒算法点目标成像

%%================================================================ clear;clc;close all;

%%================================================================ %%常数定义

C=3e8; %光速 %%雷达参数

Fc=1e9; %载频1GHz lambda=C/Fc; %波长 %%目标区域参数

Xmin=0; %目标区域方位向范围[Xmin,Xmax] Xmax=50;

Yc=10000; %成像区域中线

Y0=500; %目标区域距离向范围[Yc-Y0,Yc+Y0] %成像宽度为2*Y0 %%轨道参数

V=100; %SAR 的运动速度100 m/s

X: 384 Y: 170Index: 175.4

RGB: 0.635, 0.635, 0.635

方位向

距离向

X: 386 Y: 340Index: 155.4

RGB: 0.54, 0.54, 0.54X: 513 Y: 254Index: 195.8

RGB: 0.73, 0.73, 0.73

X: 641 Y: 340Index: 153.7

RGB: 0.54, 0.54, 0.54

X: 642 Y: 170Index: 120.5

RGB: 0.381, 0.381, 0.381

100

200

300

400

500600

700

800

900

1000

50

100

150

200

250

300

350

400

450

500

H=5000; %高度 5000 m

R0=sqrt(Yc^2+H^2); %最短距离

%%天线参数

D=4; %方位向天线长度

Lsar=lambda*R0/D; %SAR合成孔径长度,《合成孔径雷达成像——算法与实现》P.100

Tsar=Lsar/V; %SAR照射时间

%%慢时间域参数

Ka=-2*V^2/lambda/R0; %多普勒频域调频率P.93

Ba=abs(Ka*Tsar); %多普勒频率调制带宽

PRF=Ba; %脉冲重复频率,PRF其实为多普勒频率的采样率,又为复频率,所以等于Ba.P.93

PRT=1/PRF; %脉冲重复时间

ds=PRT; %慢时域的时间步长

Nslow=ceil((Xmax-Xmin+Lsar)/V/ds); %慢时域的采样数,ceil为取整函数,结合P.76的图理解

Nslow=2^nextpow2(Nslow); %nextpow2为最靠近2的幂次函数,这里为fft变换做准备

sn=linspace((Xmin-Lsar/2)/V,(Xmax+Lsar/2)/V,Nslow);%慢时间域的时间矩阵

PRT=(Xmax-Xmin+Lsar)/V/Nslow; %由于Nslow改变了,所以相应的一些参数也需要更新,周期减小了

PRF=1/PRT;

ds=PRT;

%%快时间域参数设置

Tr=5e-6; %脉冲持续时间5us

Br=30e6; %chirp频率调制带宽为30MHz

Kr=Br/Tr; %chirp调频率

Fsr=2*Br; %快时域采样频率,为3倍的带宽

dt=1/Fsr; %快时域采样间隔

Rmin=sqrt((Yc-Y0)^2+H^2);

Rmax=sqrt((Yc+Y0)^2+H^2+(Lsar/2)^2);

Nfast=ceil(2*(Rmax-Rmin)/C/dt+Tr/dt);%快时域的采样数量

Nfast=2^nextpow2(Nfast); %更新为2的幂次,方便进行fft变换tm=linspace(2*Rmin/C,2*Rmax/C+Tr,Nfast); %快时域的离散时间矩阵

dt=(2*Rmax/C+Tr-2*Rmin/C)/Nfast; %更新间隔

Fsr=1/dt;

%%分辨率参数设置

DY=C/2/Br; %距离向分辨率

DX=D/2; %方位向分辨率

%%点目标参数设置

Ntarget=5; %点目标的数量

%点目标格式[x,y,反射系数sigma]

Ptarget=[Xmin,Yc-50*DY,1 %点目标位置,这里设置了5个点目标,构成一个矩形以及矩形的中心

Xmin+50*DX,Yc-50*DY,1

Xmin+25*DX,Yc,1

Xmin,Yc+50*DY,1

Xmin+50*DX,Yc+50*DY,1];

disp('Parameters:') %参数显示

disp('Sampling Rate in fast-time domain');disp(Fsr/Br)

disp('Sampling Number in fast-time domain');disp(Nfast)

disp('Sampling Rate in slow-time domain');disp(PRF/Ba)

disp('Sampling Number in slow-time domain');disp(Nslow)

disp('Range Resolution');disp(DY)

disp('Cross-range Resolution');disp(DX)

disp('SAR integration length');disp(Lsar)

disp('Position of targets');disp(Ptarget)

%%================================================================

%%生成回波信号

K=Ntarget; %目标数目

N=Nslow; %慢时域的采样数

M=Nfast; %快时域的采样数

T=Ptarget; %目标矩阵

Srnm=zeros(N,M); %生成零矩阵存储回波信号

for k=1:1:K %总共K个目标

sigma=T(k,3); %得到目标的反射系数

Dslow=sn*V-T(k,1); %方位向距离,投影到方位向的距离 R=sqrt(Dslow.^2+T(k,2)^2+H^2); %实际距离矩阵

tau=2*R/C; %回波相对于发射波的延时

Dfast=ones(N,1)*tm-tau'*ones(1,M); %(t-tau),其实就是时间矩阵,ones(N,1)和ones(1,M)都是为了将其扩展为矩阵

phase=pi*Kr*Dfast.^2-(4*pi/lambda)*(R'*ones(1,M));%相位,公式参见P.96

Srnm=Srnm+sigma*exp(j*phase).*(0

end

%%================================================================

%%距离-多普勒算法开始

%%距离向压缩

tic;

tr=tm-2*Rmin/C;

Refr=exp(j*pi*Kr*tr.^2).*(0

Sr=ifty(fty(Srnm).*(ones(N,1)*conj(fty(Refr))));

Gr=abs(Sr);

%%开始进行距离弯曲补偿正侧视没有距离走动项主要是因为斜距的变化引起回波包络的徙动

%%补偿方法:最近邻域插值法,具体为:先变换到距离多普勒域,分别对单个像素点计算出距离徙动量,得到距离徙动量与距离分辨率的比值,

%%该比值可能为小数,按照四舍五入的方法近似为整数,而后在该像素点上减去徙动量

%%方位向做fft处理再在频域做距离弯曲补偿

Sa_RD = ftx(Sr); % 方位向FFT 变为距离多普域进行距离弯曲校正

%距离徙动运算,由于是正侧视,fdc=0,只需要进行距离弯曲补偿。

Kp=1; %计算或者预设预滤波比

h = waitbar(0,'最近邻域插值');

%%首先计算距离迁移量矩阵

for n=1:N %总共有N个方位采样

for m=1:M %每个方位采样上有M个距离采样

delta_R = (1/8)*(lambda/V)^2*(R0+(m-M/2)*C/2/Fsr)*((n-

N/2)*PRF/N)^2;%距离迁移量P.160;(R0+(m-M/2)*C/2/Fsr):每个距离向点m的R0更新;(n-N/2)*PRF/N:不同方位向的多普勒频率不一样

RMC=2*delta_R*Fsr/C; %此处为delta_R/DY,距离徒动了几个距离单元 delta_RMC = RMC-round(RMC);%距离徒动量的小数部分

if m+round(RMC)>M %判断是否超出边界

Sa_RD(n,m)=Sa_RD(n,M/2);

else

if delta_RMC>=0.5 %五入

Sa_RD(n,m)=Sa_RD(n,m+round(RMC)+1);

else %四舍

Sa_RD(n,m)=Sa_RD(n,m+round(RMC));

end

end

end

waitbar(n/N)

end

close(h)

%========================

Sr_rmc=iftx(Sa_RD); %%距离徙动校正后还原到时域

Ga = abs(Sr_rmc);

%%方位向压缩

ta=sn-Xmin/V;

Refa=exp(j*pi*Ka*ta.^2).*(abs(ta)

Sa=iftx(ftx(Sr_rmc).*(conj(ftx(Refa)).'*ones(1,M)));

Gar=abs(Sa);

toc;

%%================================================================

%%绘图

colormap(gray);

figure(1)

subplot(211);

row=tm*C/2-2008;col=sn*V-26;

imagesc(row,col,255-Gr); %距离向压缩,未校正距离徙动的图像

axis([Yc-Y0,Yc+Y0,Xmin-Lsar/2,Xmax+Lsar/2]);

xlabel('距离向'),ylabel('方位向'),

title('距离向压缩,未校正距离徙动的图像'),

subplot(212);

imagesc(row,col,255-Ga); %距离向压缩,校正距离徙动后的图像

axis([Yc-Y0,Yc+Y0,Xmin-Lsar/2,Xmax+Lsar/2]);

xlabel('距离向'),ylabel('方位向'),

title('距离向压缩,校正距离徙动后的图像'),

figure(2)

colormap(gray);

imagesc(row,col,255-Gar); %方位向压缩后的图像

axis([Yc-Y0,Yc+Y0,Xmin-Lsar/2,Xmax+Lsar/2]);

xlabel('距离向'),ylabel('方位向'),

title('方位向压缩后的图像'),

%%================================================================

%%文件名:SincSAR.m

%%作者:徐一凡

%%功能:合成孔径雷达距离多普勒算法点目标成像

%%================================================================ clear;clc;close all;

%%================================================================

%%常数定义

C=3e8; %光速

%%雷达参数

Fc=1e9; %载频1GHz

lambda=C/Fc; %波长

%%目标区域参数

Xmin=0; %目标区域方位向范围[Xmin,Xmax]

Xmax=50;

Yc=10000; %成像区域中线

Y0=500; %目标区域距离向范围[Yc-Y0,Yc+Y0]

%成像宽度为2*Y0

%%轨道参数

V=100; %SAR的运动速度100 m/s

H=5000; %高度 5000 m

R0=sqrt(Yc^2+H^2); %最短距离

%%天线参数

D=4; %方位向天线长度

Lsar=lambda*R0/D; %SAR合成孔径长度,《合成孔径雷达成像——算法与实现》P.100

Tsar=Lsar/V; %SAR照射时间

%%慢时间域参数

Ka=-2*V^2/lambda/R0; %多普勒频域调频率P.93

Ba=abs(Ka*Tsar); %多普勒频率调制带宽

PRF=Ba; %脉冲重复频率,PRF其实为多普勒频率的采样率,又为复频率,所以等于Ba.P.93

PRT=1/PRF; %脉冲重复时间

ds=PRT; %慢时域的时间步长

Nslow=ceil((Xmax-Xmin+Lsar)/V/ds); %慢时域的采样数,ceil为取整函数,结合P.76的图理解

Nslow=2^nextpow2(Nslow); %nextpow2为最靠近2的幂次函数,这里为fft变换做准备

sn=linspace((Xmin-Lsar/2)/V,(Xmax+Lsar/2)/V,Nslow);%慢时间域的时间矩阵

PRT=(Xmax-Xmin+Lsar)/V/Nslow; %由于Nslow改变了,所以相应的一些参数也需要更新,周期减小了

PRF=1/PRT;

ds=PRT;

%%快时间域参数设置

Tr=5e-6; %脉冲持续时间5us

Br=30e6; %chirp频率调制带宽为30MHz

Kr=Br/Tr; %chirp调频率

Fsr=2*Br; %快时域采样频率,为3倍的带宽

dt=1/Fsr; %快时域采样间隔

Rmin=sqrt((Yc-Y0)^2+H^2);

Rmax=sqrt((Yc+Y0)^2+H^2+(Lsar/2)^2);

Nfast=ceil(2*(Rmax-Rmin)/C/dt+Tr/dt);%快时域的采样数量

Nfast=2^nextpow2(Nfast); %更新为2的幂次,方便进行fft变换tm=linspace(2*Rmin/C,2*Rmax/C+Tr,Nfast); %快时域的离散时间矩阵

dt=(2*Rmax/C+Tr-2*Rmin/C)/Nfast; %更新间隔

Fsr=1/dt;

%%分辨率参数设置

DY=C/2/Br; %距离向分辨率

DX=D/2; %方位向分辨率

%%点目标参数设置

Ntarget=5; %点目标的数量

%点目标格式[x,y,反射系数sigma]

Ptarget=[Xmin,Yc-50*DY,1 %点目标位置,这里设置了5个点目标,构成一个矩形以及矩形的中心

Xmin+50*DX,Yc-50*DY,1

Xmin+25*DX,Yc,1

Xmin,Yc+50*DY,1

Xmin+50*DX,Yc+50*DY,1];

disp('Parameters:') %参数显示

disp('Sampling Rate in fast-time domain');disp(Fsr/Br)

disp('Sampling Number in fast-time domain');disp(Nfast)

disp('Sampling Rate in slow-time domain');disp(PRF/Ba)

disp('Sampling Number in slow-time domain');disp(Nslow)

disp('Range Resolution');disp(DY)

disp('Cross-range Resolution');disp(DX)

disp('SAR integration length');disp(Lsar)

disp('Position of targets');disp(Ptarget)

%%================================================================

%%生成回波信号

K=Ntarget; %目标数目

N=Nslow; %慢时域的采样数

M=Nfast; %快时域的采样数

T=Ptarget; %目标矩阵

Srnm=zeros(N,M); %生成零矩阵存储回波信号

for k=1:1:K %总共K个目标

sigma=T(k,3); %得到目标的反射系数

Dslow=sn*V-T(k,1); %方位向距离,投影到方位向的距离 R=sqrt(Dslow.^2+T(k,2)^2+H^2); %实际距离矩阵

tau=2*R/C; %回波相对于发射波的延时

Dfast=ones(N,1)*tm-tau'*ones(1,M); %(t-tau),其实就是时间矩阵,ones(N,1)和ones(1,M)都是为了将其扩展为矩阵

phase=pi*Kr*Dfast.^2-(4*pi/lambda)*(R'*ones(1,M));%相位,公式参见P.96

Srnm=Srnm+sigma*exp(j*phase).*(0

end

%%================================================================

%%距离-多普勒算法开始

%%距离向压缩

tic;

tr=tm-2*Rmin/C;

Refr=exp(j*pi*Kr*tr.^2).*(0

Sr=ifty(fty(Srnm).*(ones(N,1)*conj(fty(Refr))));

Gr=abs(Sr);

%%开始进行距离弯曲补偿正侧视没有距离走动项主要是因为斜距的变化引起回波包络的徙动

%%补偿方法:最近邻域插值法,具体为:先变换到距离多普勒域,分别对单个像素点计算出距离徙动量,得到距离徙动量与距离分辨率的比值,

%%该比值可能为小数,按照四舍五入的方法近似为整数,而后在该像素点上减去徙动量

%%方位向做fft处理再在频域做距离弯曲补偿

Sa_RD = ftx(Sr); % 方位向FFT 变为距离多普域进行距离弯曲校正

%距离徙动运算,由于是正侧视,fdc=0,只需要进行距离弯曲补偿。

Kp=1; %计算或者预设预滤波比

%%第二种方法进行截断sinc插值进行距离徒动校正

h = waitbar(0,'Sinc插值');

matlab的图像拼接程序(20210119152549)

mat lab的图像拼接程 序 -CAL-FENGHAI-(2020YEAR-YICAI) JINGBIAN ll=imread{,,);%6dTAEuODpAp¥dy2All%6D j u j A ll=double(ll); [hl wl dl]=size(ll);%TEOEdl±al2lldU±a>>0dl I2= imread(n);

I2=double(l2); [h2 w2 d2]=size(l2); %show input images and prompt for correspondences figure;subplot( 1,2,1); image(ll/255); axis image; hold on; title(*first input image'); [XI Yl]=ginput(2); %get two points from the usersubplot(l z2,2); image(l2/255); axis image; hold on; title('sec ond input image*); [X2 Y2]=ginput(2); %get two points from the user %estimate parameter vector(t); Z=[X2' Y2'; Y2'?X2'; HOOjOOll]1; xp=[Xl; Yl]; t=Z\xp; %solve the I in ear system a=t(l); %=s cos(alpha) b=t(2);%=s sin(alpha) tx=t(3); ty=t(4); % con struct transformation matrix(T) T=[a b tx;?b a ty; 0 0 1]; % warp incoming corners to determine the size of the output image(in to out) cp二T*[l 1 w2 w2; 1 h2 1 h2; 1 111]; Xpr=min([cp(l/:)/O]): max([cp(l/:)/wl]);%min x:maxx Ypr=min([cp(2/:)/0]): max([cp(2/:)/hl]); %min y: max y [Xp/Yp]=ndgrid(Xpr/ Ypr); [wp hp]=size(Xp); %=size(Yp) % do backwards transform (from out to in) X=T\[Xp(:) Yp(:) ones(wp*hp/l)]';%warp %re-sample pixel values with bilinear interpolation clear Ip; xl二reshape(X(b:)Mp,hp)‘; yl=reshape(X(2/:)/wp/hp)1; lp(:/:/l)=interp2(l2(:/:/l)/xl/ yl, '?bilinear*); %red Ip(:/:/2)=interp2(l2(:/:/2)/xl/ yl, '?bilinear1);%green lp(:z:/3)=interp2(l2(:/:/3)/xl/ yl, ^bilinear1);%blue % offset and copy original image into the warped image offset= -rounddmindcpfl/)^]) min([cp(2,:),0])]); lp(l+offset ⑵:hl+offset(2), 1+off set {1): wl+offset (1 )z:); doublefllflihl.liwl,:)); %show the result figure; image(lp/255); axis image; title('mosaic image'); ll=double(imread(n)); [hl wl dl]=size(ll);%TEOEdl±aPll6lJ±agl I2=double(imread(n)); [h2 w2 d2]=size(l2); %show input images and prompt for correspondences figure; subplot(l,2z l); image(ll/255); axis image; hold on; title('first input image'); [XI Yl]=ginput(2); %get two points from the user subplot(122); image(l2/255); axis image; hold on; title('sec ond input image1); [X2 Y2]=ginput(2); %get two points from the user %estimate parameter vector(t); Z=[X2' Y2'; Y2'-X2' ;1100;0011]'; xp=[Xl; Yl]; t=Z\xp; %solve the linear system %% a=t(l); %=s cos(alpha) b=t(2); %=s sin(alpha)

matlab相关图形实现代码

根据数据点绘制饼图和针状图: x=[1 2 3 4 5 6]; >> subplot(2,2,1);pie(x); >> subplot(2,2,2);pie3(x); >> subplot(2,2,3);stem(x); >>subplot(2,2,4);stem3(x); 5% 10% 14% 19% 24% 29% 24% 29% 19% 5%14% 10%0 2 4 6 2 4 6 5 10 01 2 05 10

根据数据点绘制向量场图、羽状图和罗盘图: x=[1 2 3 4 5 6];y=[1 2 3 4 5 6]; u=[1 2 3 4 5 6];v=[1 2 3 4 5 6]; subplot(2,2,1);quiver(x,y,u,v); subplot(2,2,2);quiver(x,y,u,v,'r'); subplot(2,2,3);feather(u,v); subplot(2,2,4);compass(u,v); 024680 246 802468 246 80 5 10 15 2 4 6 5 10 30 210 60240 90270 120 300 150330 180

rand(m,n)产生m ×n 均匀分布的随机矩阵,元素取值在0.0~1.0。 randn 函数:产生标准正态分布的随机数或矩阵的函数。 Y = randn(m,n) 或 Y = randn([m n])返回一个m*n 的随机项矩阵。 > theta=10*rand(1,50); %确定50个随机数theta >> Z=peaks; %确定Z 为峰值函数peaks >> x=0:0.01:2*pi;y=sin(x); %确定正弦函数数据点x.y >> t=randn(1000,1); %确定1000个随机数t >> subplot(2,2,1);rose(theta); %关于(theta )的玫瑰花图 >> subplot(2,2,2);area(x,y); %关于(x,y)的面积图 >> subplot(2,2,3);contour(Z); %关于Z 的等值线图(未填充) >> subplot(2,2,4);hist(t); %关于t 的柱状图 5 10 30 210 60 240 90270 120300150330 18000246 -1 -0.500.5 110 20 30 40 10 2030 40-4 -2 2 4 100 200 300

基于matlab的图像识别与匹配

基于matlab的图像识别与匹配 摘要 图像的识别与匹配是立体视觉的一个重要分支,该项技术被广泛应用在航空测绘,星球探测机器人导航以及三维重建等领域。 本文意在熟练运用图像的识别与匹配的方法,为此本文使用一个包装袋并对上面的数字进行识别与匹配。首先在包装袋上提取出来要用的数字,然后提取出该数字与包装袋上的特征点,用SIFT方法对两幅图进行识别与匹配,最终得到对应匹配数字的匹配点。仿真结果表明,该方法能够把给定数字与包装袋上的相同数字进行识别与匹配,得到了良好的实验结果,基本完成了识别与匹配的任务。

1 研究内容 图像识别中的模式识别是一种从大量信息和数据出发,利用计算机和数学推理的方法对形状、模式、曲线、数字、字符格式和图形自动完成识别、评价的过程。 图形辨别是图像识别技术的一个重要分支,图形辨别指通过对图形的图像采用特定算法,从而辨别图形或者数字,通过特征点检测,精确定位特征点,通过将模板与图形或数字匹配,根据匹配结果进行辨别。 2 研究意义 数字图像处理在各个领域都有着非常重要的应用,随着数字时代的到来,视频领域的数字化也必将到来,视频图像处理技术也将会发生日新月异的变化。在多媒体技术的各个领域中,视频处理技术占有非常重要的地位,被广泛的使用于农业,智能交通,汽车电子,网络多媒体通信,实时监控系统等诸多方面。因此,现今对技术领域的研究已日趋活跃和繁荣。而图像识别也同样有着更重要的作用。 3 设计原理 3.1 算法选择 Harris 角点检测器对于图像尺度变化非常敏感,这在很大程度上限制了它的应用范围。对于仅存在平移、旋转以及很小尺度变换的图像,基于Harris 特征点的方法都可以得到准确的配准结果,但是对于存在大尺度变换的图像,这一类方法将无法保证正确的配准和拼接。后来,研究人员相继提出了具有尺度不变性的特征点检测方法,具有仿射不变性的特征点检测方法,局部不变性的特征检测方法等大量的基于不变量技术的特征检测方法。 David.Lowe 于2004年在上述算法的基础上,总结了现有的基于不变量技术的特征检测方法,正式提出了一种基于尺度空间的,对图像平移、旋转、缩放、甚至仿射变换保持不变性的图像局部特征,以及基于该特征的描述符。并将这种方法命名为尺度不变特征变换(Scale Invariant Feature Transform),以下简称SIFT 算法。SIFT 算法首先在尺度空间进行特征检测,并确定特征点的位置和特征点所处的尺度,然后使用特征点邻域梯度的主方向作为该特征点的方向特征,以实现算子对尺度和方向的无关性。利用SIFT 算法从图像中提取出的特征可用于同一个物体或场景的可靠匹配,对图像尺度和旋转具有不变性,对光照变化、

MATLAB基本操作实验报告

南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10

一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:

>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。

实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])

利用MATLAB进行图像截取_拼接(灰色_彩色)

%灰色图像拼接 clc; clear; A=imread('C:\Documents and Settings\s35\桌面\新建文件夹\v1.jpg'); figure,imshow(A) A1=im2bw(A); A2=double(A1); se=strel('disk',20); A4=imdilate(A2,se); figure,imshow(A4) A5=double(A4); A6=not(A5); A7=double(A6); B=imread('C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Water lilies.jpg'); C=imread('C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Winter.jpg'); [m,n]=size(A4); B2=rgb2gray(B); B3=imresize(B2,[m,n]); B4=double(B3); C2=rgb2gray(C); C3=imresize(C2,[m,n]); C4=double(C3); D=A5.*B4; E=A7.*C4; F=uint8(D+E); figure,imshow(F) %彩色图像拼接 clc; clear; A=imread('C:\Documents and Settings\s35\桌面\新建文件夹\v1.jpg'); figure,imshow(A) A1=im2bw(A); A2=double(A1); se=strel('disk',20); A4=imdilate(A2,se); figure,imshow(A4)

matlab图像处理代码

附录 MATLAB图像处理命令  1.applylut  功能: 在二进制图像中利用lookup表进行边沿操作。 语法: A = applylut(BW,lut) 举例 lut = makelut('sum(x(:)) == 4',2); BW1 = imread('text.tif'); BW2 = applylut(BW1,lut); imshow(BW1) figure, imshow(BW2) 相关命令: makelut 2.bestblk  功能: 确定进行块操作的块大小。 语法: siz = bestblk([m n],k) [mb,nb] = bestblk([m n],k) 举例 siz = bestblk([640 800],72) siz = 64 50 相关命令: blkproc 3.blkproc  功能:

MATLAB 高级应用——图形及影像处理 320 实现图像的显式块操作。 语法: B = blkproc(A,[m n],fun) B = blkproc(A,[m n],fun,P1,P2,...) B = blkproc(A,[m n],[mborder nborder],fun,...) B = blkproc(A,'indexed',...) 举例 I = imread('alumgrns.tif'); I2 = blkproc(I,[8 8],'std2(x)*ones(size(x))'); imshow(I) figure, imshow(I2,[]); 相关命令: colfilt, nlfilter,inline 4.brighten  功能: 增加或降低颜色映像表的亮度。 语法: brighten(beta) newmap = brighten(beta) newmap = brighten(map,beta) brighten(fig,beta) 相关命令: imadjust, rgbplot 5.bwarea  功能: 计算二进制图像对象的面积。 语法: total = bwarea(BW) 举例 BW = imread('circles.tif'); imshow(BW);

实验一 MATLAB基本操作及运算(含实验报告).

实验一 MATLAB 基本操作及运算 一、 实验目的 1、 理解Matlab 数据对象的特点; 2、 掌握基本Matlab 运算规则; 3、 掌握Matlab 帮助的使用方法; 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 三、 实验内容 要求建立一个名为experiment01.m 的,把与实验内容1-7相关的实验命令都放入该文件中,题与题之间用相应注释分割。注意对实验中出现的相关函数或变量,请使用help 或doc 查询相关帮助文档,学习函数的用法。 1、 建立以下标量: 1) a=10 2) b=2.5×1023 3) c=2+3i ,(i 为虚数单位) 4) d=3/2πj e ,(j 为虚数单位,这里要用到exp ,pi ) 2、 建立以下向量: 1) aVec=[3.14 15 9 26] 2) bVec=????? ???????18228871.2 3) cVec=[5 4.8 … -4.8 -5 ] (向量中的数值从5到-5,步长为-0.2) 4) dVec=[100 100.01 … 100.99 101] (产生1到10之间的等对数间隔向量,参考logspace ,注意向量的长度) 3、 建立以下矩阵: 1)???? ??????=2222 aMat aMat 一个9×9的矩阵,其元素全为2;(参考ones 或zeros )

2)??????? ?????????=1000005000001 bMat bMat 是一个9×9的矩阵,除主对角上的元素为[1 2 3 4 5 4 3 2 1]外,其余元素均为0。(参考diag )。 3)100 20109212291111 =cMat cMat 为一个10×10的矩阵,可有1:100的向量来产生(参考reshape ) 4)???? ??????=NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN dMat dMat 为3×4的NaN 矩阵,(参考nan ) 5)?? ????---=8710225113eMat 6)产生一个5×3随机整数矩阵fMat ,其值的范围在-3到3之间。(参考rand 和floor 或ceil ) 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ) 6/)15((11--+=a e x 2) g g h h b a y /121,)(=+=提示π,参考sqrt 。 3) c c a d c d c R z ))3/sin()]))([(log(π-+= ,其中R 表示取括号内复数的实数部分,c 表示c 的共轭复数,log 是自然对数。(参考real ,conj ,log ) 5、 使用题2中的向量求解一下等式: 1))25.2/(22 25.221 cVec e xVec -=π, 其中cVec 指的是题2 中定义的向量cVec ,一下雷同。 2)22)(bVec aVec yVec T +=,T aVec 表示aVec 的转置 3) )/1(log 10dVec zVec =,10log 表示已10为底的对数,参考log10 6、 使用题2和题3中所产生的向量和矩阵计算以下等式,注意本题的操作

数字图像处理matlab代码

一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。 1、不同滤波器的频域降噪 1.1 理想低通滤波器(ILPF) I1=imread('eight.tif'); %读取图像 I2=im2double(I1); I3=imnoise(I2,'gaussian',0.01); I4=imnoise(I3,'salt & pepper',0.01); figure,subplot(1,3,1); imshow(I2) %显示灰度图像 title('原始图像'); %为图像添加标题 subplot(1,3,2); imshow(I4) %加入混合躁声后显示图像 title('加噪后的图像'); s=fftshift(fft2(I4)); %将灰度图像的二维不连续Fourier 变换的零频率成分 移到频谱的中心 [M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整 n2=floor(N/2); %对N/2进行取整 d0=40; %初始化d0 for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 if d<=d0 %点(i,j)在通带内的情况 h=1; %通带变换函数 else %点(i,j)在阻带内的情况 h=0; %阻带变换函数 end s(i,j)=h*s(i,j); %ILPF滤波后的频域表示

end end s=ifftshift(s); %对s进行反FFT移动 s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复 数的实部转化为无符号8位整数 subplot(1,3,3); %创建图形图像对象 imshow(s); %显示ILPF滤波后的图像 title('ILPF滤波后的图像(d=40)'); 运行结果: 1.2 二阶巴特沃斯低通滤波器(BLPF) I1=imread('eight.tif'); %读取图像 I2=im2double(I1); I3=imnoise(I2,'gaussian',0.01); I4=imnoise(I3,'salt & pepper',0.01); figure,subplot(1,3,1); imshow(I2) %显示灰度图像 title('原始图像'); %为图像添加标题 subplot(1,3,2); imshow(I4) %加入混合躁声后显示图像 title('加噪后的图像'); s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分 移到频谱的中心 [M,N]=size(s); %分别返回s的行数到M中,列数到N中n=2; %对n赋初值

matlab操作实验报告

实验一matlab基本操作 一、实验目的 熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。 二、实验设备与工具 1.计算机 2.matlab软件 三、实验步骤 1. 了解matlab的硬件和软件必备环境; 2. 启动matlab; 3. 学习优化建模过程。 四、实验报告要求 1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部 分的功能; 2. 优化建模过程应用举例 五、实验内容 (一)、Matlab操作界面 1.命令窗口(command window) 2.命令历史窗口(command history) 3.工作空间管理窗口(workspace) 4.当前路径窗口(current directory) (二)、优化建模过程应用举例 1、简单矩阵 123 456 789 A ?? ?? =?? ?? ?? 的输入步骤。 (1)在键盘上输入下列内容 A = [1,1,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 7 8 9

2、矩阵的分行输入。 A=[1,2,3 4,5,6 7,8,9] A = 1 2 3 4 5 6 7 8 9 3、指令的续行输入 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 4、画出衰减振荡曲线t e y t 3sin 3-=及其它的包络线3 0t e y -=。t 的取值范围是]4,0[π。 t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') grid 5、画出2222) sin(y x y x z ++=所表示的三维曲面。y x ,的取值范围是]8,8[-。 clear;x=-8:0.5:8; y=x';

图像拼接原理及方法

第一章绪论 1.1图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过对齐一系 列空间重叠的图像,构成一个无缝的、高清晰的图像,它具有比单个图像更高的分辨率和更大的视野。 早期的图像拼接研究一直用于照相绘图学,主要是对大量航拍或卫星的图像的整合。近年来随着图像拼接技术的研究和发展,它使基于图像的绘制( IBR )成为结合两个互补领域 ――计算机视觉和计算机图形学的坚决焦点,在计算机视觉领域中,图像拼接成为对可视化 场景描述(Visual Seene Representaions)的主要研究方法:在计算机形学中,现实世界的图像过去一直用于环境贴图,即合成静态的背景和增加合成物体真实感的贴图,图像拼接可以 使IBR从一系列真是图像中快速绘制具有真实感的新视图。 在军事领域网的夜视成像技术中,无论夜视微光还是红外成像设备都会由于摄像器材的限制而无法拍摄视野宽阔的图片,更不用说360度的环形图片了。但是在实际应用中,很 多时候需要将360度所拍摄的很多张图片合成一张图片,从而可以使观察者可以观察到周围的全部情况。使用图像拼接技术,在根据拍摄设备和周围景物的情况进行分析后,就可以将通过转动的拍摄器材拍摄的涵盖周围360度景物的多幅图像进行拼接,从而实时地得到 超大视角甚至是360度角的全景图像。这在红外预警中起到了很大的作用。 微小型履带式移动机器人项目中,单目视觉不能满足机器人的视觉导航需要,并且单目 视觉机器人的视野范围明显小于双目视觉机器人的视野。利用图像拼接技术,拼接机器人双 目采集的图像,可以增大机器人的视野,给机器人的视觉导航提供方便。在虚拟现实领域中,人们可以利用图像拼接技术来得到宽视角的图像或360度全景图像,用来虚拟实际场景。 这种基于全景图的虚拟现实系统,通过全景图的深度信息抽取,恢复场景的三维信息,进而建立三维模型。这个系统允许用户在虚拟环境中的一点作水平环视以及一定范围内的俯视和仰视,同时允许在环视的过程中动态地改变焦距。这样的全景图像相当于人站在原地环顾四 周时看到的情形。在医学图像处理方面,显微镜或超声波的视野较小,医师无法通过一幅图 像进行诊视,同时对于大目标图像的数据测量也需要把不完整的图像拼接为一个整体。所以把相邻的各幅图像拼接起来是实现远程数据测量和远程会诊的关键环节圆。在遥感技术领域中,利用图像拼接技术中的图像配准技术可以对来自同一区域的两幅或多幅图像进行比较,也可以利用图像拼接技术将遥感卫星拍摄到的有失真地面图像拼接成比较准确的完整图像,作为进一步研究的依据。 从以上方面可以看出,图像拼接技术的应用前景十分广阔,深入研究图像拼接技术有着很重 要的意义 1.2图像拼接算法的分类 图像拼接作为这些年来图像研究方面的重点之一,国内外研究人员也提出了很多拼接算 法。图像拼接的质量,主要依赖图像的配准程度,因此图像的配准是拼接算法的核心和关键。根据图像匹配方法的不同仁阔,一般可以将图像拼接算法分为以下两个类型: (1) 基于区域相关的拼接算法。 这是最为传统和最普遍的算法。基于区域的配准方法是从待拼接图像的灰度值出发,对 待配准图像中一块区域与参考图像中的相同尺寸的区域使用最小二乘法或者其它数学方法 计算其灰度值的差异,对此差异比较后来判断待拼接图像重叠区域的相似程度,由此得到待

数字图像处理MATLAB相关代码

1.图像反转 MATLAB程序实现如下: I=imread('xian.bmp'); J=double(I); J=-J+(256-1); %图像反转线性变换 H=uint8(J); subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(H); 2.灰度线性变换 MATLAB程序实现如下: I=imread('xian.bmp'); subplot(2,2,1),imshow(I); title('原始图像'); axis([50,250,50,200]); axis on; %显示坐标系 I1=rgb2gray(I); subplot(2,2,2),imshow(I1); title('灰度图像'); axis([50,250,50,200]); axis on; %显示坐标系 J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1] subplot(2,2,3),imshow(J); title('线性变换图像[0.1 0.5]'); axis([50,250,50,200]); grid on; %显示网格线 axis on; %显示坐标系 K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1] subplot(2,2,4),imshow(K); title('线性变换图像[0.3 0.7]'); axis([50,250,50,200]); grid on; %显示网格线 axis on; %显示坐标系 3.非线性变换 MATLAB程序实现如下: I=imread('xian.bmp'); I1=rgb2gray(I); subplot(1,2,1),imshow(I1); title('灰度图像'); axis([50,250,50,200]); grid on; %显示网格线 axis on; %显示坐标系 J=double(I1); J=40*(log(J+1)); H=uint8(J);

MATLAB基本操作实验报告

MATLAB基本操作 实验报告 课程名称: 院系: 专业班级: 学号: 学生姓名: 指导教师: 开课时间:至学年第学期

一、学生撰写要求 按照实验课程培养方案的要求,每门实验课程中的每一个实验项目完成后,每位参加实验的学生均须在实验教师规定的时间内独立完成一份实验报告,不得抄袭,不得缺交。 学生撰写实验报告时应严格按照本实验报告规定的内容和要求填写。字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。 二、教师评阅与装订要求 1.实验报告批改要深入细致,批改过程中要发现和纠正学生实验报告中的问题,给出评语和实验报告成绩,签名并注明批改日期。实验报告批改完成后,应采用适当的形式将学生实验报告中存在的问题及时反馈给学生。 2.实验报告成绩用百分制评定,并给出成绩评定的依据或评分标准(附于实验报告成绩登记表后)。对迟交实验报告的学生要酌情扣分,对缺交和抄袭实验报告的学生应及时批评教育,并对该次实验报告的分数以零分处理。对单独设课的实验课程,如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。 3.各实验项目的实验报告成绩登记在实验报告成绩登记表中。本学期实验项目全部完成后,给定实验报告综合成绩。 4.实验报告综合成绩应按课程教学大纲规定比例(一般为10-15%)计入实验课总评成绩;实验总评成绩原则上应包括考勤、实验报告、考核(操作、理论)等多方面成绩; 5.实验教师每学期负责对拟存档的学生实验报告按课程、学生收齐并装订,按如下顺序装订成册:实验报告封面、实验报告成绩登记表、实验报告成绩评定依据、实验报告(按教学进度表规定的实验项目顺序排序)。装订时统一靠左侧按“两钉三等分”原则装订。

图像处理实例(含Matlab代码)

信号与系统实验报告——图像处理 学院:信息科学与工程学院 专业:2014级通信工程 组长:** 组员:** 2017.01.02

目录 目录 (2) 实验一图像一的细胞计数 (3) 一、实验内容及步骤 (3) 二、Matlab程序代码 (3) 三、数据及结果 (4) 实验二图像二的图形结构提取 (5) 一、实验内容及步骤 (5) 二、Matlab程序代码 (5) 三、数据及结果 (6) 实验三图像三的图形结构提取 (7) 一、实验内容及步骤 (7) 二、Matlab程序代码 (7) 三、数据及结果 (8) 实验四图像四的傅里叶变化及巴特沃斯低通滤波 (9) 一、实验内容及步骤 (9) 二、Matlab程序代码 (9) 三、数据及结果 (10) 实验五图像五的空间域滤波与频域滤波 (11) 一、实验内容及步骤 (11) 二、Matlab程序代码 (11) 三、数据及结果 (12)

实验一图像一的细胞计数 一、实验内容及步骤 将该图形进行一系列处理,计算得到途中清晰可见细胞的个数。 首先,由于原图为RGB三色图像处理起来较为麻烦,所以转为灰度图,再进行二值化化为黑白图像,得到二值化图像之后进行中值滤波得到细胞分布的初步图像,为了方便计数对图像取反,这时进行一次计数,发现得到的个数远远多于实际个数,这时在进行一次中值滤波,去掉一些不清晰的像素点,剩下的应该为较为清晰的细胞个数,再次计数得到大致结果。 二、Matlab程序代码 clear;close all; Image = imread('1.jpg'); figure,imshow(Image),title('原图'); Image=rgb2gray(Image); figure,imshow(Image),title('灰度图'); Theshold = graythresh(Image); Image_BW = im2bw(Image,Theshold); Reverse_Image_BW22=~Image_BW; figure,imshow(Image_BW),title('二值化图像'); Image_BW_medfilt= medfilt2(Image_BW,[3 3]); figure,imshow(Image_BW_medfilt),title('中值滤波后的二值化图像'); Reverse_Image_BW = ~Image_BW_medfilt; figure,imshow(Reverse_Image_BW),title('图象取反'); Image_BW_medfilt2= medfilt2(Reverse_Image_BW,[20 20]); figure,imshow(Image_BW_medfilt2),title('第二次中值滤波的二值化图像'); [Label, Number]=bwlabel(Image_BW_medfilt,8);Number [Label, Number]=bwlabel(Image_BW_medfilt2,8);Number

MATLAB图像融合

一、实验原理 本实验对源图像分别进行Harr 小波变换,建立图像的小波塔形分解,然后对分解层进行融合,处理各分解层上的不同频域分量可以采用不同的融合算子进行融合处理,本实验采用统一的算法处理,得到融合后的小波金字塔,对融合后的小波金字塔进行小波逆变换,得到的重构图像为拼接图像 1、 Harr 小波变换 Harr 小波分解步骤: 步骤一:输入信号n S 有2n 个样本, 步骤二:将信号分成1,2,2,,0 2n n l n l a S b S l -===,一共12n -对,然后对每一对变换,获得均值1n S -和差值1n d -。,21,212n l n l n S S S +-+=,1,,21,2n l n l n l d S S -+=-反变换可以无损地从 1n S -和1n d -中恢复出原信号,1n S -作为信号的全局信息(低频成分) ,1n d -作为信号的细节信息(高频成分),全局信息和原信号比较相似(局部一致性),细节信息(差值比较小)可以很高效的进行表示。 步骤三:对1n S -实施同样的变换(求均值和差值),获得均值2n S -和差值2n d -,它们两各有22n -个样本值。 步骤四:重复上面的变换步骤,直到0S 中仅有一个元素为止。 2、图像拼接算法 本实验采用小波分解的图像处理方法,首先对图形进小波变换,然后采用分层比较法,对两幅图的一级分解的LL 层进行比较,从而获得准确的位置匹配,然后各层进行相应的位置衔接,得到拼接图像的一级小波分解图像,最后对分解图像进行重构,得到拼接后的图像。 步骤一:首先对两图进行Harr 小波一级分解,假设分解图像如下图。 图一的harr 小波分解 图二的harr 小波分解 步骤二:对一级分解LL 层进行位置匹配。首先求出两幅图的LL 图像梯度值,即图像灰度值的显著变化的地方,采用如下公式 21(1,)mag i j -=

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

图像拼接原理及方法

第一章绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过对齐一系列空间重叠的图像,构成一个无缝的、高清晰的图像,它具有比单个图像更高的分辨率和更大的视野。 早期的图像拼接研究一直用于照相绘图学,主要是对大量航拍或卫星的图像的整合。近年来随着图像拼接技术的研究和发展,它使基于图像的绘制(IBR)成为结合两个互补领域——计算机视觉和计算机图形学的坚决焦点,在计算机视觉领域中,图像拼接成为对可视化场景描述(Visual Scene Representaions)的主要研究方法:在计算机形学中,现实世界的图像过去一直用于环境贴图,即合成静态的背景和增加合成物体真实感的贴图,图像拼接可以使IBR从一系列真是图像中快速绘制具有真实感的新视图。 在军事领域网的夜视成像技术中,无论夜视微光还是红外成像设备都会由于摄像器材的限制而无法拍摄视野宽阔的图片,更不用说360 度的环形图片了。但是在实际应用中,很多时候需要将360 度所拍摄的很多张图片合成一张图片,从而可以使观察者可以观察到周围的全部情况。使用图像拼接技术,在根据拍摄设备和周围景物的情况进行分析后,就可以将通过转动的拍摄器材拍摄的涵盖周围360 度景物的多幅图像进行拼接,从而实时地得到超大视角甚至是360 度角的全景图像。这在红外预警中起到了很大的作用。 微小型履带式移动机器人项目中,单目视觉不能满足机器人的视觉导航需要,并且单目视觉机器人的视野范围明显小于双目视觉机器人的视野。利用图像拼接技术,拼接机器人双目采集的图像,可以增大机器人的视野,给机器人的视觉导航提供方便。在虚拟现实领域中,人们可以利用图像拼接技术来得到宽视角的图像或360 度全景图像,用来虚拟实际场景。这种基于全景图的虚拟现实系统,通过全景图的深度信息抽取,恢复场景的三维信息,进而建立三维模型。这个系统允许用户在虚拟环境中的一点作水平环视以及一定范围内的俯视和仰视,同时允许在环视的过程中动态地改变焦距。这样的全景图像相当于人站在原地环顾四周时看到的情形。在医学图像处理方面,显微镜或超声波的视野较小,医师无法通过一幅图像进行诊视,同时对于大目标图像的数据测量也需要把不完整的图像拼接为一个整体。所以把相邻的各幅图像拼接起来是实现远程数据测量和远程会诊的关键环节圆。在遥感技术领域中,利用图像拼接技术中的图像配准技术可以对来自同一区域的两幅或多幅图像进行比较,也可以利用图像拼接技术将遥感卫星拍摄到的有失真地面图像拼接成比较准确的完整图像,作为进一步研究的依据。 从以上方面可以看出,图像拼接技术的应用前景十分广阔,深入研究图像拼接技术有着很重要的意义 1.2图像拼接算法的分类 图像拼接作为这些年来图像研究方面的重点之一,国内外研究人员也提出了很多拼接算法。图像拼接的质量,主要依赖图像的配准程度,因此图像的配准是拼接算法的核心和关键。根据图像匹配方法的不同仁阔,一般可以将图像拼接算法分为以下两个类型:(1) 基于区域相关的拼接算法。 这是最为传统和最普遍的算法。基于区域的配准方法是从待拼接图像的灰度值出发,对

matlab数字图像处理源代码

数字图像去噪典型算法及matlab实现 希望得到大家的指点和帮助 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响 到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度 的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊, 可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。 实验一:均值滤波对高斯噪声的效果 l=imread('C:\Documents and 桌面\1.gif');% 读取图像

J=imnoise(l,'gaussian',0,0.005);% 加入均值为0 ,方差为 0.005 的高斯噪声subplot(2,3,1);imshow(l); title(' 原始图像'); subplot(2,3,2); imshow(J); ti tle('加入高斯噪声之后的图像’); %采用MATLAB 中的函数filter2 对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; % 模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5 K3=filter2(fspecial('average',7),J)/255; % 模板尺寸为7 K4= filter2(fspecial('average',9),J)/255; % 模板尺寸为9 subplot(2,3,3);imshow(K1); ti tle(' 改进后的图像1'); subplot(2,3,4); imshow(K2); title(' 改进后的图像2'); subplot(2,3,5);imshow(K3); title(' 改进后的图像3'); subplot(2,3,6);imshow(K4); title(' 改进后的图像4');

相关文档
相关文档 最新文档