实验报告五图像变换技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告五

姓名:学号:班级:

实验日期: 2016.5.13 实验成绩:

实验题目:图像变换技术

一.实验目的

(1)熟练掌握图像的快速傅里叶变换及其逆变换。

(2)熟练掌握图像的radon变换及其逆变换。

二.实验原理

在空间域对原图像旋转theta角度的时候,对应其频域频谱函数角度也旋转theta角度,也就是说频域上其幅度谱不变。图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数f(x, y),则其投影就是在特定方向上的线性积分,比如f(x, y)在垂直方向上的线性积分就是其在x轴上的投影;f(x, y)在水平方向上的线积分就是其在y轴上的投影,这就是雷登变换。通过这些投影,可以获取图像在指定方向上的突出特性,而这些具有特征的数据包含了原图像的信息,通过一定的反投影来又可以重建图像。

三.实验内容及结果

(1)任意选择一副图像,对图像进行旋转,显示原始图像和旋转后的图像,分别对其进行傅里叶变换,分析原图的傅里叶频谱与旋转后的傅里叶频谱的对应关系。

图1图像的旋转及傅里叶谱

(2)选择一副图像boy.jpg,使用radon函数和iradon函数构建一个简单图像的投影并重建图像。

图2Modified Shepp-Logan头模型

图3变量工作区

图4代表每个投影点的位置信息变量xp部分值

图5原图像不同角度投影的正弦图(雷登变换)

图6滤波反投影法重建图像(滤波函数为汉明窗)

图7直接反投影法重建图像

四.结果分析

(1)观察图一,可以发现,原图像进行90度的旋转后,其旋转变换后的傅里叶幅度谱并没有改变,印证了空间域的旋转定理,

即在空间域对原图像旋转theta角度的时候,对应其频域频谱

函数角度也旋转theta角度。

(2)观察图3工作变量区,雷登变换radon中的返回变量[R,xp]中xp此列向量大小为729,而xp代表每个投影点的位置信息

变量,点进xp可以得到图4,看到其值从-364按照步长为1

递增到364,这个不难理解,因为每按一个角度投影,数据不

是一个,而是一列,它们按照一条线排布,步长为1恒定表示

每个点是等距的,而且从xp值对称可以看出这个相对点是原点,R是一个二维矩阵,由于投影角度的个数不同,所以列的大小

取决于投影角度的设定,观察图5设定的不同角度的正弦图,

可以发现当投影角度个数过小时,正弦图会块状效应,这是因

为取样率不够的原因,取样率大小不仅取决于所用射线个数(这

里每个投影的取样数均保持为729),还旋转角度增量的数量

(这里分别为18,36,90,180),当欠取样时就会发生块状效应,

所以由R和角度投影个数信息重建图像,会发现角度增量数量

越多,重建的图像就和原图像越相似,但同时观察图6和图7

又会发现滤波反投影比直接反投影降低了图像的模糊度。

五、实验总结

本次实验主要是熟悉了傅里叶变换函数fft及傅里叶反变换函数ifft,理解了radon函数对原图像作出雷登变换后各部分信息的返回值的内容,同时了解了iradon函数在投影数据信息的基础上对图像的重建,这两个函数都隐约地做了傅里叶变换和反傅里叶变换。

附录(程序)

A=imread('F:\数字图像处理\图片\boy.jpg');

A=rgb2gray(A);%彩色图像转化为灰度图像,公式为0.2989 * R + 0.5870 * G + 0.1140 * B

B=imrotate(A,90);

FA=fftshift(fft(A));%fft2其实可以对三维的图像直接进行变换

FB=fftshift(fft(B));

subplot(2,2,1);imshow(A);title('原图');

subplot(2,2,2);imshow(B);title('旋转90度后图');

subplot(2,2,3);imshow(abs(FA),[0,100]);title('原图频谱');

subplot(2,2,4);imshow(abs(FB),[0,100]);title('旋转90度后频谱');

hold on;

figure;

P=phantom('Modified Shepp-Logan',512);%产生Modified Shepp-Logan头模型

imshow(P),title('Modified Shepp-Logan头模型');

theta1=0:20:340;[R1,xp]=radon(P,theta1);%radon函数计算18个角度的投影数据,每个角度为20度

theta2=0:10:350;[R2,xp]=radon(P,theta2);%radon函数计算36个角度的投影数据

theta4=0:4:356;[R4,xp]=radon(P,theta4);%radon函数计算90个角度的投影数据

theta5=0:2:358;[R5,xp]=radon(P,theta5);%radon函数计算180个角度的投影数据

figure,

hold on;

subplot(2,2,1);

imagesc(theta1,xp,R1);xlabel('\theta');ylabel('x\prime'),title('18个角度');%显示18个角度的投影数据

subplot(2,2,2);

imagesc(theta2,xp,R2);xlabel('\theta');ylabel('x\prime'),title('36个角度');%显示36个角度的投影数据

subplot(2,2,3);

imagesc(theta4,xp,R4);xlabel('\theta');ylabel('x\prime'),title('90个角度');%显示90个角度的投影数据

subplot(2,2,4);

imagesc(theta5,xp,R5);xlabel('\theta');ylabel('x\prime'),title('180个角度');%显示180个角度的投影数据

%滤波反投影法重建图像,滤波函数选择汉明窗

I1=iradon(R1,20,'hamming');%isadon函数滤波反投影重建18个角度的投影数据

I2=iradon(R2,10,'hamming');%isadon函数滤波反投影重建36个角度的投影数据

I4=iradon(R4,4,'hamming');%isadon函数滤波反投影重建90个角度的投影数据

I5=iradon(R5,2,'hamming');%isadon函数滤波反投影重建180个角度的投影数据

figure

subplot(2,2,1);

imshow(I1);title('18个角度');%显示18个角度的重建图像

subplot(2,2,2);

imshow(I2);title('36个角度');%显示36个角度的重建图像

subplot(2,2,3);

imshow(I4);title('90个角度');%显示90个角度的重建图像

subplot(2,2,4);

imshow(I5);title('180个角度');%显示180个角度的重建图像

%直接反投影法重建图像,不加滤波函数

I11=iradon(R1,20,'None');

I22=iradon(R2,10,'None');

I44=iradon(R4,4,'None');

I55=iradon(R5,2,'None');

figure

subplot(2,2,1);imshow(I11,[]);title('18个角度')%显示18个角度的重建图像

subplot(2,2,2);imshow(I22,[]);title('36个角度')%显示36个角度的重建图像

subplot(2,2,3);imshow(I44,[]);title('90个角度')%显示90个角度的重建图像

subplot(2,2,4);imshow(I55,[]);title('180个角度')%显示180个角度的重建图像

相关文档
最新文档