欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:15791430       资源大小:1.21MB        全文页数:43页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、中国地质大学数字图像处理报告中国地质大学(武汉)数字图像处理实习报告书 姓 名:专 业:班 级:学 号:指导老师:第1题:实验内容及目的:根据灰度图象得到一副彩色图像(变换函数自定),分别显示1幅彩色图象的R,G,B分量(每个分量用8 bit表示),和这幅彩色图象的H,S,I分量(每个分量也各用8 bit表示)。 通过本题学会灰度图和彩色图之间的转换,了解RGB空间和HIS空间之间的关系。实验原理:图像由若干个像素点组成。灰度图像矩阵的每个元素对应一个灰度值,伪彩色图像矩阵的每个元素对应R、G、B分量的值。将一幅灰度图变为一幅彩色图相当于在灰度值与RGB分量之间建立函数关系。HIS彩色空间由H

    2、(色调)、S(饱和度)、I(辉度)分量构成。RGB分量和HIS分量的对应关系如下:根据对应函数将RGB分量转化为HIS分量并显示,即可得到所需的HIS分量图。思路分析:用MATLAB处理图像首先要将灰度图像读入。读入后将图像矩阵中的元素转化为uint8类型处理。将灰度图变为彩色图就是在灰度值与R、G、B分量之间建立关系,所以要先生成R、G、B分量的矩阵,这就要知道原灰度图的大小(用size()函数实现)。建立R、G、B分量的矩阵后,采用循环根据原图像的灰度值对其进行赋值。最后用cat()函数合并三个分量得到生成的彩色图。读入彩色图像并转为uint8类型,根据彩色图像的构成将R、G、B分量从图像

    3、矩阵中分量出来并显示。显示图像的HIS分量时,首先将图像转化为double类型处理。然后分离出RGB分量,根据RGB分量和HIS分量之间的转化关系得到HIS分量,此时的HIS分量时double类型,所以将这三个分量合并后转化为8bit类型。将转化后的矩阵再分离出HIS分量即可得到8bit类型的HIS分量图。代码:clear all;close all;X=imread(fudiao.jpg); %读入图像subplot(121);imshow(X);title(灰度图像); %显示原始图像X=im2uint8(X); %将图像转化为int8类型M,N=size(X); %求得矩阵的维度%生成R

    4、GB矩阵R=zeros(M,N);G=zeros(M,N);B=zeros(M,N);%建立灰度值与RGB分量之间的变换关系for p=1:M for k=1:N if(X(p,k)128) R(p,k)=128; elseif(X(p,k)192) R(p,k)=4*X(p,k)-511; else R(p,k)=255; end if(X(p,k)64) B(p,k)=255; elseif(X(p,k)128) B(p,k)=511-4*X(p,k); else B(p,k)=0; end if(X(p,k)64) G(p,k)=4*X(p,k); elseif(X(p,k)=XB) H

    5、=theta;else H=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,);%显示HIS分量图title(H分量);subplot(2,3,5);imshow(S);title(S分量);subplot(2,

    6、3,6);imshow(I);title(I分量);调试:第2题:实验内容及目的:编程实现图像傅立叶变换,并且显示图像的频谱图,编程实现傅里叶变换的,分离性,平移,旋转,卷积性质。通过本题了解图像傅立叶变换的性质和作用。实验原理:离散傅立叶变换是将图像从时域转化到频域的一种方法。二维离散傅立叶变换的公式如下: 由它的定义式可以看出二维离散傅立叶变换具有可分离性。F(u,v)=xy f(x,y)exp- j2(ux/M+vy/N) =x y f(x,y) exp- j2vy/N exp- j2ux/M =x F(x,v) exp- j2ux/M 其中F(x,v)=y f(x,y) exp(- j

    7、2vy/N)。根据上式推出,计算一幅图像的二维傅里叶变换可以先计算行变换再计算列变换。由定义式可推出:f(x,y)expj2(u0x+v0y)/N F(u-u0,v-v0)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

    8、,v)G(u,v)思路分析:读入所要处理的图像,用fft2函数对其进行傅立叶变换,显示变换后的频谱图以及幅度谱。验证傅立叶变换的可分离性。先对图像做一次一维傅里叶变换,对得到的结果再进行一次一维傅立叶变换,得到的结果与图像的二维傅立叶变换比较。验证傅立叶变换的平移性。先给图像补零以便于后面平移。我在图像的右侧补32列0。将图像右移16列,对其进行傅立叶变换并与变换前的幅度谱进行对比。验证傅立叶变换的旋转性。将时域图旋转90度后进行傅立叶变换,得到的结果与旋转前的幅度谱比较。验证傅立叶变换的卷积性。由于图像太大,所以我自己产生了一个6464的黑白图,用conv2函数让这个黑白图与自身做卷积,得到

    9、的结果再做傅立叶变换,画出得到的频谱图。将这个黑白图补零成128128的图,对其进行傅立叶变换,再把得到的结果与自身相乘,画出得到的频谱图。比较卷积的傅立叶变换频谱图和傅立叶变换的乘积的频谱图。代码: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);Iff

    10、t=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);I

    11、fft=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(

    12、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

    13、(C,C);%C和C做卷积CFFT=fft2(C_OUT);%对生成的卷积做傅立叶变换 figure(8);subplot(121);imshow(CFFT);%显示卷积的傅立叶变换title(卷积的傅立叶变换);%给图像矩阵补零D=zeros(128,128);%生成128128的零矩阵D(1:64,1:64)=C;%零矩阵的左上角放置图像矩阵Dfft=fft2(D);%对补零后的图像做傅立叶变换DFFT2=Dfft.*Dfft;subplot(122);imshow(DFFT2);%显示傅立叶变换的乘积title(傅立叶变换的乘积);figure(9);subplot(121);imsho

    14、w(C_OUT);title(卷积的时域图);subplot(122);imshow(ifft2(DFFT2);title(傅里叶变换乘积的时域图);第3题:实验内容及目的:用直接灰度变换改变图像(求反,增强对比度,动态范围压缩,灰度切分),显示一副灰度图像的8个位面图。实验原理:对图像求反就是将图像的灰度值翻转,变换前的灰度值与变换后的灰度值的关系如下:增强图像对比度实际是增强原图各部分之间的反差(灰度差别)。若变换前的灰度值与变换后的灰度值满足以下关系:灰度值在f1到f2之间的动态范围增加,在这个范围内的对比度增强。图像的动态范围压缩与增强对比度相反,例如:f2f1图中f1到f2内的动态范

    15、围明显减少。灰度切分与增强对比度类似,在关心的范围取较高的值。图像是由很多个像素点组成,每个像素点有一个灰度值。若一幅图像的灰度级是256,则该幅图的每个灰度值均可用一个八位的二进制数表示。将这些二进制数的第0位抽取出来就可以构成第0号平面,第1位抽取出来就可以构成第1号平面,以此类推,可将这幅图用8个位面图表示。思路分析:读入图像并将其转化为double类型。用size()函数求得图像矩阵的大小M N,生成一个MN的零矩阵Z1,利用函数y=-x+1建立Z1与图像矩阵之间的关系,将图像取反。同理利用下列函数关系建立输出矩阵与原图像之间的映射,分别实现图像的增强对比度,动态范围压缩和灰度切分。(

    16、f1=0.3,g1=0.1,f2=0.6,g2=0.8)(g=lg(f+1)(f1=0.3,g1=0.3,f2=0.6,g2=0.6)要显示一幅图像的八个位面图,首先读入图像并用size函数求得它的大小,用dec2bin()函数将图像矩阵中的元素转化为二进制数,提取每个八位二进制数的第N位,用reshape()函数将提取出的值转化为跟原图像大小相同的矩阵。N=0到7,处理后的矩阵分别对应位面图的0到7平面。代码: I=imread(girl.bmp);I=im2double(I);M N=size(I);%求反Z1=zeros(M,N);for i=1:M for j=1:N Z1(i,j)=

    17、-I(i,j)+1; endendfigure(1);subplot(121);imshow(I);title(原图);subplot(122);imshow(Z1);title(求反);%增强对比度Z2=zeros(M,N);for i=1:M for j=1:N if I(i,j)=0.3 Z2(i,j)=1/3*I(i,j); else if I(i,j)=0.6 Z2(i,j)=7/3*I(i,j)-0.6; else Z2(i,j)=1/2*I(i,j)+1/2; end end endendfigure(2);subplot(121);imshow(Z2);title(增强对比度)

    18、;%动态范围压缩Z3=zeros(M,N);for i=1:M for j=1:N Z3(i,j)=log10(I(i,j)+1); endendsubplot(122);imshow(Z3);title(动态范围压缩);%灰度切分Z4=zeros(M,N);for i=1:M for j=1:N if I(i,j)0.3 Z4(i,j)=I(i,j); else if I(i,j)=0.6 Z4(i,j)=0.6; else Z4(i,j)=I(i,j); end end endendfigure(3);imshow(Z4);title(灰度切分); %X=imread(girl.bmp);

    19、%读入图像p,k=size(X);%求得矩阵维度Z=dec2bin(X);%将矩阵元素转化为二进制数%将一维数组转化为pk的二维矩阵%n到n7分别对应0平面到7平面的图m0=reshape(Z(:,8),p,k);n0=1.*m0;m1=reshape(Z(:,7),p,k);n1=2.*m1;m2=reshape(Z(:,6),p,k);n2=4.*m2;m3=reshape(Z(:,5),p,k);n3=8.*m3;m4=reshape(Z(:,4),p,k);n4=16.*m4;m5=reshape(Z(:,3),p,k);n5=32.*m5;m6=reshape(Z(:,2),p,k)

    20、;n6=64.*m6;m7=reshape(Z(:,1),p,k);n7=128.*m7;%显示各个位面图figure(1);subplot(121);imshow(n0,);subplot(122);imshow(n1,);figure(2);subplot(121);imshow(n2,);subplot(122);imshow(n3,);figure(3);subplot(121);imshow(n4,);subplot(122);imshow(n5,);figure(4);subplot(121);imshow(n6,);subplot(122);imshow(n7,);调试:第4题:

    21、实验内容及目的:编写一副灰度图像的DCT变换,walsh变换,以及小波变换的结果,分别显示原始图像与变换后的图像。实验原理:离散傅立叶变换在边界容易产生块效应,离散余弦变换DCT的思想通过对信号的边界进行对称后周期延拓再傅里叶变换,减少了边界效应。二维DCT正变换核表达式:二维DCT变换对:哈达玛矩阵的每一行或每一列都是一正交码组,沃尔什矩阵将哈达玛矩阵中行的次序按+1和-1交变次数的多少重新排列。沃尔什变换对:二维离散小波变换分为二维离散小波分解和二维离散小波重构。二维离散小波分解是将图像分解成低频图像与对角细节图像,二维离散小波重构则是基于分解的结果得到原始图像。二维离散小波的快速算法通过

    22、一组低通滤波器和高通滤波器,对行、列分别进行滤波实现。常用的Haar小波变换:思路分析:离散余弦变换可以用dct2()函数实现,沃尔什变换我写了一个dht2()函数实现。在dht2函数中,首先将输入的图像转化为double类型。求得输入图像的大小,便于产生与其大小相等的哈达玛矩阵。进行沃尔什变换要用到沃尔什矩阵。由沃尔什矩阵与哈达玛矩阵的关系将哈达玛矩阵排序成沃尔什矩阵。设置一个num列向量来记录哈达玛矩阵每行正交变换次数,然后根据该列向量得到沃尔什矩阵,最后用变换公式得到变换后的图像。小波变换直接调用dwt2()函数即可。代码:clear all;close all;I=imread(gir

    23、l.bmp); %读入图像Q=im2double(I); %将图像转化为double类型figure(1);subplot(121);imshow(I); %显示原始图像title(原始图像); Idct=dct2(Q); %对图像做离散余弦变换subplot(122);imshow(Idct); %显示变换后的图像title(离散余弦变换后的频谱图); Idht=dht2(Q); %对图像做离散沃尔什变换figure(2);imshow(Idht); %显示沃尔什变换的频谱图title(离散沃尔什变换后的频谱图);A,H,V,D=dwt2(Q,haar);%Haar小波变换AHVD=A H;

    24、V D;%小波分解图像矩阵figure(3);subplot(121);imshow(AHVD,);%显示分解图像%function Z=dht2(X)%函数输入:%X:输入图像(N,N)的矩阵,N为2的整数次幂,数据类型为double%函数输出:%Z:输出的频域图像矩阵,大小为(N,N),数据类型为double%函数描述%函数将输入的矩阵进行二维DHT变换N M=size(X);%求得图像大小H=hadamard(N);%生成NN的哈达玛矩阵A=H*X*H/N/N;%对图像进行哈达玛变换 %将得到的矩阵行的次序按正负交变次数排序,完成沃尔什变换W=zeros(N);num=zeros(N,1

    25、);%记录每行正负交变次数for m=1:N for k=1:N-1 if(A(m,k)*A(m,k+1)=-1)%判断数据是否发生正负交变 num(m)=num(m)+1; end endendfor p=N:1 W(p,:)=A(find(num=max(num),:);%根据累计矩阵的值排序 num(find(num=max(num)=-1;endZ=W;end调试:纠错后:function Z=dht2(X)%函数输入:%X:输入图像(N,N)矩阵,N为2的整数次幂数据类型为double%函数输出:%Z:输出的频域图像矩阵,尺寸为(N,N),数据类型为double%函数描述:%函数将输

    26、入的矩阵进行二维DHT变换X=im2double(X);%将图像转化为double类型N M=size(X);%求得图像大小H=hadamard(N);%生成NN的哈达玛矩阵W=zeros(N);%生成NN的零矩阵num=zeros(N,1);%记录哈达玛矩阵每一行正交变换次数for m=1:N for k=1:N-1 if(H(m,k)*H(m,k+1)=-1) num(m)=num(m)+1; end endend%根据记录矩阵的值对哈达玛矩阵进行排序for p=1:N W(p,:)=H(find(num=max(num),:); num(find(num=max(num)=-1;endW=flipud(W);%矩阵上下颠倒Z=W*X*W/N;end结果:第5题:实验内容及目的:编程实现均值,中值,最大值滤波,编程实现各个高通滤波的各种算子的边缘检测实验原理:中值滤波将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。中值滤波器是一种非线性平滑滤波器,既可消除噪声又可保持图象的细节。它的工作步骤如下:(1) 将模板在图中漫游,并将模板中心与图中某个象素位置重合;(2) 读取模板下各对应象素的灰度值;(3) 将这些灰度值从小到大排成1列;(4) 找出这些值里排在中间的1个; (5) 将这个中间值赋给对应模板中心位置的象素 。均值滤波:用像素领域内的均值代替


    注意事项

    本文(中国地质大学数字图像处理报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开