图像变换实验报告

合集下载

python图像变换实验心得

python图像变换实验心得

python图像变换实验心得python 图像变换实验心得, Python 图像变换实验心得实验一:用 pytho 制作一张可以让鼠标移动的图片,要求是让鼠标在图片上面能够随意移动。

实验二:利用模块对图片进行缩放和旋转处理,最终得到让鼠标在图片上移动不同角度的图片。

这两个任务其实都很简单,大家也应该比较熟悉,因此我就不多说了。

看了实验要求后我们开始写代码来实现我们的实验目标,首先我们使用 opencv 来对图片进行缩放操作,使得鼠标可以移动到图片的每一个位置,然后我们使用 cursor 函数来获取鼠标当前的位置,接着我们再次使用 opencv 来完成对图片的旋转操作,让鼠标始终指向图片中心点,最后我们使用 shapeatrof 函数来将图片进行对齐,然后将图片保存起来。

我还记得刚接触 Python 时,那会儿我的第一个 Python 项目就是用它来做图像处理的,这个图像处理包括图片缩放、旋转、图片的对齐等功能,现在看来我的那个项目基本已经过时了,不过还好,我在这里又学习了新知识,而且这些知识都非常实用。

这几天我在学习Python 的过程中发现它是一门非常强大的编程语言,而且这种编程语言不仅能够解决图形图像处理问题,还能够解决一些复杂的数据分析与运算问题,比如数据库、网络通信、自然语言处理、机器人控制、人工智能等等。

而且 Python 的数据结构非常灵活,这样就给我们提供了很多可选择的编程范式,从而为我们解决各类问题带来更多的便捷性。

然而这个命令并没有什么特别的地方,只是一个简单的缩放命令,我们只需要按照实际情况输入合适的数值就可以了。

但是当我们想把图片旋转或者放大时,就需要用到 modulolphide 函数了,这个函数的作用就是让图片沿水平轴旋转或者垂直轴翻转。

图像的傅里叶变换实验报告

图像的傅里叶变换实验报告

图像的傅里叶变换实验报告GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-计算机科学与技术系实验报告专业名称计算机科学与技术课程名称数字图像处理项目名称 Matlab语言、图像的傅里叶变换班级 14计科2班学号姓名卢爱胜同组人员张佳佳、王世兜、张跃文实验日期一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。

)实验目的:1了解图像变换的意义和手段;2熟悉傅立叶变换的基本性质;3熟练掌握FFT变换方法及应用;4通过实验了解二维频谱的分布特点;5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。

6评价人眼对图像幅频特性和相频特性的敏感度。

实验要求:应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、算法原理、实验仪器、设备选型及连线图、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)1.傅立叶(Fourier)变换的定义对于二维信号,二维Fourier变换定义为:逆变换:二维离散傅立叶变换为:逆变换:图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。

实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

2.利用MATLAB软件实现数字图像傅立叶变换的程序:I=imread(‘原图像名.gif’);%读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.^2+II.^2); %计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 %归一化figure; %设定窗口imshow(A); %显示原图像的频谱四、源代码clc;clear allI=imread('Fig0707(a)(Original).tif.tif'); %读入原图像文件imshow(I); %显示原图像title('原始图像')fftI=fft2(I); %二维离散傅立叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.^2+II.^2); %计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化figure; %设定窗口imshow(A); %显示原图像的频谱title('原始图像的频谱')f1=ifft2(A); %用Fourier系数的幅度进行Fourier反变换f2=ifft2(angle(fftI)); %用Fourier系数的相位进行Fourier反变换;figuresubplot 121;imshow(f1,[])title('幅度进行Fourier反变换')subplot 122;imshow(f2,[])title('相位进行Fourier反变换')五、实验结果及分析实验分析:本次试验研究了有关傅里叶算法方面的知识,将傅里叶变换应用在图像的处理上,让我学习到了傅里叶算法方面的知识,实践才是成长的好道路。

实验二 图像变换

实验二 图像变换

实验二图像变换
一、实验内容
1.对图像进行平移,掌握图像的傅里叶频谱和平移后的傅里叶频谱的对应关系;
2.对图像进行旋转,掌握图像的傅里叶频谱和旋转后的傅里叶频谱的对应关系。

2、实验原理
如果F(u,v)的频率变量u,v各移动了u0,v0距离,f(x,y)的变量x,y各移动了x0,y0距离,则傅里叶变换如下所示
因此傅里叶变换的平移性质表明函数与一个指数项相乘等于将变换后的空域中心移到新的位置,平移不改变频谱的幅值。

傅里叶旋转可以通过下面变换得到:
对f(x,y)旋转一个角度对应于将其傅里叶变换F(u,v)也旋转相同的角度。

3、实验方法和程序
1. 选取一副图像,进行离散傅里叶变换,将其中心移到零点,得到
其离散傅里叶变换。

参考例4.10
2. 选取一副图像,进行离散余弦变换,并对其进行离散余弦反变
换。

参考例4.13
3. 选取一副图像,采用butterworth高通滤波器对图像进行高通滤
波。

参考例5.7
4、实验结果与分析
Matlab代码以及结果图
5、思考题
1. 将图像分别进行X轴与Y轴上的平移,所得傅里叶频谱与原图像
的傅里叶频谱有什么变换?。

实验一 图像变换

实验一 图像变换

实验一 图像变换一、 实验目的1.了解图像变换的意义和手段;2.熟悉离散傅里叶变换、离散余弦变换的基本性质;3. 熟练掌握图像变换的方法及应用;4.通过实验了解二维频谱的分布特点;5.通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。

二、 实验原理1.应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2、图像变换的基本原理(1)傅立叶(Fourier )变换的定义对于二维连续信号,二维Fourier 变换定义为:正变换:⎰⎰∞∞-∞∞-+-=dxdy ey x f v u F vy ux j )(2),(),(π反变换:⎰⎰∞∞-∞∞-+=dudv e v u F y x f vy ux j )(2),(),(π 二维离散傅立叶变换为: 正变换:∑∑-=-=+-=101)//(2),(1),(M x N y N vy M ux j e y x f MN v u F π 反变换:∑∑-=-=+=1010)//(2),(),(M u N v N vy M ux j e v u F y x f π图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法。

实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

(2)离散余弦变换(DCT )的定义正变换为∑∑-=-=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=1010)21(cos )21(cos ),(2)()(),(M x N y y v N x u M y x f MN v C u C v u F ππ 其逆变换为∑∑-=-=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=1010)21(cos )21(cos ),()()(2),(N v M u y v N x u M v u F v C u C MN y x f ππ 离散余弦变换是图像压缩中常用的一种变换方法,任何实对称函数的傅里叶变换中只含余弦项,就成为余弦变换,因此余弦变换是傅里叶变换的特例。

图像空域变换实验报告

图像空域变换实验报告

实验报告(2014~ 2015 学年度第二学期)班级:学号:姓名:同组试验者:实验名称:图像空域变换日期: 2015.04.22一、实验目的:1.掌握图像的线性和非线性变换和直方图均衡化的原理和应用;2. 理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;3.了解噪声模型及对图像添加噪声的基本方法。

二、实验原理1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。

2.直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像,按照图像概率密度函数PDF的定义。

三、实验内容1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。

将一幅256X256的灰度图像,将0~60灰度级压缩到0~30范围内,压缩比1/2;60~180的灰度级扩大到30~240,比率为190/120;将180~255灰度级压缩到240~255范围内,压缩比为15/75.实验程序:X1=imread('1234.png');figure,imshow(X1)f0=0;g0=0;f1=60;g1=30;f2=180;g2=240;f3=255;g3=255;%绘制变换曲线figure,plot([f0,f1,f2,f3],[g0,g1,g2,g3])axis tight,xlabel('f'),ylabel('g')%xlable,ylable加坐标轴文字标注title('intensity transformation')%给图形窗口加标题r1=(g1-g0)/(f1-f0);%求0~60灰度级范围内的压缩比b1=g0-r1*f0;r2=(g2-g1)/(f2-f1);%求60~180灰度级范围内的压缩比b2=g1-r2*f1;r3=(g3-g2)/(f3-f2);%求180~255灰度级范围内的压缩比b3=g2-r3*f2;[m,n]=size(X1); %求矩阵的行数m,列数nX2=double(X1); %将数据类型转换为双精度型%变换矩阵中的每个元素for j=1:nf=X2(i,j);g(i,j)=0;if (f>=0)&(f<=f1); %找出灰度级范围在0~60的元素g(i,j)=r1*f+b1; %灰度级在0~30的进行灰度变换elseif (f>=f1)&(f<=f2) %找出灰度级范围在60~180的元素g(i,j)=r2*f+b2; %灰度级在60~180的进行灰度变换elseif (f>=f2)&(f<=f3) %找出灰度级范围在180~255的元素g(i,j)=r3*f+b3; %灰度级在180~255的进行灰度变换endendendfigure,imshow(mat2gray(g)) %函数mat2gray( )将数据矩阵转换成灰度图像2.对数变换实验程序:I=imread('peppers.png');%读入图像figure;imshow(I);F=fft2(im2double(I));%FFTF=fftshift(F);%FFT频谱平移F=abs(F);T=log(F+1);%频谱对数变换figure;imshow(F,[]);title('未经变换的频谱'); figure;imshow(T,[]);title('对数变换后');3.幂次变换实验程序:I=imread('pout.tif');subplot(1,4,1);imshow(I);title('原图像','fontsize',9);subplot(1,4,2);imshow(imadjust(I,[],[],0.5));title('Gamma=0.5'); subplot(1,4,3);imshow(imadjust(I,[],[],1));title('Gamma=1'); subplot(1,4,4);imshow(imadjust(I,[],[],1.5));title('Gamma=1.5');4.直方图变换实验程序:I = imread('tire.tif'); J = histeq(I);imshow(I)figure, imshow(J); figure,imhist(I,64) figure,imhist(J,64)5.图像平移实验程序:(1)I=imread('cameraman.tif');subplot(1,2,1);imshow(I);title('原始图像');[M,N,]=size(I);g=zeros(M,N);a=20;b=20;for i=1:Mfor j=1:N;if ((i-a>0)&(i-a<M)&(j-b>0)&(j-b<N))g(i,j)=I(i-a,j-b);elseg(i,j)=0;endendendsubplot(1,2,2);imshow(uint8(g));title('平移后的图像');(2)F=imread('123.jpg');subplot(1,2,1);imshow(F);title('原始图像');se = translate(strel(1), [5 5]);%参数[0 20]可以修改,修改后平移距离对应改变J = imdilate(F,se);subplot(1,2,2);imshow(J,[]);title('平移后图形');6.水平镜像实验程序:I=imread('123.jpg');subplot(1,2,1);imshow(I);title('原始图像');[M,N]=size(I);g=zeros(M,N);for i=1:Mfor j=1:N;g(i,j)=I(i,N-j+1);endendsubplot(1,2,2);imshow(uint8(g));title('水平镜像');7.垂直镜像实验程序:I=imread('123.jpg'); subplot(1,2,1); imshow(I);title('原始图像'); image=I(end:-1:1,:); subplot(1,2,2); imshow(image);8.加噪求平均实验程序:(1)I=imread('eight.tif');J=imnoise(I,'gaussian',0,0.02);subplot(1,3,1),imshow(I);title('原图'); subplot(1,3,2),imshow(J);title('加噪声');K=zeros(242,308);for i=1:100J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;endK=K/100;subplot(1,3,3);imshow(K);title('平滑图');(2)%导入图像的同时将图像分为行和列元素[I,M]=imread('123.jpg');%对图像进行加噪声J=imnoise(I,'gaussian',0,0.02);%显示图像subplot(1,3,1),imshow(I,M),title('原始图像'); subplot(1,3,2),imshow(J,M),title('加噪图像'); %创建与原图像一样维数的全0矩阵J1=im2double(J);K=ones(size(J1));%循环100对图像加噪声然后累加for i=1:1:100J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;end%求图像的平均K=K/100;%显示处理过的图像subplot(1,3,3),imshow(K),title('平滑图像');四、实验中遇到的问题水平变换、垂直变换时彩色图片不能按照要求进行变换=====WORD完整版----可编辑----专业资料分享=====。

图像变换实验报告

图像变换实验报告

实验一图像变换一、实验目的:1、巩固二维离散傅立叶变换的基本原理;2、掌握应用MATLAB语言对二维图像进行FFT及逆变换;掌握傅立叶变换的应用:线性滤波器的频率响应和图像特征定位;3、巩固离散余弦变换理论,掌握应用MATLAB语言对图像进行离散余弦变换,掌握离散余弦变换在JPEG编码中的应用;4、巩固离散沃尔什-哈达玛变换理论,掌握应用MATLAB语言对图像进行沃尔什-哈达玛变换。

二、实验内容:1.二维离散傅立叶变换1)参考实验书,用Matlab程序完成图5.5(a)中图形及其傅立叶变换,显示图形和三维图;2)读入一幅图像(LENA128.bmp),生成其傅立叶谱图,将此图像旋转45度,生成旋转45度后的谱图。

2.傅立叶变换的应用线性滤波器的频率响应产生二维矩形低通滤波器(滤波器参数自选),做此滤波器的频率响应图和空间域图形。

3.傅立叶变换的应用图像特征定位从图像text1.tif中选取一个特征(“图象”这两个字),在图像text2.tif中找出该特征的位置。

4.图像离散余弦变换及在JPEG中的应用1)对输入图像进行离散余弦变换,DCT系数门限值分别取0.6和4,显示变换后的系数图,显示DCT压缩后的图像。

2)DCT变换在JPEG压缩中的应用:将给定的图像harbour.tif划分为16×16的小块,做JPEG中DCT运算,并重构图像。

每小块的DCT系数保留左上角21个。

显示过程中图像DCT系数图,显示重构后的图像。

5.图像离散沃尔什-哈达玛变换读入一幅图像,对图像进行沃尔什-哈达玛变换。

并显示变换结果三.实验结果&结果分析:1.解答:(1)A=[];A(1:500,1:300)=0;for x=1:500for y=1:300;b=(x-250).^2/250^2+(y-150).^2/150^2; c=(x-250).^2/225^2+(y-150).^2/125^2; if (b<1 && c>1);A(x,y)=1;endendendimshow(A)F1=fft2(A,500,500);F=fftshift(F1);F2=log(abs(F));figure(2)imshow(F2,[0.1,5],'notruesize');colorbar figure(3)x=1:500;y=1:500;mesh(x,y,log(F(x,y)));colormap(gray);colorbar 图形及其傅立叶变换如下:(2)A=imread('LENA128.bmp');F1=fft2(A);F11=fftshift(F1);F111=log(abs(F11));B=imrotate(A,45);F2=fft2(B);F22=fftshift(F2);F222=log(abs(F22));subplot(2,2,1),imshow(A);subplot(2,2,2),imshow(F111,[]);subplot(2,2,3),imshow(B);subplot(2,2,4),imshow(F222,[]);图像的傅立叶谱图和旋转45度后的谱图如下:2.解答A=[];A(1:25,1:25)=0;for x=1:25for y=1:25b=(x-3).^2+(y-3).^2;if (b<10);A(x,y)=1;endendendsubplot(2,1,1),mesh(A);subplot(2,1,2),freqz2(A);滤波器的频率响应图和空间域图形如下:3.解答:bw=imread('text1.tif');A=bw(243:259,255:283);figure(1)imshow(A)bw1=imread('text2.tif');B=bw1(39:52,227:251);bw1=255-bw1;B=255-B;c=real(ifft2(fft2(bw1).*fft2(rot90(B,2),512,512))); figure(2)imshow(c,[])max(c(:))figure(3)imshow(c> ((4.7293e+006)-10));在图像中找出该特征的位置如下:4.解答:[A,map]=imread('LENA128.bmp');GRAY=mat2gray(A);D=dct2(GRAY);figure(1),subplot(3,1,1),imshow(log(abs(D)),[]); colormap(gray(4));colorbar;D(abs(D)<0.6)=0;I1=idct2(D)/255;subplot(3,1,2),imshow(I1);D1=dct2(GRAY);D1(abs(D1)<4)=0;I2=idct2(D1)/255;subplot(3,1,2),imshow(I2);(2)I=imread('harbour.tif');I=im2double(I);T=dctmtx(16);B=blkproc(I,[16 16],'P1*x*P2',T,T');mask=[];mask(1:16,1:16)=0;mask(1:5,1:4)=1;B2=blkproc(B,[16 16],'P1.*x',mask);I2=blkproc(B2,[16 16],'P1*x*P2',T',T);figure(2),subplot(2,1,1),imshow(I);subplot(2,1,2),imshow(I2);5.解答:[A,map]=imread('LENA128.bmp');GRAY=mat2gray(A);subplot(2,1,1),colormap(gray(128)),imagesc(GRAY);[m n]=size(GRAY)for k=1:nwht(:,k)=hadamard(m)*GRAY(:,k)/m;endfor j=1:mwh(:,j)=hadamard(n)*wht(j,:)'/nendwh=wh';subplot(2,1,2),colormap(gray(128)),imagesc(wh);四、实验分析由实验结果可知,在图像灰度转换过程中,其图像的清晰度随着灰度级的降低而降低。

数字图像处理图像变换实验报告

数字图像处理图像变换实验报告

实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用与意义;4、观察图像点运算与几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。

三、实验原理1、图像灰度直方图、点运算与几何变换的基本原理及编程实现步骤图像灰度直方图就是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。

图像点运算就是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。

点运算可以瞧作就是“从象素到象素”的复制操作,而这种复制操作就是通过灰度变换函数实现的。

如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值与输出灰度值之间的转换关系。

一旦灰度变换函数确定,该点运算就完全确定下来了。

另外,点运算处理将改变图像的灰度直方图分布。

点运算又被称为对比度增强、对比度拉伸或灰度变换。

点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。

图像几何变换就是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放与图像旋转等,其理论基础主要就是一些矩阵运算,详细原理可以参考有关书籍。

实验系统提供了图像灰度直方图、点运算与几何变换相关内容的文字说明,用户在操作过程中可以参考。

下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。

实验1图像正交变换

实验1图像正交变换

实验1图像正交变换实验⼀图像变换⼀.实验⽬的1.掌握傅⽴叶变换及逆变换的基本原理⽅法。

2.掌握离散余弦变换的基本原理⽅法。

3.掌握沃尔什-哈达玛变换的基本原理及⽅法。

⼆.实验原理及内容:内容:1.对标准图像进⾏离散傅⾥叶变换并在计算机屏幕观测其频谱,验证⼆维傅⾥叶变换的常⽤性质。

2.对标准图像进⾏离散余弦变换并在计算机屏幕观测其频谱,验证⼆维余弦变换的常⽤性质,了解⼆维余弦变换⽤在图像压缩中的原因。

3.对标准图像离散傅⾥叶变换和离散余弦变换的频谱进⾏⽐较。

4.对标准图像进⾏沃尔什-哈达玛变换并在计算机屏幕观测其频谱。

基本要求:1.加深理解DFT、DCT、Walsh变换的原理和基本性质。

2.掌握DFT、DCT变换的算法流程,并能根据流程编程实现。

3.分析变换域内频谱的特征。

三.实验程序与结果(1)对标准图像进⾏离散傅⾥叶变换I=imread('L:/lena.jpg');J=rgb2gray(I); %换成灰度图像subplot(2,2,1);imshow(I);title('原始图像');subplot(2,2,2);imshow(J);title('灰度图像');f=fftshift(fft2(J)); %离散傅⾥叶变换,并将中⼼移到原点subplot(2,2,3);imshow(log(abs(f)),[8,10]) %输出频谱⼆维图像title ('傅⾥叶变换');(2)对标准图像进⾏离散余弦变换i=imread('L:/lena.jpg');h=rgb2gray(i);DCT=dct2(h);DCT(abs(DCT)<10)=0;IDCT=idct2(DCT);subplot(2,2,1);imshow(i);title('原始图像');subplot(2,2,2);imshow(h);title('灰度图');subplot(2,2,3);imshow(DCT);title('DCT 变换图');subplot(2,2,4);imshow(log(abs(DCT)),[]);title('⼆维变换图');(3)对标准图像进⾏沃尔什-哈达玛变换clear;clc;close all;n=512;filename=('L:/lena.jpg');A=double(rgb2gray(imread(filename))); B=zeros(n,n); B(1:size(A,1),1:size(A,2))=A;H(1)=[1];for k=2:log2(n)+1H=[H H;H -H];endW1=1/n/n*H*B*H;figure(2);subplot(1,2,1);imshow(uint8(B));title('原图');subplot(1,2,2);imshow(uint8(1000*W1));title('沃尔什-哈达玛变换结果');四.实验过程及结果分析实验过程:通过编写程序,调⽤各种变换函数来处理已知路径的图像并显⽰图像的原始图、灰度图及各种变换后的频谱图来观察实验的结果。

图像变换实验

图像变换实验

数字图像处理实验报告1 - 图像变换学生姓名:学号:实验时间:地点:指导教师:实验名称:图像变换试验目的:(1)基于MATLAB的实验验证。

通过在MA TLAB环境中相关函数的调用,验证图像变换和图像频域处理效果,增强感性认识。

(2)基于C语言的基本图像处理。

通过编写C++程序,进一步理解算法的实现过程,为在实际应用软件中的应用打下基础。

实验内容:(1)MATLAB函数的直接调用通过在MA TLAB环境中相关函数的调用,验证傅立叶变换、DCT变换和小波变换的结果,并通过反变换恢复原图像。

①对’flower.tif’ 图片进行傅立叶变换,绘制原始图像和变换后的频谱图。

②对’ flower.tif’ 图片进行DCT变换,绘制原始图像和变换后的频谱图。

③对’ flower.tif’ 图片进行一层小波变换和反变换,绘制原始图像和重建后的图像,以及小波分解后的4个子图注意:可以采用colormap(‘gray’) 来设置灰色图像的绘制。

(2)提升小波变换实验验证图像的提升小波变换。

编写小波变换程序,实现图像的变换和反变换。

完成:●图像的读取;●提升小波变换、逆变换●原图像和重建图像的显示、比较。

(3)编写VC++程序,读取flower.yuv 的图像帧,将图彩色图像变为灰度图像,然后对图像像素做线性变换g (i) = a f(i)+b 。

i为任意像素序号,a,b为实数。

将a,b取不同值,显示变换前、后的画面。

例如a=-1,b=255; a=0.5,b=128 等。

实验记录与结果分析:(1)①第一步:对于第一个实验先产生一个tif格式的灰度图像,在这里采用微软window系统中的图像并进行灰度图像化来产生。

(程序详见附录1.1)结果如下:灰度图像是原图像的一个截取,防止像素太大处理速度变慢。

(毕竟这是一次试验)原图:灰度图:②第二步:对’flower.tif’ 图片进行傅立叶变换,绘制原始图像和变换后的频谱图。

图像变换实验报告心得

图像变换实验报告心得

图像变换实验报告心得引言图像变换是计算机视觉领域的重要研究方向之一,它通过对图像的像素进行一系列的操作,实现对原始图像的改变和增强。

图像变换可以被广泛应用于图像处理、计算机图形学、机器学习等领域中。

为了进一步探索图像变换的应用和效果,我们进行了一系列的图像变换实验,并记录了实验过程和结果。

本篇报告旨在总结实验心得和体会,提出对图像变换实验的改进建议。

实验目的本次实验的目的是通过实现和比较不同的图像变换算法,探索图像变换对图像质量和可视化效果的影响。

具体目标如下:1. 实现常见的图像变换算法,包括平移、旋转、缩放和灰度变换等;2. 分析不同图像变换算法的优缺点,并比较其效果;3. 讨论图像变换对图像质量的影响,并给出评价标准;4. 提出改进图像变换算法的建议。

实验方法实验中,我们使用了Python编程语言,并借助开源的图像处理库OpenCV进行图像变换的实现。

针对不同的图像变换操作,我们选择了不同的算法和参数设置,以保证实验的全面性和可比性。

具体方法如下:1. 平移变换:我们使用OpenCV提供的`warpAffine`函数实现了平移变换,并通过调整平移向量的参数实现了不同程度的平移效果;2. 旋转变换:我们使用OpenCV提供的`getRotationMatrix2D`和`warpAffine`函数实现了旋转变换,并调整参数实现了不同角度和方向的旋转效果;3. 缩放变换:我们使用OpenCV提供的`resize`函数和不同的插值方法(如最近邻插值、双线性插值)实现了缩放变换,并对比了不同插值方法的效果;4. 灰度变换:我们实现了简单的灰度变换算法,包括将彩色图像转换为灰度图像,以及调整灰度图像的亮度和对比度。

实验结果通过对实验图像的处理和结果分析,我们得出了以下结论:1. 平移变换可以实现图像的横向和纵向移动,但当平移距离较大时,可能导致图像丢失部分内容;2. 旋转变换可以实现图像的旋转和翻转,但当旋转角度过大时,可能会导致图像失真和像素重叠;3. 缩放变换可以实现图像的放大和缩小,但不同的插值方法会影响图像的细节和平滑度;4. 灰度变换可以实现彩色图像到灰度图像的转换,并调整亮度和对比度,但需要注意亮度调整的边界问题。

机器视觉应用技术实验04图像变换

机器视觉应用技术实验04图像变换

实验4 图像变换一、实验目的1.掌握图像旋转、图像镜像、图像缩放、图像透视等方法。

2.掌握AiCam框架的部署和使用。

二、实验环境硬件环境:PC机Pentium处理器双核2GHz以上,内存4GB以上操作系统:Windows7 64位及以上操作系统开发软件:MobaXterm实验器材:人工智能边缘应用平台实验配件:无三、实验内容1.算法原理1.1 基本描述图像变换是很多数据预处理的关键步骤,主要包括图像的旋转、镜像、缩放、透视等相关操作。

在某些应用中数据集比较少的情况下,运用图像变换等数据增强手段就可以实现数据集数据的扩充,例如随机镜像、随机垂直镜像、90度旋转等操作。

1.2 常用方法●图像旋转:在OpenCV中图像旋转主要调用函数getRotationMatrix2D()和wrapAffine()实现,绕图像的中心旋转,具体如下:# 对图片进行旋转# 构造旋转矩阵,参数分别为:旋转中心、旋转度数、缩放比例M = cv.getRotationMatrix2D((cols/2, rows/2), 45, 1)# 图像旋转,参数分别为:原始图像、旋转矩阵、原始图像宽高rotation_image = cv.warpAffine(image, M, (cols, rows))●图像镜像:在OpenCV中图像翻转主要调用函数flip() 实现,具体如下:# src:原始图像# flipCode:翻转方向(flipCode=0,水平镜像,flipCode>0,垂直镜像,flipCode<0,同时翻转)dst = cv2.flip(src, flipCode)●图像缩放:在OpenCV中图像缩放主要调用resize() 函数实现,具体如下:。

# scr:原始图像# dsize:输出图像的尺寸(元组方式)# fx:沿水平轴缩放的比例因子# fy:沿垂直轴缩放的比例因子# interpolation:插值方法cv.resize(src, dsize, fx, fy, interpolation)详细参数如下:src:输入,原图像,即待改变大小的图像;dsize:输出图像的大小。

图像变换实验报告

图像变换实验报告

图像变换实验报告图像变换实验报告一、引言图像变换是计算机图形学中的重要研究方向,它涉及到将图像从一种形式转换为另一种形式,常见的变换包括旋转、缩放、镜像等。

本实验旨在通过实际操作,探索图像变换的原理和应用。

二、实验目的1. 了解图像变换的基本概念和原理;2. 掌握图像变换的常用算法和方法;3. 利用编程语言实现图像变换,并观察结果。

三、实验步骤1. 实验准备:a. 下载并安装图像处理软件;b. 准备一组测试图像。

2. 图像旋转变换:a. 打开图像处理软件,选择一张测试图像;b. 在软件中选择旋转变换功能,并设置旋转角度;c. 运行程序,观察图像旋转结果。

3. 图像缩放变换:a. 选择另一张测试图像;b. 在软件中选择缩放变换功能,并设置缩放比例;c. 运行程序,观察图像缩放结果。

4. 图像镜像变换:a. 选择第三张测试图像;b. 在软件中选择镜像变换功能,并选择水平或垂直镜像;c. 运行程序,观察图像镜像结果。

5. 图像变换算法比较:a. 将同一张测试图像分别使用不同的图像变换算法进行处理;b. 观察不同算法处理后的图像效果,并比较它们的差异。

四、实验结果与分析通过实验,我们成功实现了图像的旋转、缩放和镜像变换,并获得了相应的结果。

在图像旋转变换中,我们观察到图像按照指定角度旋转后,保持了原始图像的形状和内容,但位置发生了变化。

在图像缩放变换中,我们发现图像按照设定的比例进行缩放后,尺寸发生了变化,但整体结构和细节保持了一定的相似性。

在图像镜像变换中,我们发现图像在水平或垂直方向上翻转后,整体形状和内容发生了镜像对称的变化。

通过比较不同的图像变换算法,我们发现不同算法对于同一张图像可能会产生不同的效果。

这是因为不同算法对图像的处理方式和策略不同,导致最终的结果也有所差异。

因此,在实际应用中,我们需要根据具体需求选择适合的图像变换算法,以达到最佳的效果。

五、实验总结本实验通过实际操作,深入了解了图像变换的原理和应用。

图像灰度变换实验报告

图像灰度变换实验报告

实验2a 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。

二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。

三、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。

我们可以分别使用MA TLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。

为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。

如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

代数运算的结果很容易超出数据类型允许的范围。

图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。

对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。

需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。

实验图像变换

实验图像变换

1、图像的读取函数imread()用来读取图像,把图像数据读出以后,可以赋给一个变量。

例如,在命令窗口中输入命令a=imread(‘box.bmp’)%其中box.bmp在当前路径下执行命令后,在命令窗口显示出许多数据,这些数据就是用来表示图像各个位置点颜色的。

使用命令s=size(a)则有s= 27 28说明图像的高位27像素、宽为28像素。

实验指导书实验一图像变换一、实验目的与要求:目的:通过本次实验,学生可以掌握MA TLAB的基本矩阵操作、图像的读取、显示和保存的方法,掌握图像频域变换的方法,包括DFT变换和DCT变换方法的实现。

要求:上机运行,编程调试通过。

二、实验内容:1、MATLAB简介1.1主要用途及特点主要用途:算法研究主要特点:语句功能强大;不能生成可执行文件。

1.2 MA TLAB工作环境1.2.1 Matlab桌面桌面包括5个子窗口:命令窗口、工作空间窗口、当前目录窗口、历史命令窗口、一个或多个图形窗口(仅在用户显示图形式出现)。

命令窗口是用户在提示符(>>)处键入MA TLAB命令和表达式的地方,也是显示那些命令输出的地方。

工作空间窗口显示对话中创建的变量和它们的某些信息。

当前目录窗口显示当前目录的内容(即路径)。

历史命令窗口包含用户已在命令窗口中输入的命令的纪录。

1.2.2使用MATLAB编辑器创建M文件1.2.3获得帮助(1)help <函数名>(2)lookfor <关键词>2、数字图像的读取、显示、保存、数据类型和图像类型、数据类型间的转换、图像类型间的转换2.1图像的读取语法:imread ( ‘filename’ )说明:读取图像语法:[M, N]=size ( ‘filename’ )说明:给出一幅图像的行数和列数2.2图像的显示语法:imshow ( f, G)imshow (f, [low high])imshow (f, [ ])说明:G是显示该图像的灰度级数;小于或等于low的值都显示为黑色,大于或等于high的值都显示为白色。

实验二图像几何变换

实验二图像几何变换

实验二、图像几何变换班级: 学号: 姓名:实验时间: 实验学时:2学时一、实验目的1、结合实例学习如何在视频显示程序中增加图像处理算法;2、理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用。

二、实验原理1、初始坐标为(x , y )的点经过平移(0x ,0y ),坐标变为('x ,'y ),两点之间的关系为:⎩⎨⎧+=+=00''y y y x x x ,以矩阵形式表示为:⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 0y 1 0 0 11''00y x x y x2、图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为: ⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 1 0 0 0 11''y x y x ⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 1- 0 0 0 11''y x y x 3、图像缩小和放大变换矩阵相同:⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 0 0 0 1''y x y x S S y x 当1 ,1≤≤y x S S 时,图像缩小;1 ,1≥≥y x S S 时,图像放大。

4、图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。

其变换矩阵为:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 cos sin 0 sin cos 1''y x y x θθθθ 该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(b a ,)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。

三、 实验步骤1、启动MATLAB 程序,对图像文件分别进行生成、失真和校正;(参考教材115页,例5.8,例5.9)。

图像几何变换实验报告

图像几何变换实验报告

图像几何变换实验报告图像几何变换实验报告引言:图像几何变换是计算机视觉领域的重要研究方向之一。

通过对图像进行旋转、缩放、平移等变换操作,可以改变图像的形状、大小和位置,从而实现图像处理和分析的目的。

本实验旨在通过编程实现常见的图像几何变换算法,并对其效果进行评估和分析。

一、图像旋转变换图像旋转变换是指将图像按照一定的角度进行旋转操作。

在实验中,我们使用了旋转矩阵来实现图像的旋转。

通过调整旋转角度,我们可以观察到图像在不同旋转角度下的变化。

实验结果显示,当旋转角度较小时,图像的形状基本保持不变,但会出现一定程度的畸变。

随着旋转角度的增加,图像的形状逐渐发生变化,出现明显的扭曲和形变现象。

二、图像缩放变换图像缩放变换是指改变图像的尺寸大小。

在实验中,我们通过调整缩放系数来实现图像的缩放操作。

实验结果表明,当缩放系数小于1时,图像会变小,细节信息会丢失;而当缩放系数大于1时,图像会变大,但可能会出现像素过度拉伸的情况。

因此,在进行图像缩放时,需要根据实际需求选择合适的缩放系数,以保证图像的质量和清晰度。

三、图像平移变换图像平移变换是指将图像沿着水平或垂直方向进行移动操作。

在实验中,我们通过调整平移距离来实现图像的平移。

实验结果显示,当平移距离较小时,图像的位置变化不明显;而当平移距离较大时,图像的位置会发生明显的偏移。

因此,在进行图像平移时,需要根据实际需求选择合适的平移距离,以确保图像的位置调整符合预期。

四、图像仿射变换图像仿射变换是指通过线性变换和平移变换来改变图像的形状、大小和位置。

在实验中,我们通过调整仿射变换矩阵的参数来实现图像的仿射变换。

实验结果表明,仿射变换可以实现图像的旋转、缩放和平移等多种操作,且变换后的图像形状基本保持不变。

然而,当仿射变换矩阵的参数设置不当时,可能会导致图像的形变和失真现象。

五、图像透视变换图像透视变换是指通过透视投影将图像从一个平面映射到另一个平面。

在实验中,我们通过调整透视变换矩阵的参数来实现图像的透视变换。

图像变换创意调研报告总结

图像变换创意调研报告总结

图像变换创意调研报告总结简介图像变换是计算机视觉的一个重要研究领域,通过对图像进行各种变换和处理,可以实现多种创意效果。

本次调研旨在总结图像变换的常见方法和应用,并探索最新的创意应用。

常见方法图像变换可以分为几种常见的方法:几何变换几何变换是对图像的形状和位置进行变换,常见的几何变换包括平移、旋转、缩放和翻转。

通过调整图像的几何属性,可以改变图像的外观和结构,产生各种创意效果。

色彩变换色彩变换是对图像的颜色进行变换,常见的色彩变换包括调整亮度、对比度和色相等。

通过调整颜色的参数,可以产生各种艳丽或柔和的色彩效果,营造出不同的氛围。

滤波变换滤波变换是通过对图像进行卷积操作,实现图像的模糊、锐化、边缘检测等效果。

滤波变换可以改变图像的纹理和细节,增强或削弱某些特征,从而创造出各种独特的效果。

图像合成图像合成是将多个图像合并成一个新的图像。

常见的图像合成方法有图像融合、图像拼接和图像混合等。

通过将不同图像的元素进行组合,可以创造出富有想象力和创意的图像效果。

应用领域图像变换的应用领域非常广泛,下面列举几个典型的应用领域:图像处理软件图像处理软件是最常见的图像变换应用。

通过图像处理软件,用户可以对图像进行各种变换和处理,包括如调整亮度、对比度、色彩,以及添加滤镜、特效等。

图像处理软件可以满足用户对图像创意的需求,并提供方便易用的界面和操作。

广告设计广告设计是一个重要的创意应用领域。

通过图像变换技术,广告设计师可以创建出各种独特的广告效果,吸引人们的眼球。

图像变换可以使广告更加生动、夺人眼球,提高广告的吸引力和传播效果。

艺术创作艺术创作是图像变换的另一个重要应用领域。

艺术家可以通过图像变换技术,将传统的绘画和摄影与计算机技术相结合,创作出具有独特风格和表现力的艺术作品。

图像变换可以扩展艺术家的想象力和创作空间,使其作品更加生动、鲜活。

娱乐和游戏娱乐和游戏行业是图像变换的重要应用领域。

通过图像变换,可以制作出各种有趣和富有想象力的图像特效,增加娱乐和游戏的趣味性和可玩性。

图像格式转换实验报告

图像格式转换实验报告

实验1 图像格式转换实验报告学号:12224506姓名:陈振辉班级:5班一、实验目的掌握两种以上图像的格式,重点掌握BMP图像格式。

二、实验原理:1、JPEG文件的解码过程。

①.读入文件的相关信息按照上述的JPEG文件数据存储方式,把要解码的文件的相关信息一一读出,为接下来的解码工作做好准备。

参考方法是,设计一系列的结构体对应各个标记,并存储标记内表示的信息。

其中图像长宽、多个量化表和哈夫曼表、水平/垂直采样因子等多项信息比较重要。

以下给出读取过程中的两个问题。

1)整个文件的大体结构JFIF格式的JPEG文件(*.jpg)的一般顺序为:SOI(0xFFD8)APP0(0xFFE0)[APPn(0xFFEn)]可选DQT(0xFFDB)SOF0(0xFFC0)DHT(0xFFC4)SOS(0xFFDA)压缩数据EOI(0xFFD9)2)字的高低位问题JPEG文件格式中,一个字(16位)的存储使用的是 Motorola 格式, 而不是 Intel 格式。

也就是说, 一个字的高字节(高8位)在数据流的前面, 低字节(低8位)在数据流的后面,与平时习惯的Intel格式不一样。

.3)读出哈夫曼表数据在标记段DHT内,包含了一个或者多个的哈夫曼表。

不同位数的码字数量JPEG文件的哈夫曼编码只能是1~16位。

这个字段的16个字节分别表示1~16位的编码码字在哈夫曼树中的个数。

编码内容这个字段记录了哈夫曼树中各个叶子结点的权。

所以,上一字段(不同位数的码字数量)的16个数值之和就应该是本字段的长度,也就是哈夫曼树中叶子结点个数。

4)建立哈夫曼树读出哈夫曼表的数据后,就要建立哈夫曼树。

②.初步了解图像数据流的结构a) 在图片像素数据流中,信息可以被分为一段接一段的最小编码单元(Minimum CodedUnit,MCU)数据流。

所谓MCU,是图像中一个正方矩阵像素的数据。

矩阵的大小是这样确定的:查阅标记SOF0,可以得到图像不同颜色分量的采样因子,即Y、Cr、Cb 三个分量各自的水平采样因子和垂直采样因子。

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

实验三图像变换
一、实验目的
1、结合实例学习几种常见的图像变换,并通过实验体会图像变换的效果;
2、理解和掌握图像旋转、缩放、离散傅里叶变换和离散余弦变换的原理和应用,掌握利用MATLAB编程实现图像变换的方法。

二、实验内容
1、图像的几何变换,主要实现图像的缩放与旋转,要求变换中用最近邻插值算法实现,或用双线性变换法实现并比较;
2、图像的正交变换,主要实现离散傅里叶变换(DFT)与离散余弦变换(DCT)。

三、实验要求
1、独立完成;
2、编写MATLAB程序,并对程序中所调用函数的功能进行必要的说明(可用“help 函数名”进行查询);
3、调试运行后保存实验结果(注意保存的文件格式);
4、完成实验报告。

四、实验原理
(一)图像的几何运算(变换)
1、比例缩放
比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一副新的图像。

在MATLAB中,进行图像比例缩放的函数是imresize,它的常见调用方法如下:
B=imresize(A,scale)
B=imresize(A,[mrows ncols])
B=imresize(A,scale,method)
其中,A是要进行缩放的图像矩阵,scale是进行缩放的倍数,如果scale小于1,则进行缩小操作,如果scale大于1,则进行放大操作。

[mrows ncols]用于指定缩放后图像的行数和列数,method用于指定的图像插值方法,有nearest、bilinear、bicubic 等算法。

2、图像旋转
一般的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。

在MATLAB中,进行图像旋转的函数是imrotate,它的常见调用方法如下:
B=imrotate(A,angle)
B= imrotate(A,angle,method)
B= imrotate(A,angle,method,bbox)
其中,A是要旋转的图像,angle是旋转的角度;method是插值方法,可以为nearest、bilinear、bicublic等;bbox是指旋转后的显示方式,有两种选择,一种是crop,旋转后的图像效果跟原图像一样大小,一种是loose,旋转后的图像包含原图。

(二)图像的正交变换
1、离散傅里叶变换(DFT)
设f(x,y)是在空间域上等间隔采样得到的M×N的二维离散信号,x和y是离散实变量,u和v为离散频率变量,则二维离散傅里叶变换对一般地定义为:
F(u,v)=√1
MN ∑∑f(x,y)exp
N−1
y=0
M−1
x=0
[−j2π(
xu
M
+
yv
N
)]
(u=0,1,…,M-1;v=0,1,…,N-1)
f(x,y)=√1
MN ∑∑F(u,v)exp
N−1
v=0
M−1
u=0
[j2π(
xu
M
+
yv
N
)]
(x=0,1,…,M-1;y=0,1,…,N-1)
傅里叶变换有快速算法FFT,使用FFT可以快速提高傅里叶变换的速度。

MATLAB工具箱中有常见的傅里叶变换函数和反变换函
数。

Y=fft2(X)Y=fft2(X,m,n)
Y=ifft2(X)Y=ifft2(X,m,n)
以正变换为例,X是要进行二维傅里叶变换的矩阵,m、n是返回的变换矩阵Y的行数和列数,如果m、n大于X的维数,则在Y相应的位置补0。

Y=fftsℎift(X)
把傅里叶变换操作得到的结果中零频率成分移到矩阵的中心,这有利于观察频谱。

2、离散余弦变换(DCT)
二维正DCT表示形式为:
F(0,0)=1
N
∑∑f(x,y)
N−1
y=0
N−1
x=0
F(u,0)=√2
N
∑∑f(x,y)cos[
π(2x+1)u
2N
] (u≠0) N−1
y=0
N−1
x=0
F(0,v)=√2
N
∑∑f(x,y)cos[
π(2x+1)v
2N
] (v≠0) N−1
y=0
N−1
x=0
F(u,v)=2
N
∑∑f(x,y)cos[
π(2x+1)u
2N
]cos[
π(2x+1)v
2N
] N−1
y=0
N−1
x=0
其中,f(x,y)是二维空间向量元素,F(u,v)是变换系数矩阵之元素。

在MATLAB中,提供两种进行图像处理的DCT变换函数:
B=dct2(A)
B=dct2(A,[m,n])
B=dct2(A,[m n])
其中,A是输入的图像,B是返回的DCT的变换系数,m、n分别是返回的DCT变换系数B的行数和列数。

B=idct2(A)
idct2用于计算二维离散余弦逆变换,是dct2的逆变换,其调用格式与dct2函数相同。

五、实验步骤
(一)图像的几何变换
1、编写MATLAB文件,读取索引图像文件“rice.png”,分别执行以下操作:
(1)放大0.2倍;
(2)放大8倍,并用最近邻插值算法进行插值;
(3)放大8倍,并用双线性变换法进行插值;
(4)在一幅图上显示原图、以及(1)~(3)的结果图像。

2、编写MATLAB文件,读取索引图像文件“cameraman.tif”,分别
执行以下操作:
(1)顺时针旋转45°;(注意角度正负)
(2)使用crop方式显示旋转后的图像;
(3)使用loose方式显示旋转后的图像;
(4)在一幅图上显示原图、以及(1)~(3)的结果图像。

(二)图像的正交变换
1、编写MATLAB文件,生成一个矩形函数,并对该函数进行正交变换,
(1)一般离散FT;
(2)补零后的离散FT;
(3)频率原点平移后的FT;
(4)在一幅图上显示原图、以及(1)~(3)的结果图像。

2、编写MATLAB文件,读取图像文件“autumn.tif”,并对该函数进行正交变换,
(1)将彩色图像转变为灰度图像;
(2)离散DCT;
(3)将幅值小于10的DCT系数置为零后进行反DCT;
(4)在一幅图上显示原图、以及(1)~(3)的结果图像。

并给DCT 结果添加颜色条。

(三)选做实验:频域滤波
1、编写MATLAB文件,读取数字图像“saturn.tif”,用巴特沃斯滤波器去除图像中的椒盐噪声。

(1)添加椒盐噪声imnoise(I);
(2)傅里叶变换;
(3)频率原点平移后的FT;
(4)用巴特沃斯滤波器去除椒盐噪声;
(5)在一幅图上显示(1)~(4)的结果图像。

六、实验结果与分析
(一)图像的几何变换
1、图像的缩放与插值
通过放大0.2倍(缩小)的图像可以看到因为丢点操作在显示时大小不变导致图像模糊,像素分块明显。

在使用最近邻插值算法进行插值放大8倍后,因为每个原像素原封不动地复制映射到对应的像素中,虽然在放大图像的同时保留了所有的原图像信息,但是产生了锯齿现象。

在使用双线性变换法进行插值放大8倍的图像中,相较于上一张更加平滑,但是图像变得有些模糊,细节方面不明显了。

2、图像旋转
通过两种方式旋转后的图像可以看到,crop方式是对旋转后的图像进行了裁剪,保持输出图像与输入图像的尺寸一致,loose 方式保证了旋转之后得到的图片还是完整。

(二)图像的正交变换
1、编写MATLAB文件,生成一个矩形函数,并对该函数进行正交变换:
傅里叶变换的物理意义是将图像的灰度分布函数变换为频率分布函数,通过二维快速傅里叶变换后的图像的四个角对应低频成分,中央对应的是高频成分,能量沿着垂直和水平分布对应的是图像中的矩形窗;补零变换后的图像克服了栅栏效应和频率泄露带来的频率辨认困难问题;离散傅里叶变换变换结果是关于原点对称的两个半周期,通过中心频移显示完全的周期。

2、编写MATLAB文件,读取图像文件并对该函数进行正交变换:
通过离散余弦变换可以看到图像的重要可是信息都集中在DCT变换的左上角一小部分系数中,其余大部分接近零,将幅值小于10的DCT系数置为零后进行反DCT得到的压缩的图像,比较变换前后的图像,可以发现视觉效果相差很小,压缩的效果比较理想。

(三)选做实验:频域滤波
因为Butterworth低通滤波器在带通和带阻之间有平滑的过渡带,高频信号没有完全滤除,在抑噪效果良好的同时,图像变得更加模糊了。

相关文档
最新文档