当前位置:文档之家› 中国地质大学数字图像处理报告.

中国地质大学数字图像处理报告.

中国地质大学(武汉) 数字图像处理实习报告书姓名:专业:班级:学号:指导老师:第1题:实验内容及目的:根据灰度图象得到一副彩色图像(变换函数自定),分别显示1幅彩色图象的R ,G ,B 分量(每个分量用8 bit 表示),和这幅彩色图象的H ,S ,I 分量(每个分量也各用8 bit 表示)。

通过本题学会灰度图和彩色图之间的转换,了解RGB 空间和HIS 空间之间的关系。

实验原理:图像由若干个像素点组成。

灰度图像矩阵的每个元素对应一个灰度值,伪彩色图像矩阵的每个元素对应R 、G 、B 分量的值。

将一幅灰度图变为一幅彩色图相当于在灰度值与RGB 分量之间建立函数关系。

HIS 彩色空间由H (色调)、S (饱和度)、I (辉度)分量构成。

RGB 分量和HIS 分量的对应关系如下:根据对应函数将RGB 分量转化为HIS 分量并显示,即可得到所需的HIS 分量图。

思路分析:用MA TLAB 处理图像首先要将灰度图像读入。

读入后将图像矩阵中的元素转化为uint8类型处理。

将灰度图变为彩色图就是在灰度值与R 、G 、B 分量之间建立关系,所以要先生成R 、G 、B 分量的矩阵,这就要知道原灰度图的大小(用size ()函数实现)。

建立R 、G 、B 分量的矩阵后,采用循环根据原图像的灰度值对其进行赋值。

最后用cat ()函数合并三个分量得到生成的彩色图。

读入彩色图像并转为uint8类型,根据彩色图像的构成将R 、G 、B 分量从图像矩阵中分量出来并显示。

显示图像的HIS 分量时,首先将图像转化为double 类型处理。

然后分离出RGB 分量,根据RGB 分量和HIS 分量之间的转化关系得到HIS 分量,此时的HIS 分量时double 类型,所以将这三个分量合并后转化为8bit 类型。

将转化后的矩阵再分离出HIS 分量即可得到8bit ⎩⎨⎧≤-≥=--+--+-=-=++=-.,2;, ],))(()()]()[(21[cos );,,min(31 ;3/)(21B G B G H B G B R G R B R G R B G R I S B G R I θπθθ类型的HIS分量图。

代码:clear all;close all;X=imread('fudiao.jpg'); %读入图像subplot(121);imshow(X);title('灰度图像'); %显示原始图像X=im2uint8(X); %将图像转化为int8类型[M,N]=size(X); %求得矩阵的维度%生成RGB矩阵R=zeros(M,N);G=zeros(M,N);B=zeros(M,N);%建立灰度值与RGB分量之间的变换关系for p=1:Mfor k=1:Nif(X(p,k)<128)R(p,k)=128;elseif(X(p,k)<192)R(p,k)=4*X(p,k)-511;elseR(p,k)=255;endif(X(p,k)<64)B(p,k)=255;elseif(X(p,k)<128)B(p,k)=511-4*X(p,k);elseB(p,k)=0;endif(X(p,k)<64)G(p,k)=4*X(p,k);elseif(X(p,k)<192)G(p,k)=255;elseG(p,k)=1023-4*X(p,k);endendendZ=cat(3,R,G,B); %合并三个分量Subplot(122);imshow(Z); %显示伪彩色图title('伪彩色图像');%%%%%%%%%%%%%%显示一幅图的RGB分量和HIS分量clear all;close all;X=imread('tower.jpg');X=im2uint8(X); %将图像转化为int8类型figure(1);title('原始图像'); %显示原始图像imshow(X);XR=X(:,:,1); %分离出RGB分量XG=X(:,:,2);XB=X(:,:,3);figure(2);subplot(2,3,1);imshow(XR);%显示RGB分量图title('R分量');subplot(2,3,2);imshow(XG);title('G分量');subplot(2,3,3);imshow(XB);title('B分量');%HSI分量X=im2double(X);XR=X(:,:,1);XG=X(:,:,2);XB=X(:,:,3);%根据RGB分量和HIS分量间的变换关系求得HIS分量num=0.5*((XR-XG)+(XR-XB));den=sqrt((XR-XG).^2+(XR-XB).*(XG-XB)); theta=acos(num./(den+eps));if(XG>=XB)H=theta;elseH=2*pi-theta;endI=(XR+XG+XB)./3;num=min(min(XR,XG),XB);den=XR+XG+XB;den(den==0)=eps;S=1-3.*num./den;M=cat(3,H,S,I);%合并三个分量M=im2uint8(M);%将图像转化为8bit类型%分离HIS分量H=M(:,:,1);S=M(:,:,2);I=M(:,:,3);subplot(2,3,4);imshow(log(H)+1,[]);%显示HI S分量图title('H分量');subplot(2,3,5);imshow(S);title('S分量');subplot(2,3,6);imshow(I);title('I分量');调试:灰度图像伪彩色图像R 分量G 分量B 分量H 分量S 分量I 分量第2题:实验内容及目的:编程实现图像傅立叶变换,并且显示图像的频谱图,编程实现傅里叶变换的,分离性,平移,旋转,卷积性质。

通过本题了解图像傅立叶变换的性质和作用。

实验原理:离散傅立叶变换是将图像从时域转化到频域的一种方法。

二维离散傅立叶变换的公式如下:由它的定义式可以看出二维离散傅立叶变换具有可分离性。

F(u,v)=∑x ∑y f(x,y)exp[- j2π(ux/M+vy/N)]=∑x {∑y f(x,y) exp[- j2πvy/N]} exp[- j2πux/M]=∑x F(x,v) exp[- j2πux/M]其中F(x,v)=∑y f(x,y) exp(- j2πvy/N)。

根据上式推出,计算一幅图像的二维傅里叶变换可以先计算行变换再计算列变换。

由定义式可推出:f(x,y)exp[j2π(u0x+v0y)/N] ⇔ F(u-u0,v-v0)1100(,)(,)exp[2()],0,1,2,..,1,0,1,2,..,1N M x y ux vy F u v f x y j u M v N M N π--===-+=-=-∑∑11001(,)(,)exp[2()],0,1,2,..,1,0,1,2,..,1M N u v ux vy f x y F u v j x M y N NM M Nπ--===+=-=-∑∑f(x-x0,y-y0) ⇔ F(u,v)exp[-j2π(ux0+vy0)/N]证明傅立叶变换的平移性可以将图像矩阵与一指数相乘再对其进行傅里叶变换,观察结果是否是将原图像的傅立叶变换移动到新的位置。

对f(x,y)的平移不影响其傅里叶变换的幅值。

傅里叶变换具有旋转性,即时域图旋转某一角度后,其傅里叶变换也旋转同样的角度。

傅里叶变换的卷积性:如果f(x,y)⇔F(u,v), g(x,y) ⇔ G(u,v)则f(x,y)*g(x,y) ⇔ F(u,v)G(u,v)思路分析:读入所要处理的图像,用fft2函数对其进行傅立叶变换,显示变换后的频谱图以及幅度谱。

验证傅立叶变换的可分离性。

先对图像做一次一维傅里叶变换,对得到的结果再进行一次一维傅立叶变换,得到的结果与图像的二维傅立叶变换比较。

验证傅立叶变换的平移性。

先给图像补零以便于后面平移。

我在图像的右侧补32列0。

将图像右移16列,对其进行傅立叶变换并与变换前的幅度谱进行对比。

验证傅立叶变换的旋转性。

将时域图旋转90度后进行傅立叶变换,得到的结果与旋转前的幅度谱比较。

验证傅立叶变换的卷积性。

由于图像太大,所以我自己产生了一个64×64的黑白图,用conv2函数让这个黑白图与自身做卷积,得到的结果再做傅立叶变换,画出得到的频谱图。

将这个黑白图补零成128×128的图,对其进行傅立叶变换,再把得到的结果与自身相乘,画出得到的频谱图。

比较卷积的傅立叶变换频谱图和傅立叶变换的乘积的频谱图。

代码:clear all;clc;I=imread('girl.bmp'); %读入图像I=im2double(I);Ifft=fft2(I); %对图像做离散傅里叶变换figure(1);imshow(I);title('原始图像'); %显示原始图像figure(2);subplot(121);imshow(Ifft);title('频谱图'); %显示离散傅立叶变换后的频谱图subplot(122);Ifft=fftshift(Ifft);imshow(log(abs(Ifft)+1),[]);title('幅度谱'); %显示变换后的幅度谱%可分离性Ifft=fft(fft(I).').';figure(3);subplot(221);imshow(Ifft);title('进行两次一维变换后的频谱图');subplot(222);Ifft=fftshift(Ifft);imshow(log(abs(Ifft)+1),[]);title('进行两次一维变换后的幅度谱');Ifft=fft2(I);subplot(223);imshow(Ifft);title('二维傅立叶变换后的频谱图');subplot(224);Ifft=fftshift(Ifft);imshow(log(abs(Ifft)+1),[]);title('二维傅立叶变换后的幅度谱');%平移性[M N]=size(I);A=zeros(M,32);I2=[I A];figure(5);subplot(221);imshow(I2);title('原始图');I2=fft2(I2);fft_I2=fftshift(I2);subplot(222);imshow(log(abs(fft_I2)+1),[]);title('原幅度谱');B=zeros(M,16);I3=[B I B];subplot(223);imshow(I3);title('平移后的图');I3=fft2(I3);fft_I3=fftshift(I3);subplot(224);imshow(log(abs(fft_I3)+1),[]);title('平移后的幅度谱'); %旋转性X=imrotate(I,90);figure(6);imshow(X);title('旋转90度后的图像');Ifft=fft2(X);Ifft=fftshift(Ifft);figure(7);imshow(log(abs(Ifft)+1),[]);title('旋转90度后的幅度谱');%卷积性C=zeros(64,64);%生成图像矩阵C(25:45,25:45)=1;%给25行到45行,25列到45列的值赋1C_OUT=conv2(C,C);%C和C做卷积CFFT=fft2(C_OUT);%对生成的卷积做傅立叶变换figure(8);subplot(121);imshow(CFFT);%显示卷积的傅立叶变换title('卷积的傅立叶变换');%给图像矩阵补零D=zeros(128,128);%生成128×128的零矩阵D(1:64,1:64)=C;%零矩阵的左上角放置图像矩阵Dfft=fft2(D);%对补零后的图像做傅立叶变换DFFT2=Dfft.*Dfft;subplot(122);imshow(DFFT2);%显示傅立叶变换的乘积title('傅立叶变换的乘积');figure(9);subplot(121);imshow(C_OUT);title('卷积的时域图');subplot(122);imshow(ifft2(DFFT2));title('傅里叶变换乘积的时域图');原始图像频谱图幅度谱进行两次一维变换后的频谱图进行两次一维变换后的幅度谱二维傅立叶变换后的频谱图二维傅立叶变换后的幅度谱原始图原幅度谱平移后的图平移后幅度谱旋转90度后的图像旋转90度后的幅度谱卷积的傅立叶变换傅立叶变换的乘积卷积的时域图傅里叶变换乘积的时域图第3题:实验内容及目的:用直接灰度变换改变图像(求反,增强对比度,动态范围压缩,灰度切分),显示一副灰度图像的8个位面图。

相关主题