文档详情

MATLAB图形图像处理中的傅立叶变换,离散余弦变换.doc

发布:2017-04-09约3.06千字共6页下载文档
文本预览下载声明
数学系课程实验报告 课 程 名 称: 图形图像处理 班级 ? 日 期 2013/3/28 ?成绩评定 ? 姓名 实验室 ?老师签名 ? 学号 实验名称 ?图形图像处理 所用软件 MATLAB 实 验 目 的 及 内 容 掌握图形图像的基本变换 实 验 ?原 理 步 骤 、 1.生成黑白二值图像 blackandwhiteimage=zeros(128,128); blackandwhiteimage(62:66,56:72)=1; figure; imshow(blackandwhiteimage) title(黑白二值图像) 实 验 结 果 及 分 析 对图像傅立叶变换,并提取幅度频谱和相位频谱 a=imread(test1.jpg); subplot(2,2,1); imshow(a); title(原彩色图像); b=rgb2gray(a); subplot(2,2,2); imshow(b); title(灰度图像); c=fft2(b); f=log(1+abs(c)); f_out=(255./max(f(:))).*f; //对数归一化处理 subplot(2,2,3); imshow(uint8(f_out)); title(幅度频谱); san=angle(c); subplot(2,2,4); imshow(san) title(相位频谱) 3.使用fftshift函数,把低频分量移到图象中心,而把高频分量移到四个角上;再观察幅度谱和相位谱。 a=imread(test1.jpg); subplot(2,2,1); imshow(a); title(原彩色图像); b=rgb2gray(a); subplot(2,2,2); imshow(b); title(灰度图像); c=fft2(b); d=fftshift(c); //将低频移动到中心 f=log(1+abs(d)); f_out=(255./max(f(:))).*f; //对数归一化处理 subplot(2,2,3); imshow(uint8(f_out)); title(幅度频谱); san=angle(d); //求取相位角 subplot(2,2,4); imshow(san) title(相位频谱) 4.对原图旋转一定角度(使用函数imrotate),再显示幅度谱 a=imread(test1.jpg); subplot(2,2,1); imshow(a); title(原彩色图像); a1=imrotate(a,45,bilinear);//对图像进行逆时针旋转45度 subplot(2,2,2); imshow(a1); title(旋转后图像); b=rgb2gray(a); //将彩色图像转化为灰度图像 subplot(2,2,3); imshow(b); title(灰度图像); c=fft2(b); d=fftshift(c); f=log(1+abs(d)); f_out=(255./max(f(:))).*f; subplot(2,2,4); imshow(uint8(f_out)) title(幅度谱) 5.利用DCT2进行图象变换和重建 a=imread(test1.jpg); subplot(2,2,1); imshow(a); title(原始彩色图像) gray=rgb2gray(a); subplot(2,2,2); imshow(gray); title(原始灰度图像); dctchange=dct2(gray); //离散余弦变换 subplot(2,2,3); imshow(log(abs(dctchange)),[ ]); title(原始灰度图像余弦变换谱); yuzhi=8; dctchange(abs(dctchange)yuzhi)=0; k=idct2(dctchange); subplot(2,2,4); imshow(k,[0 255]); title(逆余弦变换谱) 由上面的图像可以比较出经过变换的图像变化不大,这说明了,当图像的一部分数值用相差不大的数值取代时,可以得到大致相同的图像。当我们用相同的数值取代图像的部分数值时,可以大大的压缩图像,同时又不至于图像损失太大。 .说明程序功能 I = rgb2gray(imre
显示全部
相似文档