数字图像处理课程作业实验报告_第1页
数字图像处理课程作业实验报告_第2页
数字图像处理课程作业实验报告_第3页
数字图像处理课程作业实验报告_第4页
数字图像处理课程作业实验报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE30研究生课程:数字图像处理课程作业实验报告实验名称:ImageInterpolation实验编号:Proj02-01摘要:本实验采用双线性插值技术对图像进行缩放,实验的原理是来源于数值分析中的插值问题。双线性插值算法是一种比较好的图像缩放算法,它充分的利用了源图中虚拟点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,因此缩放效果比较好。

实验内容概述关于编程的一点说明:

本课程实验的主要目的如下:(1)掌握图像处理的基本方法与步骤,(2)帮助学生建立图像处理技术解决问题的感性概念,以及解决问题的软件原型。最后,需要说明的是,完成本课程实验所需要的编程环境可以是C++等常规的程序开发环境,也可以是包含有已经存在的具有可扩展能力的函数集合组成的集成编程环境。最典型的例子是MATLAB的图像处理工具箱(ImageProcessingToolbox,IPT)编程环境。建议实验中使用后一种类型的集成编程环境。

下面是具体的实验题目及其说明:ProjectNo.TitleProj02-01ImageInterpolation(图像线性插值)Proj02-02ReducingtheNumberofGrayLevelsinanImage.(在图像中减少灰度级的数量)Proj03-02HistogramEqualization.(直方图均衡化)Proj03-05EnhancementUsingtheLaplacian.(使用拉普拉斯算子的图像增强)Proj04-01Two-DimensionalFastFourierTransform.(二维快速付立叶变换),FourierSpectrumandAverageValue.(付立叶谱和平均值)LowpassFiltering.(低通滤波)Proj05-02NoiseReductionUsingaMedianFilter.(噪声去除的中值滤波方法)Proj05-04ParametricWienerFilter.(参数维纳滤波)Proj06-02Pseudo-ColorImageProcessing.(图像的伪彩色处理)Proj07-02Two-dimensionalDiscreteWaveletTransforms.(二维离散小波变换)WaveletTransformModifications.(小波变换系数修改)Proj10-03OptimumThresholding.(最优阈值)PROJECT02-01(ImageInterpolation)(a)编写一个线性插值程序,将64*64大小的图像插值为256*256的图像,并与matlab的imresize函数的结果相比较;(b)图像变换函数采用仿射变换,图像x和y方向都放大4倍,并逆时针旋转15度,未定义区域赋值0。一、技术论述对于双线性插值算法,首先进行初始化,读取所要缩放的图像,获取目标大小64*64,以及目标像素点的横坐标和纵坐标,然后根据所提供的公式算法逐点做双线性内插,根据双线性插值算法的思路(即目标图像中的像素值由原图像中在空间位置上最接近的四个像素值按照特定的公式:S=(a)(b)S1+(1-a)(b)S2+(a)(1-b)S3+(1-a)(1-b)S4进行计算)对目标图像点计算相应的a、b、S1、S2、S3、S4,然后根据上述公式计算出该像素点的值,最后显示图像效果。二、实验结果与讨论2.1实验结果展示(a)效果展示(b)效果展示2.2讨论双线性插值算法在放大图像的过程中虽然会损失部分像素点,可图像的清晰度还是很高的,所以双线性插值算法可以广泛应用在图像变形、计算机动画等领域。附录%%读入图像I=imread('Fig.jpg');%%获取图像的尺寸[rows,cols]=size(I);%%初始化要缩放的参数width=1024;height=1024;%创建输出图像矩阵Out=uint8(zeros(width,height));widthScale=rows/width;heightScale=cols/height;%%循环处理forx=6:width-6%6是为了防止矩阵超出边界溢出fory=6:height-6oldX=x*widthScale;%oldX,oldY为原坐标,x,y为新坐标oldY=y*heightScale;if(oldX/double(uint16(oldX))==1.0)&(oldY/double(uint16(oldY))==1.0)Out(x,y)=I(int16(oldX),int16(oldY));%若oldX,oldY为整数,直接赋值elsea=double(uint16(oldX));b=double(uint16(oldY));x11=double(I(a,b));%x11赋值为I(a,b)x12=double(I(a,b+1));%x12赋值为I(a,b+1)x21=double(I(a+1,b));%x21赋值为I(a+1,b)x22=double(I(a+1,b+1));%x22赋值为I(a+1,b+1)Out(x,y)=uint8((b+1-oldY)*((oldX-a)*x21+(a+1-oldX)*x11)+(oldY-b)*((oldX-a)*x22+(a+1-oldX)*x12));%用双线性插值计算公式计算endendend%%显示输入和输出图像imshow(I);figure;imshow(Out);%%结束研究生课程:数字图像处理课程作业实验报告实验名称:ReducingtheNumberofGrayLevelsinanImage实验编号:Proj02-02摘要:在图像的灰度处理中,增强操作、直方图及图像间的变换是实现点操作的增强方式,又被称作灰度变换。灰度级数是指黑白显示器中显示像素点的亮黑差别,在彩色显示器中表现为颜色的不同,灰度级数越多,图像层次越清楚逼真。PROJECT02-02(ReducingtheNumberofGrayLevelsinanImage)(a)编写一个以2的幂次方将给定图像的灰度级数从256减少到2的程序。图像的灰度级数以参数变量的形式传递到所编写的程序中。(b)使用图2.21(a)以(a)中编写的程序生成图2.21所示的各个结果。一、实验结果与讨论1.1实验结果展示(a)效果展示(2)(3)(4)(5)(6)(7)(8)1.2讨论从实验结果中可以看到灰度级减少,图像变得清晰了,灰度级值越小效果越明显。附录%I为输入图像,gray_level为灰度级256,128,64...%img_gray为输出图像functionimg_gray=reduce_gray(I,gray_level)m=256/gray_level;[width,height]=size(I);img_gray=zeros(width,height);fori=1:widthforj=1:heightimg_gray(i,j)=floor(I(i,j)/m);endend研究生课程:数字图像处理课程作业实验报告实验名称:HistogramEqualization实验编号:Proj03-02摘要:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法,这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以拥有增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。PROJECT03-02(HistogramEqualization)(a)编写一个计算图像直方图的程序。(b)实现在3.3.1节中讨论的直方图均衡化技术。(c)对图3.8(a)进行直方图均衡化增强。本实验报告中至少应包括:原始图像,原始图像的直方图,直方图均衡化变换函数图,增强后的图,增强后图像的直方图。用上述实验数据解释结果图像被增强的原因。一、实验结果与讨论1.1实验结果展示原图1.2讨论为了得到实验效果,要进行以下几个步骤:统计原图像素每个像素的个数;统计图像每个灰度级的像素的积累个数;灰度级的映射规则,将原图每个像素点的灰度映射到新图。从图像效果中可以看到,均衡化后的各灰度级更加均衡,接近理想值。同时对于灰度范围小,直方图分布极不均匀的图像,可人为的扩大灰度范围,均衡化后能取得较好的层次感,使图像信息变得更清晰。附录functionHIST=hist_1(imgName)IMG=imread(imgName);figure,imshow(IMG);title('原图');HIST=zeros(256,1);fori=0:255HIST(i+1)=length(find(IMG==i))%计算灰度级的直方图;endHIST=HIST/(size(IMG,1)*size(IMG,2));%计算灰度级的概率密度figure,bar(0:255,HIST,'r');title('原图像直方图');%%直方图均衡化S1=zeros(1,256);fori=1:256forj=1:iS1(i)=HIST(j)+S1(i);%计算S1endendS2=round((S1*256)+0.5);%讲S1约等于相近临的灰度级fori=1:256HIST_2(i)=sum(HIST(find(S2==i)));%计算现有的灰度级出现的概率endfigure,bar(0:255,HIST_2,'g');title('均衡化后的直方图')%%图像均衡化IMG_1=IMG;fori=0:255IMG_1(find(IMG==i))=S2(i+1);%给图像重新赋均衡化后的灰度级endfigure,imshow(IMG_1);title('均衡化后的图像')研究生课程:数字图像处理课程作业实验报告实验名称:EnhancementUsingtheLaplacian实验编号:Proj03-05摘要:图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,拉普拉斯算子是一种在图像锐化处理中很重要的算法,是与一个边缘方向无关点检测算子。它对孤立像素的响应要比边缘或线的响应更强烈,因此使用该算子进行图像锐化之前要进行图像平滑处理。PROJECT03-05(EnhancementUsingtheLaplacian)(a)使用在实验03-03和03-04中开发的程序实现公式(3.7-5)描述的拉普拉斯增强技术,其中的模板使用图3.39(d)所示的掩模。(b)使用课本图3.40(a)用(a)中的程序实现课本图3.40中的结果。一、技术论述

拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义为:

为了更适合于数字图像处理,将该方程表示为离散形式:

另外,拉普拉斯算子还可以表示成模板的形式,如图5-9所示。图5-9(a)表示离散拉普拉斯算子的模板,图5-9(b)表示其扩展模板,图5-9(c)则分别表示其他两种拉普拉斯的实现模板。从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。同梯度算子一样,拉普拉斯算子也会增强图像中的噪声,有时用拉普拉斯算子进行边缘检测时,可将图像先进行平滑处理。

图像锐化处理的作用是使灰度反差增强,从而使模糊图像变得更加清晰。图像模糊的实质就是图像受到平均运算或积分运算,因此可以对图像进行逆运算,如微分运算能够突出图像细节,使图像变得更为清晰。由于拉普拉斯是一种微分算子,它的应用可增强图像中灰度突变的区域,减弱灰度的缓慢变化区域。因此,锐化处理可选择拉普拉斯算子对原图像进行处理,产生描述灰度突变的图像,再将拉普拉斯图像与原始图像叠加而产生锐化图像。拉普拉斯锐化的基本方法可以由下式表示:

二、实验结果与讨论2.1实验结果展示(b)图像效果展示2.2讨论从(b)图像效果中,可以看出拉普拉斯模板对该图像滤波后的结果。由图可以看出,将原始图像通过拉普拉斯变换后增强了图像中灰度突变处的对比度,使图像中小的细节部分得到增强并保留了图像的背景色调,使图像的细节比原始图像更加清晰。附录clc;YS_IMG=imread('Fig3.40(a).jpg');figure,imshow(YS_IMG);title('原图');b=size(YS_IMG);YS_IMG=double(YS_IMG);g=[121;242;121;];M_IMG=zeros(b);fori=2:b(1)-1forj=2:b(2)-1M_IMG(i,j)=YS_IMG(i,j)*g(2,2)+YS_IMG(i+1,j)*g(3,2)+YS_IMG(i,j+1)...*g(2,3)+YS_IMG(i+1,j+1)*g(3,3)+YS_IMG(i+1,j-1)*g(3,1)+YS_IMG(i-1,j+1)...*g(1,3)+YS_IMG(i-1,j-1)*g(1,1)+YS_IMG(i-1,j)*g(1,2)+YS_IMG(i,j-1)...*g(2,1);end;end;M_IMG=mat2gray(M_IMG/16);f=[111;1-81;111;];%八邻域滤波器模板;F_IMG=zeros(b);fori=2:b(1)-1forj=2:b(2)-1F_IMG(i,j)=M_IMG(i,j)*f(2,2)+M_IMG(i+1,j)*f(3,2)+M_IMG(i,j+1)*f(2,3)...+M_IMG(i+1,j+1)*f(3,3)+M_IMG(i+1,j-1)*f(3,1)+M_IMG(i-1,j+1)*f(1,3)+...M_IMG(i-1,j-1)*f(1,1)+M_IMG(i-1,j)*f(1,2)+M_IMG(i,j-1)*f(2,1);end;end;F_IMG=mat2gray(F_IMG);figure,imshow(F_IMG);title('锐化后的图像');%图像增强;Z_IMG=zeros(b);fori=2:b(1)-1forj=2:b(2)-1Z_IMG(i,j)=YS_IMG(i,j)+F_IMG(i,j);end;end;研究生课程:数字图像处理课程作业实验报告实验名称:Two-DimensionalFastFourierTransformFourierSpectrumandAverageValueLowpassFiltering实验编号:Proj04-01摘要:傅里叶变换作为数字图像处理技术的基础,通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析。使用Matlab在数字图像处理和傅里叶变换计算上的使用,编程实现了其变换功能。PROJECT04-01(Two-DimensionalFastFourierTransform)该实验的目的是开发一个2-DFFT程序包,以用于后续的几个其它实验。要求程序能完成下面的功能:(a)用因子(-1)x+y乘以输入图像,以实现滤波的中心化变换;(b)用一个实矩阵乘以一个复数矩阵,即用实矩阵中的元素同时乘以复数矩阵对应位置上的复数的实部与虚部。可以通过调用两个图像的乘法程序来实现对应元素的相乘;(c)计算反付立叶变换;(d)结果乘以(-1)x+y,并取其实部;(e)计算频谱。该实验主要实现图4.5。若试验中使用MATLAB,则要求付立叶变换程序不局限于尺寸为2的整数次幂的图像。如果FFT程序是你自己编写的,则程序可以仅仅处理尺寸为2的整数次幂的图像。为此,实验中需要用到在实验02-04中的程序,以便将输入图像缩放到合适的尺寸,然后进行处理。一、实验结果与讨论1.1实验结果展示(a)经过傅里叶变化实现中心化的效果图低通滤波处理图像效果图1.2讨论从实现效果中可以看到,通过反傅里叶变换,图像基本保持原样,没有失真;低通滤波器处理图像去噪,在滤除了集中在高频信息中的噪声,同时也会造成高频细节中的边缘、轮廓和纹理信息的丢失。附录orginImg=imread('image_thumb_6.png');figure,imshow(orginImg);title(‘原始图像’);orginImg=rgb2gray(orginImg);%orginImg=double(orginImg);[m,n]=size(orginImg);fori=1:mforj=1:norginImg(i,j)=orginImg(i,j)*((-1)^(i+j));endendorginImg=fft2(abs(orginImg));figure,imshow(orginImg,[]);title(‘中心变换图’);orginImg=real(ifft2(orginImg));figure,imshow(orginImg,[]);title(‘反傅里叶变换中心变化图’);I=imread('Fig4.11(a).jpg');%读取图像figure,imshow(I);[M,N]=size(I);s=lowpassFiltering(I,M/2,N/2);figure,imshow(I-s);function[output]=lowpassFiltering(I,x,y)%将灰度图像的二维不连续Frourier变换的零频率成分移到频谱的中心s=fftshift(fft2(I));[M,N]=size(s);%分别返回s的行数到M中,列数到N中%GLPF滤波,d0=5,15,30(程序中以d0=30为例)d0=30;%初始化d0fori=1:Mforj=1:Nd=sqrt((i-x)^2+(j-y)^2);%点(i,j)到傅立叶变换中心的距离h=1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数s(i,j)=h*s(i,j);%GLPF滤波后的频域表示endends=ifftshift(s);%对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));figure,imshow(s);title('GLPF滤波');%为经GLPF滤波后的图像添加标题output=s;End研究生课程:数字图像处理课程作业实验报告实验名称:NoiseReductionUsingaMedianFilter实验编号:Proj05-02摘要:在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用,保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。PROJECT05-02(NoiseReductionUsingaMedianFilter)(a)修改在实验03-04中编写的程序,实现3x3中值滤波。(b)给图5.7(a)添加Pa=Pb=0.2的椒盐噪声。(c)对(b)中得到的图像进行中值滤波。说明实验结果与图5.10(b)的主要差异。一、技术论述二、实验结果与讨论2.1实验结果展示(c)实验效果图2.2讨论在原图中加入噪声后,经过中值滤波器的处理,我们可以看到图像效果跟原图比较,基本上是一样的,说明中值滤波器对于图像平滑处理效果是不错的。附录I=imread('c4.jpg');I=rgb2gray(I);J=imnoise(I,'salt&pepper',0.02);subplot(231),imshow(I);title('原图');subplot(232),imshow(J);title('加入噪声后的图像');k1=medfilt2(J);%进行3*3模板中值滤波subplot(233),imshow(k1);title('中值滤波后的图像');研究生课程:数字图像处理课程作业实验报告实验名称:ParametricWienerFilter实验编号:Proj05-04摘要:图像回复技术是图像处理领域一类非常重要的处理技术,与图像增强等其他基本图像处理技术类似,也是以获取视觉质量某种程度的改善为目的。维纳滤波恢复运动模糊图像的效果是比较好的,它是假设图像信号可以近似看成平稳随机过程的前提下,按照使输入图像和恢复图像之间的均方误差达到最小的准则函数来实现图像恢复的方法。PROJECT05-04(ParametricWienerFilter)(a)编写程序实现公式(5.6-11)所示的污损滤波;(b)如图5.26(b)所示,对图像5.26(a)进行+45o方向,T=1的污损滤波;(c)对污损后的图像加入均值为0,方差为10个像素的高斯噪声;(d)编写程序使用公式(5.8-3)所示的参数维纳滤波对图像进行恢复。一、技术论述最小二乘方滤波也就是维纳滤波。它是使原始图像f(x,y)及其恢复图像^f(x,y)之间均方误差最小的恢复方法。g(x,y)=∫∫h(x-α,y-β)f(α,β)dαdβ+n(x,y)给定了g(x,y),并不能精确求解出f(x,y)。在此只能找到一个估算值^f(x,y),使得均方误差式e2=E{[f(x,y)]-^f(x,y)]2}最小,其中^f(x,y)叫做给定g(x,y)时f(x,y)的最小二乘方估计。最小二乘方滤波器的传递函数表示形式M(u,v)=1/h(u,v)·|H(u,v)2|2/|H(u,v)2|2+Γ式中,Γ是噪声对信号的功率密度比,它近似为一个适当的常数。二、实验结果与讨论2.1实验结果展示原图(2)运动后模糊图像效果(3)添加噪声模糊的图像效果(4)维纳滤波复原图像效果2.2讨论我们可以从效果中看到,对运动迷糊的图像,经过维纳滤波处理效果还是非常明显的,可是对于椒盐噪声几乎没有抑制作用。附录f=imread('5.26(b).jpg');subplot(221),imshow(f);disp=30;theta=45;psf=fspecial('motion',disp,theta);mf=imfilter(f,psf,'circular','conv');subplot(222),imshow(mf);noise=imnoise(f,'gaussian',0,10);mfn=mf+noise;subplot(223),imshow(mfn,[]);nsr=sum(noise(:).^2)/sum(mf(:).^2);subplot(224),imshow(deconvwnr(mfn,psf,nsr),[]);研究生课程:数字图像处理课程作业实验报告实验名称:Pseudo-ColorImageProcessing实验编号:Proj06-02摘要:伪彩色图像处理是将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布图像。由于人眼对彩色的分辨能力远远高于灰度的分辨能力,所以将灰度图像转化成彩色表示,就可以提高对图像细节的辨别力。因此,伪彩色处理的主要目的是为提高人眼对图像细节的分辨能力,以达到图像增强的目的。PROJECT06-02(Pseudo-ColorImageProcessing)(a)编写程序实现图6.23,程序的输入为图像中指定的两个灰度级范围。程序的输出为RGB格式图像,其中,一个灰度级范围显示为指定的彩色,其余的像素以RGB形式显示为与输入图像对应像素相同的灰度色。可以将输入颜色限定为图6.4(a)中的所有颜色。(b)用上述程序对图1.10(4)进行处理,要求使河流呈现为黄色,其余区域像素与原输入图像灰度保持一致。在结果图像中一些孤立区域一般也会呈现黄色,因此需要选取合适的灰度级范围,使这样的区域尽可能少。一、实验结果与讨论1.1实验结果展示(b)图像效果展示1.2讨论从效果图中可以看到,河流已经呈现为黄色,其他区域没有没有变化,但是对于一些小区域还是看到有一小部分黄色。附录I=imread('6.4(a).jpg');figure,imshow(I);title('原图')I=double(I);[m,n]=size(I);level=256;fori=1:mforj=1:nifI(i,j)<level/4R(i,j)=0;G(i,j)=4*I(i,j);B(i,j)=level;elseifI(i,j)<=level/2R(i,j)=0;G(i,j)=level;B(i,j)=-4*I(i,j)-2*level;elseifI(i,j)<=3*level/4R(i,j)=4*I(i,j)-2*level;G(i,j)=level;B(i,j)=0;elseR(i,j)=level;G(i,j)=-4*I(i,j)+4*level;B(i,j)=0;endendendendendfori=1:mforj=1:nG2C(i,j,1)=R(i,j);G2C(i,j,1)=G(i,j);G2C(i,j,1)=B(i,j);endendG2C=G2C/256;figure,imshow(G2C,[]);title('伪彩色图像')研究生课程:数字图像处理课程作业实验报告实验名称:Two-dimensionalDiscreteWaveletTransformsWaveletTransformModifications实验编号:Proj07-02摘要:本次试验的目的在于利用MATLAB程序实现二维离散小波变换,并对小波系数矩阵进行重构,加深对二维小波分解和重构的认识,提高编程能力。PROJECT07-02(Two-dimensionalDiscreteWaveletTransforms)(a)用实验07-01中的程序开发一个计算哈尔小波的j-尺度二维DWT程序。该实验例程的理论基础是课本7.5节中讨论的可分离小波和二维小波变换理论。(b)对图像7.1进行如图7.8(a)所示的哈尔小波3-尺度二维DWT。结果中注明变换尺度的细节和近似系数。(c)编写一个计算哈尔小波的二维逆DWT程序,用它重构(b)中小波分解结果的原始图。(d)编写一个标定(b)中DWT系数的程序,使细节系数的结构更易可视化。近似系数不需要标定。一、实验结果与讨论1.1实验结果展示1.2讨论开始使用给定的目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论