当前位置:文档之家› 数字图像处理课程设计报告

数字图像处理课程设计报告

数字图像处理课程设计报告
数字图像处理课程设计报告

本科综合课程设计报告

题 目 ____________________________

指导教师__________________________

辅导教师__________________________ 学生姓名__________________________ 学生学号__________________________

_______________________________

院(部)____________________________专业________________班

___2008___年 _12__月 _30__日

数字图像处理演示系统

信息科学与技术学院 通信工程 052

1 主要内容

1.1数字图像处理背景及应用

数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。

1.2 图像处理演示系统设计要求

能加载和显示原始图像,显示和输出处理后的图像;

系统要便于维护和具备可扩展性;

界面友好便于操作;

1.3 图像处理演示系统设计任务

数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。

1.3.1几何变换

几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。简单的说,几何变换可以改变像素点所在的几何位置,以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。实际上,一个不受约束的几何变换,可将输入图像的一个点变换到输出图像中的任意位置。几何变换不仅提供了产生某些特殊图像的可能,甚至还可以使图像处理程序设计简单化。从变换性质来分可以分为图像的位置变换、形状变换等

1.3.2图像增强

图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”的信息,削弱或去除不需要的信息,以达到扩大图像中不同物体特征之间的差别,使处理后的图像对于特定应用而言,比原始图像更合适,或者为图像的信息提取以及其他图像分析技术奠定了基础。一般情况下,经过增强处理后,图像的视觉效果会发生改变,这种变化意味着图像的视觉效果得到了改善,某些特定信息得到了增强。

2 设计思想:

2.1 图像处理演示系统实现工具的选择

使用MATLAB软件进行界面设计及程序编写。

2.2 选择MATLAB软件原因

之所以选择MA TLAB工具是因为:MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MA TLAB 中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MA TLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

2.3 系统结构框图

3 图形用户界面设计

GUI是实现人机交互的中介,可以通过它实现数据输入、处理和输出。MA TLAB提供了一个专门的GUI设计工具——图形用户界面开发环境(GUIDE),使用该工具,可以快速完成GUI设计任务。利用MATLAB提供的有关数据,还可以创建工具栏控件和多种对话框。

3.1启动GUIDE

在命令窗口中键入guide,启动GUIDE,显示如下图所示的“GUIDE Quick Start”对话框。

打开“GUIDE Quick Start”对话框,利用GUIDE 模板创建新的GUI,选择一个模板后,单机OK 按钮,在输出编辑器中打开GUI。如下:

3.2 输出编辑器

在GUIDE中打开GUI以后,它显示在输出编辑器中。输出编辑器是所有GUIDE工具的控制面板。

可以通过拖拉控件来设计GUI,这些控件位于输出编辑器左侧的工具箱中,有按钮、弹出式菜单和坐标系等多种。也可以用输出编辑器设置GUI控件的基本属性。

3.3 GUIDE模板

“GUIDE Quick Start”对话框提供了几种基本类型的GUI模板。使用模板的好处是可以通过改模板来快速创建GUI。选择一种模板以后,它的预览效果显示在右面的面板中。

3.4 菜单编辑器

利用菜单编辑器,可以创建、设置、修改下拉式菜单和弹出式菜单。在GUIDE中单机工具栏上的按钮,或者选择“Tools”菜单中的“Menu Editor…”选项,打开菜单编辑器的界面,如下图所示:

上图中左上角第一个按钮用于创建下拉式菜单。用户可以通过单击它来创建下拉式主菜单。第二个按钮用于创建下拉式主菜单的子菜单

运行后效果如下:

最终GUI运行效果图如下:

首次运行后会自动生成zhankeUI.m和zhankeUI.fig两个文件,默认目录设在MA TLAB安装目录下的work文件夹里,zhankeUI.m中存放的是GUI的相关编码,以及相关控件的回调函数,今后可以对其进行代码修改,添加,删除等操作,zhankeUI.fig是GUI的界面文件。今后主要是对zhankeUI.m文件里面代码的相关操作以实现相关功能!

4 图像处理演示系统各功能的实现

4.1文件的打开与保存

4.1.1文件的打开

在主菜单“文件”的下拉菜单中,有个“打开”选项,在其回调函数中添加打开某个文件的相关代码:

[fname,pname]=uigetfile('*.bmp;*.jpeg;*.gif', 'Open the file')

fname为将要打开文件的文件名,pname为将要打开文件的路径。Uigetfile函数中主要有两部分参数'*.bmp;*.jpeg;*.gif'是想要打开文件的格式,’Open the file’是生成文件选择打开对话框的标题,此段代码运行效果如下:

图 4.1.1 打开一幅图像

从上图中选择需要进行操作的文件,将其打开以便后续操作…

图4.1.2 打开一幅图像后在界面窗口显示

在‘打开’回调函数中我希望同时对文件进行相关数据的读取,以便在今后的处理操作中可以方便的调用,读取完图像数据后在窗口中显示图像,相关代码如下:V=strcat(pname,fname); %将图像赋值给变量V

handles.my_data1=V

guidata(hObject,handles) %更新句柄数据

axes(handles.axes7) %添加一坐标轴用来指定显示图像的区域

imshow(V) %显示选取的图像

当执行以上代码时会有一种情况出现错误,那就是当我们进行“打开”文件操作时候,如上图 Open,在这里当我们没有选择文件,而将窗口强行关闭或选择了程序无法识别的文件格式时,命令窗口会提示错误,所以加入如下代码进行处理:

if fname < 5

return

end

对打开的文件名长度进行判断,确定有文件打开时会进行下面的操作,当没有文件时退出,整个回调函数如下:

[fname,pname]=uigetfile('*.bmp;*.jpeg;*.gif','Open the file')

L=length(fname)

if fname < 5

return

end

V=strcat(pname,fname);

handles.my_data1=V

guidata(hObject,handles)

axes(handles.axes7)

imshow(V)

4.1.2文件的保存

[newfile,newpath]=uiputfile(‘*.bmp’,’Save file name’)

准备把当前文件*.bmp保存到当前目录下,文件保存对话框中列出当前目录下的所有文件,保存的文件名和路径名保存到newfile和newpath中。

4.2 图像的增强

4.2.1 图像的平滑滤波处理

1)平滑滤波的作用:

对图像的高频分量进行消弱或消除,增强图像的低频分量。平滑滤波一般用于消除图像中的随即噪声,从而起到图像平滑的作用

2)平滑滤波原理:

(1)邻域平均滤波法

邻域平均滤波法是将一个像素点及其邻域中的所有像素点的平均值赋给输出图像中相应的像素点,从而达到平滑的目的,又称均值滤波法。最简单的邻域平均滤波法是所有模板系数都取相同的值.

邻域平均滤波法的运算公式为:

g(x,y)=1/N ∑f(i.j) x,y=0,1,2,…,N-1

j=∈M

其中,M是以(x,y)为中心的邻域像素点的集合,N是该邻域内像素点的总个数,对每个像素点按该公式进行计算即可得到增强图像中所有像素点的灰度值。

(2)中值滤波法

尽管邻域平均滤波法可以起到平滑图像的作用,但在消除噪声的同时会使图像中的一些细节变得模糊。中值滤波法则在消除噪声的同时还能保持图像中的细节部分,防止图像的边缘部分模糊。

与邻域平均法不同,中值滤波是将邻域内所有的像素点值按从小到大的顺序排列,取中间值作为中心像素点的输出值。其原理是利用一个奇数点的移动窗口,将窗口中心点的值用窗口各点的中间值代替,与均值滤波不同,它不是通过对邻域内的所有像素点求平均值来消除噪声的,而是让与周围像素点灰度值的差比较大的像素点改取近似于周围像素点灰度值的值。从而达到消除噪声的目的。

3)实现方法:

采用邻域平均法对图像进行处理,实现方法如下:

for i=2:w-1

forj=2:h-1

I_1(i,j)=uint8((double(I(i-1,j-1))+double(I(i-1,j))+double(I(i-1,j+1))+double(I (i,j-1))+double(I(i,j))+double(I(i,j+1))+double(I(i+1,j-1))+double(I(i+1,j))+do uble(I(i+1,j+1)))/9);

end

end

采用中值滤波法对图像进行处理,其实现方法如下:

for i=2:w-1

for j=2:h-1

for m=1:3

for n=1:3

hhh((m-1)*3+n)=I(i+m-2,j+n-2);

end

end

for p=1:9

for q=p+1:9

if(hhh(p)>hhh(q))

temp=hhh(p);

hhh(p)=hhh(q);

hhh(q)=temp;

end

end

end

I_2(i,j)=hhh(5);

end

end

图4.2.1 图像空域的平滑滤波处理结果

4.2.2图像的锐化滤波处理

1) 锐化滤波的作用:

图像的平滑处理会使图像的边缘纹理信息受到损失,图像变得比较模糊。如果需要突出图像的边缘纹理信息,则可以通过锐化滤波器实现,它可以消除或减弱图像的低频分量从而增强图像中物体的边缘轮廓信息,使得除边缘以外的像素点的灰度值趋向于零。

2)锐化滤波原理

锐化滤波器是以对图像的微分运算或差分运算为基础。微分运算是求像素点灰度值的变化率,而图像内不同物体边缘处的像素点的灰度值往往变化比较明显,因此微分运算或差分运算可以起到增强边缘信息的作用。

锐化算子:

0 -1 0

H = -1 4 -1

0 -1 0

3)实现方法:

for i=1:m-2

for j=1:n-2

b(i+1,j+1)=abs(4*x(i+1,j+1)-x(i,j+1)-x(i+1,j)-x(i+1,j+2)-x(i+2,j+1));

end

end

图4.2.2 模板锐化滤波结果

4.3 图像的几何变换

4.3.1 对图像进行平移

1)图像平移的作用:

将图像中的某点从一个位置(X,Y)移动到另外一个位置(X0,Y0),而使平移后的图像与原始图像完全相同。

2)图像平移原理:

图像的平移是图像变换中最简单的变换之一,其特点是平移后的图像与原图像完全相同,平移后新图像上的每一个点都可以在原图像中找到对应的点。

若点A0(X0,Y0)进行平移后,被移到A(X,Y),其中X方向的平移量为△X.Y方向的平移量为△Y,那么点A(X,Y)的坐标为:

X=X0+△X

Y=Y0+△Y

操作中需要输入平移的横纵量,变量的输入代码如下

prompt={'请输入横向平移量?'};

title='';

ansa=inputdlg(prompt,title);

x1=str2num(ansa{1});

handles.my_data4=x1;

prompt={'请输入纵向平移量'};

title='';

ansa=inputdlg(prompt,title);

y1=str2num(ansa{1});

handles.my_data5=y1;

guidata(hObject,handles)

%上段代码中的x1,y1即为需要输入的横向平移量与纵向平移量

执行后出现如图界面:

3)实现方法:

for x=1:w

for y=1:h

PosSourceX=uint16(x+x1);

PosSourceY=uint16(y+y1);

if((PosSourceX<1) || (PosSourceX>w) || (PosSourceY<1) || (PosSourceY>h))

if (xx.BitDepth= =24)

Transfor(x, y,1:3) = uint8(1);

else

Transfor(x, y) = uint8(1);

end

else

if (xx.BitDepth= =24)

Transfor(x,y,1:3) = BmpImage(PosSourceX,PosSourceY,1:3);

else

Transfor(x,y) = BmpImage(PosSourceX,PosSourceY);

end

end

end

end

figure;

imshow(Transfor)

%(PosSourceX和PosSourceY是平移后坐标点,Transfor为平移后图片)

图4.3.1 图像的平移结果

4.3.2 对图像进行缩放

1)图像缩放的作用:

对图像进行缩小和放大的处理,可分别对其宽和高的缩放量进行设置。

2)图像缩放原理:

通常情况下,数字图像的比例缩放是将给定的图像在X方向和Y方向按相同比例缩放a倍。从而获得一副新的图像,如果X方向和Y方向缩放的比例不同,则图像的比例缩放会改变原始图像像素之间的相对位置,产生几何畸变。设原始图像中的点A0(X0,Y0)比例缩放后,在新图像中的对应点为A1(X1,Y1),则坐标关系可表示为:

X1=aX0

Y1=bX0

若比例缩放所产生的图像中的像素在原图像中没有相对应的像素点时,就需要进行灰度值的插值运算,一般有以下两种插值处理方法。

(1)直接赋值为和它最相近的像素灰度值,这种方法称为最邻近插值法,该方法的主要特点是简单、计算量很小、但可能会产生马赛克现象;

(2)通过其他数学插值算法来计算相应像素点的灰度值,这类方法处理效果好,但运算

量会有所增加

对图像进行缩放时需要输入缩放的倍数,其相关代码如下:

prompt={'请输入X向缩放倍数:'};

title='';

ansa=inputdlg(prompt,title);

sx=str2num(ansa{1});

handles.my_data3=sx;

guidata(hObject,handles)

%上段代码中的sx即为下图中所输入的倍数

同理可设置Y向缩放倍数sy.

3)实现方法:

m=xx.Width;

n=xx.Height;

m1=m*sx;n1=n*sy;

for h=1:m1;

for w=1:n1;

b(h,w)=i(round(h/sx),round(w/sy));%round 取最邻近整数???

end

end

(m,n为原始图像的二维数据,m1,n1为缩放后的图像二维数据,xx为读取的原始图像信息)

图4.3.2 图像的缩放结果

4.3.3 对图像进行旋转

1)图像旋转的作用:

对图像进行任意角度的旋转。

2)图像旋转原理:

图像的旋转变换是几何学中研究的重要内容之一,一般情况下,图像的旋转变换是指以图像的中心为原点,将图像上的所有像素都旋转同一个角度的变换。图像经过旋转变换之后,图像的位置发生了改变,但旋转后,图像的大小一般会改变。和平移变换一样,在图像旋转变换中既可以把转出显示区域的图像截去,又可以扩大显示区域的图像范围以显示图像的全部。

设原始图像的任意点A0(X0,Y0)经过旋转β角度以后到新的位置A(X,Y),为表示方便,采用极坐标形式表示,原始点的角度为а。如下图所示

P

r A(X,Y)

r A0(X0,Y0)

根据极坐标与二维垂直坐标的关系,原始图像的点A0(X0,Y0)的X0和Y0坐标如下:

X0=rcosа

Y0=rsinа

旋转到新位置以后点A(X,Y)的坐标如下:

X=rcos(а-β)=rcosаcosβ+rsinаsinβ=X0cosβ+Y0sinβ

Y=rsin(а-β)=rsinаcosβ-rcosаsinβ=-X0sinβ+Y0cosβ

图像的旋转变换用矩阵形式表示如下:

X cosβsinβ0 X0

Y = -sinβcosβ0 Y0

1 0 0 1 1

对图像进行旋转操作时需要输入旋转角度,相关实现代码如下:

prompt={'请输入旋转角度:'};

title='Angle Degrees';

ansa=inputdlg(prompt,title);

n=str2num(ansa{1});

handles.my_data2=n; % n为我们输入的角度值

guidata(hObject,handles)

V=handles.my_data1;

n=handles.my_data2;

G=imread(V);

i=rgb2gray(G);

pai=3.14;

n=pai*n/180; %?将角度转换为直观的表示方法,便于直接输入度数。

上段代码执行如下:

3)实现方法:

%?计算原图像各像素的新坐标

for indexX=0:(X-1)

for indexY=0:(Y-1)

ImageNew(round(indexX*cos(n)-indexY*sin(n))+round(abs(min([LeftTop(1,1),LeftBot tom(1,1),RightTop(1,1),RightBottom(1,1)])))+1,1+round(indexX*sin(n)+indexY*cos( n))+round(abs(min([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)] ))))=i(indexX+1,indexY+1);

end

end

图4.3.3 图像旋转处理结果

4.3.4对图像进行横轴翻转和纵轴翻转

1)图像翻转的作用:

实现图像的水平和垂直方向的翻转。

2)图像翻转原理:

垂直方向:y′=h-y+1

水平方向:x′=w-x+1

其中为h图像高,w为图像宽

3)实现方法:

if (xx.BitDepth==24)

Transfor(x, y,1:3) = uint8(1);

else

Transfor(x, y) = uint8(1);

end

else

if (xx.BitDepth==24)

Transfor(x,y,1:3) = BmpImage(PosSourceX,PosSourceY,1:3);

else

Transfor(x,y) = BmpImage(PosSourceX,PosSourceY);

end

end

(Transfor为翻转后图像,PosSourceX,PosSourceY为翻转后坐标)

图4.3.4 图像的横轴翻转和纵轴翻转

4.4图像直方图的绘制

1)图像直方图绘制的作用:

实现图像直方图的均衡化。

2)图像直方图均衡原理:

直方图均衡化是将原图像的直方图通过变换函数修正为均匀的直方图,然后按均衡直方图修正原图像。

图像均衡化处理后,图像的直方图是平直的,即各灰度级具有相同的出现频数,那么由于灰度级具有均匀的概率分布,图像看起来就更清晰了。

首先假定连续灰度级的情况,推导直方图均衡化变换公式,令r代表灰度级,P ( r )为概率密度函数。(注:r值已归一化,最大灰度值为1)。

3)实现方法:

V = handles.my_data1;

xx=imfinfo(V);

Bmpimage=imread(V);

w=xx.Width;

h=xx.Height;

grey_grade=2^xx.BitDepth;

for i=1:grey_grade

grey_friq(i)=0;

end

for y=1:w

for x=1:h

for r=1:grey_grade

if Bmpimage(x,y)==r

grey_friq(r)=grey_friq(r)+1;

end

end

end

end

figure;

subplot(2,2,3);

imshow(Bmpimage);

subplot(2,2,1);

for i=2:grey_grade

line([i,i],[0,grey_friq(i)]);

end

for i=1:grey_grade

sk(i)=0;

p_eq(i)=0;

end

sk(1)=grey_friq(1)/(w*h);

for i=2:grey_grade

sk(i)=sk(i-1)+grey_friq(i)/(w*h);

end

for i=1:h

for j=1:w

transfor(i,j)=uint8(sk(Bmpimage(i,j))*255+0.5);

end

end

for i=1:grey_grade

p_eq(uint8(sk(i)*255+0.5))=p_eq(uint8(sk(i)*255+0.5))+grey_friq(i); end

subplot(2,2,2);

for i=1:uint8(sk(i)*255+0.5)

line([i,i],[0,p_eq(i)]);

end

subplot(2,2,4);

imshow(transfor);

图4.4.1 原图像直方图及均衡化效果

5小结

从通常意义上讲,数字图像处理技术更加普遍、可靠和准确,比起模拟方法,它们也更容易实现,专用的硬件被用于数字图像处理。今天,硬件解决方案被广泛的用于视频处理系统,但商业化的图像处理任务基本上仍以软件形式实现,运行在通用个人电脑上,掌握进一步的图像处理技能对今后的学习和工作生活也都有其积极的影响!

通过这个阶段的努力本图像处理演示系统已基本完成了对文件的打开保存,以及对图像的平移、图像的旋转、翻转、图像的缩放、图像的增强等功能的实现,由于个人水平和时间的有限,此次课程设计还存在许多想法没有很好的实现,扩展功能上也有一定的局限性,希望能在今后的学习中逐渐弥补和改善!

参考文献

数字图像处理实验报告完整版

数字图像处理 实验一 MATLAB数字图像处理初步 一、显示图像 1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 实验结果如下图: 源代码: >>I=imread('lily.tif') >> whos I >> imshow(I) 二、压缩图像 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7.用imread()读入图像Sunset.jpg和Winter.jpg; 8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小; 9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。 其中9的实验结果如下图:

源代码: 4~6(接上面两个) >>I=imread('lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 7~9 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Winter.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg') 三、二值化图像 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

数字图像处理 课程设计报告

数字图像处理 课程设计报告 姓名: 学号: 班级: 设计题目:图像处理 教师:赵哲老师 提交日期: 12月29日

一、设计内容: 主题:《图像处理》 详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等), 二、涉及知识内容: 1、二值化 2、各种滤波 3、算法等 三、设计流程图 四、实例分析及截图效果: 运行效果截图: 第一步:读取原图,并显示 close all;clear;clc; % 清楚工作窗口clc 清空变量clear 关闭打开的窗口close all I=imread(''); % 插入图片赋给I imshow(I);% 输出图I I1=rgb2gray(I);%图片变灰度图 figure%新建窗口 subplot(321);% 3行2列第一幅图 imhist(I1);%输出图片

title('原图直方图');%图片名称 一,图像处理模糊 H=fspecial('motion',40); %% 滤波算子模糊程度40 motion运动 q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q); imhist(q1); title('模糊图直方图'); 二,图像处理锐化 H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的 qq=imfilter(I,H,'replicate'); qq1=rgb2gray(qq); imhist(qq1); title('锐化图直方图'); 三,图像处理浮雕(来源网络) %浮雕图 l=imread(''); f0=rgb2gray(l);%变灰度图 f1=imnoise(f0,'speckle',; %高斯噪声加入密度为的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点 f1=im2double(f1);%把图像数据类型转换为双精度浮点类型 h3=1/9.*[1 1 1;1 1 1;1 1 1]; %采用h3对图像f2进行卷积滤波 f4=conv2(f1,h3,'same'); %进行sobel滤波 h2=fspecial('sobel'); g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的 k=mat2gray(g3);% 实现图像矩阵的归一化操作 四,图像处理素描(来源网络) f=imread(''); [VG,A,PPG] = colorgrad(f); ppg = im2uint8(PPG); ppgf = 255 - ppg; [M,N] = size(ppgf);T=200; ppgf1 = zeros(M,N); for ii = 1:M for jj = 1:N if ppgf(ii,jj)

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验报告

实验一灰度图像直方图统计 一、实验目的 掌握灰度图像直方图的概念和计算方法,了解直方图的作用和用途。提高学生编程能力,巩固所学知识。 二、实验内容和要求 (1)用Photoshop显示、了解图像平均明暗度和对比度等信息; (2)用MatLab读取和显示一幅灰度图像; (3)用MatLab编写直方图统计的程序。 三、实验步骤 1. 使用Photoshop显示直方图: 1)点击文件→打开,打开一幅图像; 2)对图像做增强处理,例如选择图像→调整→自动对比度对图像进行灰度拉伸,观察图像进行对比度增强前后的视觉变化。 3)利用统计灰度图像直方图的程序分别针对灰度拉伸前后的灰度图像绘制其灰度直方图,观察其前后的直方图变化。 2.用MatLab读取和显示一幅灰度图像; 3. 绘制图像的灰度直方图; function Display_Histogram()

Input=imread('timg.jpg'); figure(100); imshow(uint8(Input)); title('原始图像'); Input_Image=rgb2gray(Input); figure(200); imshow(uint8(Input_Image)); title('灰度图像'); sum=0; His_Image=zeros(1,256); [m,n]=size(Input_Image); for k=0:255 for I=1:m for j=1:n if Input_Image(I,j)==k His_Image(k+1)=His_Image(k+1)+1; end end end end figure(300); plot(His_Image); title('图像的灰度直方图'); 4.显示图像的灰度直方图。

电子科技大学-数字图像处理-课程设计报告

电子科技大学 数字图像处理课程设计 课题名称数字图像处理 院(系)通信与信息工程学院 专业通信工程 姓名 学号 起讫日期 指导教师

2015年12月15日 目录 摘要: (03) 课题一:图像的灰度级分辨率调整 (04) 课题二:噪声的叠加与频域低通滤波器应用 (06) 课题三:顶帽变换在图像阴影校正方面的应用 (13) 课题四:利用Hough变换检测图像中的直线 (15) 课题五:图像的阈值分割操作及区域属性 (20) 课题六:基于MATLAB?的GUI程序设计 (23)

结束语: (36) 参考文献: (37)

基于MATLAB?的数字图像处理课题设计 摘要 本文首先对数字图像处理的相关定义、概念、算法与常用变换进行了介绍;并通过七个课题实例,借助MATLAB?的图像处理工具箱(Computer Vision System Toolbox)对这些案例逐一实现,包括图像的灰度值调整、图像噪声的叠加、频域低通滤波器、阈值分割、Hough变换等,常用的图像变化与处理;然后通过MATLAB?的GUI程序设计,对部分功能进行模块化整合,设计出了数字图像处理的简易软件;最后给出了软件的帮助文件以及该简易程序的系统结构和m代码。 关键词:灰度值调整噪声图像变换 MATLAB? GUI设计

课题一:图像的灰度级分辨率调整 设计要求: 128,64,32,16,8,4,2,并在同一个figure窗将图像的灰度级分辨率调整至{} 口上将它们显示出来。 设计思路: 灰度级分辨率又称色阶,是指图像中可分辨的灰度级的数目,它与存储灰度级别所使用的数据类型有关。由于灰度级度量的是投射到传感器上的光辐射值的强度,所以灰度级分辨率又称为辐射计量分辨率。随着图像灰度级分辨率的的逐渐降低,图像中所包含的颜色数目将变得越来越少,从而在颜色维度造成图像信息量的退化。 MATLAB?提供了histeq函数用于图像灰度值的改变,调用格式如下: J = histeq(I,n) 其中J为变换后的图像,I为输入图像,n为变换的灰度值。依次改变n的值为 128、64、32、16、8、4、2 就可以得到灰度值分辨率为128、64、32、16、8、4、2 的输出图像。利用MATLAB?的subplot命令可以将不同灰度的图像放在同一个figure中方便对比。 课题实现: 该思路的MATLAB?源代码如下: in_photo=imread('lena.bmp'); %读入图片“lena.bmp”,位置在matlab当前工作区路径下D:\TempProject\Matlab\Works for i = [128,64,32,16,8,4,2] syms(['out_photo',num2str(i)]); %利用for循环定义7个变量,作为不同灰度值分辨率的输出变量 eval(['out_photo',num2str(i), '=histeq(in_photo,i)',';']); %histeq函数用于改变图像灰度值,用eval函数给变量循环赋值

武汉科技大学 数字图像处理实验报告

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

数字图象处理课程设计

课程设计 课程名称___ 数字图像处理课程设计__ 题目名称一个简单的“photoshop”软件 学生学院信息工程学院 专业班级电子信息工程 学号 学生姓名 指导老师 2014年 1 月 3 日

一、课程设计题目 设计内容及要求: 1、独立设计方案,实现对图像的3种处理。 2、利用VC++实现软件框架:有操作菜单、能显示某项操作前后的图像。 3、查找相关算法,至少实现3种功能,比如:灰度增强、直方图显示、浮雕等等(底片化、二值化及平滑等实验内容不计算在内)。 4、将实验结果与其他软件实现的效果进行比较、分析。总结设计过程所遇到的问题。 二、课程设计目的 数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,数字图像处理已成为电子信息、通信、计算机、自动化、信号处理等专业的重要课程。 数字图像处理课程设计是在完成数字图像处理的相关理论的学习后,进行的综合性训练课程,其目的主要包括: 1、使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法; 2、增强学生应用VC++编写数字图像处理的应用程序及分析、解决实际问题的能力; 3、尝试将所学的内容解决实际工程问题,培养学生的工程实践能力,提高工科学生的就业能力。 三、设计内容 1、直方图显示 直方图显示就是统计图像某一灰度级出现的次数,保存到一个数组中。然后在一个直方图上画图显示出来。 2、直方图均衡化 直方图就是某一灰度级的象素个数占整幅图像的象素比h=nj/N,其中nj是灰度级在j的象素数,N是总象素数,扫描整幅图像得出的h的离散序列就是图像的直方图,h求和必然=1,所以直方图可以看成是象素对于灰度的概率分布函数。直方图均衡化算法分为三个步骤,第一步是统计直方图每个灰度级出现的次数,第二步是累计归一化的直方图,第三步是计算新的像素值。对于彩色的图片来说,直方图均衡化一般不能直接对R、G、B三个分量分别进行上述的操作,而要将RGB转换成HSV来对V分量进行直方图均衡化的操作。3、浮雕效果 浮雕效果就是将图像的变化部分突出显示,颜色相同部分淡化处理,使图像出现浮雕效果。实现图像浮雕效果的一般原理是,将图像上每个像素点与其对角线的像素点形成差值,使相似颜色值淡化,不同颜色值突出,从而产生纵深感,达到浮雕的效果,具体的做法是用处于对角线的2个像素值相减,再加上一个背景常数,一般为128而成。这样颜色变化大的地方色彩就明显,颜色变化小的地方因为差值几乎为零则成黑色。 4、均值滤波 图像平滑主要是为了消除噪声。噪声并不限于人眼所能看的见的失真和变形,有些噪声只有在进行图像处理时才可以发现。图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。图像中的噪声往往和信号交织在一起,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,如何既平滑掉噪声有尽量保持图像细节,是图像平滑主要研究的任务。 这次实验采用的均值滤波,原理是采用一个3*3的模板

数字图像处理技术应用课程报告

集中稀疏表示的图像恢复 董伟胜中国西安电子科技大学电子工程学院wsdong@https://www.doczj.com/doc/3b356864.html, 张磊香港理工大学计算机系cslzhang@https://www.doczj.com/doc/3b356864.html,.hk 石光明中国西安电子科技大学电子工程学院gmshi@https://www.doczj.com/doc/3b356864.html, 摘要 本文对于图像恢复任务提出了一种新的称为集中稀疏表示(CSR)的稀疏表示模型。为了重建高还原度的图像,通过给定的字典,退化图像的稀疏编码系数预计应该尽可能接近那些未知的原始图像。然而,由于可用的数据是原始图像的退化版本(如噪声、模糊和/或者低采样率),正如许多现有的稀疏表示模型一样,如果只考虑局部的稀疏图像,稀疏编码系数往往不够准确。为了使稀疏编码更加准确,通过利用非局部图像统计,引入一个集中的稀疏性约束。为了优化,局部稀疏和非局部稀疏统一到一个变化的框架内。大量的图像恢复实验验证了我们的CSR模型在以前最先进的方法之上取得了令人信服的改进。 1、介绍 图像恢复(IR)目的是为了从,比如说通过一个低端摄像头或者在有限条件下得到图像的图像退化版本(例如噪声、模糊和/或者低采样率),来恢复一副高质量的图像。对于观察的图像y,IR问题可以表示成: y = Hx + v (1) 其中H是一个退化矩阵,x是原始图像的矢量,v是噪声矢量。由于IR的病态特性,尝试把观察模型和所需解决方案的先验知识合并到一个变分公式的正则化技术,已经被广泛地研究。对于正则方法,对自然图像适当的先验知识进行寻找和建模是最重要的关注点之一,因此学习自然图像先验知识的各种方法已经被提出来了【25,5,6,12】。 近年来,对于图像恢复基于建模的稀疏表示已经被证明是一种很有前途的模型【9,5,13,20,16,21,27,15,14】。在人类视觉系统【23,24】的研究中,已经发现细胞感受区域使用少量的从一个超完备的编码集中稀疏选出的结构化基元来编码自然图像。在数学上,一个x ∈ R N的信号可以表示为一个字典Φ中的几个原子的线性组合,例如,X ≈Φα,用|0 最小化:

数字图像处理报告

数字图像处理的起源与应用 1.概述 数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理技术目前广泛应用于各个领域,其发挥的作用有效提高了人们的生产生活质量。 2.起源与发展 (1)20世纪 20 年代,数字图像处理最早应用于报纸行业。由于报纸行业信息传输的需要,一根海底电缆从英国伦敦连输到美国纽约,实现了第一幅数组照片的传送。(在当时那个年代如果不采用数字图像处理,一张图像传达的时间需要7 天,而借助数字图像处理技术仅耗费 3 小时)。 (2)20世纪50年代,当时的图像处理是以人为对象,以改善人的视觉效果为目的。 (3)20世纪60年代的美国喷气推进实验室是图像处理技术首次获得实际成功的应用,推动了数字图像处理这门学科的诞生。 (4)20世纪70年代英国EMI公司工程师Housfield发明了CT并获得了诺贝尔奖,这对人类的发展作出了划时代的贡献。借助计算机、人工智能等方面的快速发展,数字图像处理技术实现了更高层次的发展。相关工作人员已经着手研究如何使用计算机进行图像解释。 (5)20世纪 80 年代。研究人员将数字图像处理应用于地理信息系统。从这个阶段开始数字图像处理技术的应用领域不断扩大,在工业检测、遥感等方面也得到了广泛应用,在遥感方面实现了对卫星传送回来的图像的处理。 (6)20世纪 90 年代。数字图像处理技术就得到了一个快速发展,其中特别是小波理论和变换方法的诞生(Mallat在1988年有效地将小波分析应用于图像分解和重构),更好地实现了数字图像的分解与重构。 (7)进入到 21 世纪,借助计算机技术的飞速发展与各类理论的不断完善,数字图像处理技术的应用范围被拓宽,甚至已经在某些领域取得突破。从目前数字图像处理技术的特点进行分析,可以发现图像信息量巨大,在图像处理综合性方面显示出十分明显的优势,其中就借助了图像信息理论与通信理论的紧密联系。再加上数字图像处理技术具有处理精度高、灵活性强、再现性好、适用面广、信息压缩的潜力大等特点,因此已经成功地应用在各个领域。 3.应用 (1)航天和航空技术方面:早在1964年美国就利用图像处理技术对月球照片进行处理,并且成功地绘制出月球表面地图,这个重大的突破使得图像处理技术在航天技术中发挥着越来越重要的作用。“卡西尼”号飞船进入土星轨道后传回地球的土星环照片,“火星快车”拍摄到的火星山体滑坡照片,还有我国嫦娥探测器拍摄的月球表面照片,以及近来很火的“大疆”无人机航拍等等。这些照片都体现了数字图像处理技术在航空航天技术领域不可或缺的重要作用。 (2)遥感领域方面的应用:数字图像处理在遥感的应用,主要是获取地形地质及地面设施资料,矿藏探查、森林资源状况、海洋和农业等资源的调查、自然灾害预测预报、环境污染检测、气象卫星云图处理以及地面军事目标的识别。例

数字图像处理课程设计

数字图像处理课程设计报告 目录 一.实验目的 (3) 二.实验内容............ ................... . (3) 1.打开图像 (3) (1)、图像信息获取 (3) (2). RgbtoHsi(&rgb, &Hsi) (4) (3).OnMouseMove(UINT nFlags, CPoint point) (4) 2.标记Mark点 (5)

(1)标记可能的点 (5) (2)把可能标记的点变为标记点 (5) (3) EdgeIformation边缘标记 (6) (4)EdgeFilter边缘滤波 (6) 3.二值化 (7) 4.填洞 (8) 5收缩 (10) 6获取中心点 (11) 三.学习心得 1.错误总结 (16) 2.心得体 会 (17) 一.实验目的: 对血液细胞切片图片进行各种处理,最终得出细胞的数目、半径等信息 基于vc的红细胞识别统计系统设计 它主要以病人的血液样本为原始数据。经过一系列的图像处理和分析,识别出血液中的红细胞,并能给出红细胞的个数。而得到红细胞的个数以后,通过血液量的检测,就可以得出血液中红细胞的密度。该系统可以很方便的利用在临床上,大大提高速度和效率。

二、实验内容 基于VC++6.0软件下的细胞识别,通过细胞的标记、二值化、提取边缘、填洞、收缩、找中心点、计数等过程完成实验目的 1 . 打开图像 (1)图像信息获取 该步骤实现的功能是打开bmp格式的图像文件,要对图像进行操作,系统必须能调用图像。 打开bmp图像的具体步骤为 1.新建项目:--MFC AppWizard、工程名 2.拷贝cdib.h,cdib.cpp到工程文件夹,再向工程里添加 3.~Doc.h添加变量:m_pDib 4.~doc.cpp:变量(m_pDib):new、delete 5.~doc.cpp: Serialize() 6.~View.cpp: OnDraw() m_pDib->Draw() 2.RgbtoHsi(&rgb, &Hsi)

2013数字图像处理课程设计报告

数字图像处理 课程设计报告 课设题目:彩色图像增强软件学院:信息科学与工程学院专业:电子与信息工程 班级: 1002501 姓名:曾小路 学号: 100250131 指导教师:赵占峰 哈尔滨工业大学(威海) 2013 年12月27日

目录 目录 .......................................................................................................................... I 一. 课程设计任务 (1) 二. 课程设计原理及设计方案 (2) 2.1 彩色图像基础 (2) 2.2 彩色模型 (2) 三. 课程设计的步骤和结果 (6) 3.1 采集图像 (6) 3.2 图像增强 (7) 3.3 界面设计 (9) 四. 课程设计总结 (12) 五. 设计体会 (13) 六. 参考文献 (14)

哈尔滨工业大学(威海)课程设计报告 一. 课程设计任务 1.1设计内容及要求: (1)、独立设计方案,根据所学知识,对由于曝光过度、光圈过小或图像亮度不均匀等情况下的彩色图像进行增强,提高图像的清晰度(通俗地讲,就是图像看起来干净、对比度高、颜色鲜艳)。 (2)、参考photoshop 软件,设计软件界面,对处理前后的图像以及直方图等进行对比显示; (3)、将实验结果与处理前的图像进行比较、分析。总结设计过程所遇到的问题。 1.2参考方案 1、实现图像处理的基本操作 学习使用matlab 图像处理工具箱,利用imread()语句读入图像,例如image=imread(flower.jpg),利用彩色图像模型转换公式,将RGB 类型图像转换为HSI 类型图像,显示各分量图像(如imshow(image)),以及计算和显示各分量图像直方图。 2、彩色图像增强实现 对HSI彩色模型图像的I分量进行对比度拉伸或直方图均衡化等处理,提高亮度图像的对比度。对S分量图像进行适当调整,使图像色彩鲜艳或柔和。 H 分量保持不变。将处理后的图像转换成RGB 类型图像,并进行显示。分析处理图像过程和结果存在的问题。 3、参照“photoshop”软件,设计图像处理软件界面 可设计菜单式界面,在功能较少的情况下,也可以设计按键式界面,视 功能多少而定;参考matlab 软件中GUI 设计,学习软件界面的设计 - 1 -

数字图像处理实验报告

数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日 1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一 图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要 求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图 像。 4) 运用 for 循环,将加有椒盐噪声的图像进行 10 次,20 次均值滤波,查看其特点, 显 示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要 求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对

数字图像处理课程设计(实验报告)

上海理工大学 计算机工程学院 实验报告 实验名称红细胞数目统计课程名称数字图像处理 姓名王磊学号0916020226 日期2012-11-27 地点图文信息中心成绩教师韩彦芳

一、设计内容: 主题:《红细胞数目检测》 详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。 二、现实意义: 细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。 三、涉及知识内容: 1、中值滤波 2、开运算 3、闭运算 4、二值化 5、贴标签 四、实例分析及截图效果: (1)代码如下: 1、程序中定义图像变量说明 (1)Image--------------------------------------------------------------原图变量;

(2)Image_BW-------------------------------------------------------值化图象; (3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果; (5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像; 2、实现代码: %-------图片前期处理------------------- %第一步:读取原图,并显示 A = imread('E:\红细胞3.png'); Image=rgb2gray(A); %RGB转化成灰度图 figure,imshow(Image); title('【原图】'); %第二步:进行二值化 Theshold = graythresh(Image); %取得图象的全局域值 Image_BW = im2bw(Image,Theshold); %二值化图象 figure,imshow(Image_BW); title('【初次二值化图像】'); %第三步二值化图像进行中值滤波 Image_BW_medfilt= medfilt2(Image_BW,[13 13]); figure,imshow(Image_BW_medfilt); title('【中值滤波后的二值化图像】'); %第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果 Optimized_Image_BW = Image_BW_medfilt|Image_BW; figure,imshow(Optimized_Image_BW); title('【进行“或”运算优化图像效果】'); %第五步:优化后二值化图象取反,保证:‘1’-〉‘白色’,‘0’-〉‘黑色’ %方便下面的操作 Reverse_Image_BW = ~Optimized_Image_BW; figure,imshow(Reverse_Image_BW); title('【优化后二值化图象取反】');

数字图像处理课程设计报告

课程设计报告书课程名称:数字图像处理 题目:数字图像处理的傅里叶变换 学生姓名: 专业:计算机科学与技术 班别:计科本101班 学号: 指导老师: 日期: 2013 年 06 月 20 日

数字图像处理的傅里叶变换 1.课程设计目的和意义 (1)了解图像变换的意义和手段 (2)熟悉傅里叶变换的基本性质 (3)热练掌握FFT的方法反应用 (4)通过本实验掌握利用MATLAB编程实现数字图像的傅里叶变换 通过本次课程设计,掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养综合设计能力。 2.课程设计内容 (1)熟悉并掌握傅立叶变换 (2)了解傅立叶变换在图像处理中的应用 (3)通过实验了解二维频谱的分布特点 (4)用MATLAB实现傅立叶变换仿真 3.课程设计背景与基本原理 傅里叶变换是可分离和正交变换中的一个特例,对图像的傅里叶变换将图像从图像空间变换到频率空间,从而可利用傅里叶频谱特性进行图像处理。从20世纪60年代傅里叶变换的快速算法提出来以后,傅里叶变换在信号处理和图像处理中都得到了广泛的使用。 3.1课程设计背景 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。 3.2 傅里叶变换 (1)应用傅里叶变换进行数字图像处理 数字图像处理(digital image processing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。 20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数字图像处理报告

《数字图像处理》 实验报告 院系:XXXXX 学号:XXXXXXX 姓名:XXX 指导老师:XX XX 完成时间:2020.02.02

题目一: (1)将宽为2n的正方形图像,用FFT算法从空域变换到频域,并用频域图像的模来进行显示; (2)使图像能量中心,对应到几何中心,并用频域图像的模来进行显示; (3)将频域图象,通过FFT逆变换到空域,并显示。 该题实现环境为操作系统:Windows 10 操作系统;编程环境:VS2013;内部核心处理算法库:OpenCV。 此题目的具体实现过程及其展示如下所示:

} imshow("原始图像", srcImage); //将输入图像延扩到最佳的尺寸,边界用0补充 int m = getOptimalDFTSize(srcImage.rows); int n = getOptimalDFTSize(srcImage.cols); //将添加的像素初始化为0. Mat padded; copyMakeBorder(srcImage, padded,0, m - srcImage.rows,0, n -srcImage.cols, BORDER_CONSTANT, Scalar::all(0)); //为傅立叶变换的结果(实部和虚部)分配存储空间。 //将planes数组组合合并成一个多通道的数组complexI Mat planes[]={ Mat_(padded), Mat::zeros(padded.size(), CV_32F)}; Mat complexI; merge(planes,2, complexI); //进行就地离散傅里叶变换 dft(complexI, complexI); //将复数转换为幅值,即=> log(1 + sqrt(Re(DFT(I))^2 + Im(DFT(I))^2)) split(complexI, planes); // 将多通道数组complexI分离成几个单通道数组,planes[0] = Re(DFT(I), //planes[1] = Im(DFT(I))

相关主题
文本预览
相关文档 最新文档