Visual+C图形图像编程之三处理图片

Visual+C图形图像编程之三处理图片
Visual+C图形图像编程之三处理图片

。,

Vi§u越,.棼簪璃澎圈糠鳊——处理图片

图片始终是图形图像编程中所涉及的一个重要的对象,对图片的处理也是图形图像编程中的重点,也是难点。因为在处理图片实现各种特效的前提是精通一种编程语言,其次可能还要了解图片类型的结构,有时还需要具备较深的数学基础。Vi—

sual

C#具备十分强的图片处理能力,集中表现在喜Visualc#能够

方便、快捷的处理出各种图片效果,即使您对图片的结构并不很了解,即使您不具备十分强的数学基础,之所以如此,是因为

.Net

FrameWorkSDK中提供了很多用以操作图片和绘制图片的类,这些类提供了很多直接处理图片的方法,灵活调用这些方法往往可以实现各种看似只有编程高手才能够完成的图片处理工作。所以掌握用VisualC#实现对图片处理,首先也是必须掌握

.Net

FrameWorkSDK中提供的和图片处理相关的类。在下面的

内容中将介绍用VisualC#实现图片的五种效果:图片的平行移动、图片进行缩放处理、图片进行旋转操作、图片进行反转操作、

图片变形等。

一、.NetFrameWorkSDK为VisualC#实现图片处理所提供关键类

贯穿本文介绍的五种VisualC#实现图片处理特效的类主

要有二个:Graphics类和Matrix类。Graphics类拥有DrawImage方法,此方法可以按照要求绘制指定的图片;Matrix类sys—tem.Dmwing.Drawin92D命名空间,它是实现本文介绍五种特效关键。下面就来详细介绍Gr印hics类中的DmwImage方法的用法及其Matrix类的组成。

1.Gmphics类中的DrawImage方法

Graphics类的具体成员已经在第一节的内容中介绍过了,其中的DrawImage方法作用是绘制指定的图片,DrawImage方法

不仅能够在指定位置,按照图片的原始大小绘制图片,也能够在

指定位置,以指定的大小绘制图片,还能够在指定位置并且按指定大小绘制指定的图片的指定部分等。本文调用DrawImage方法主要是实现指定位置并且按指定大小绘制指定的图片对象的指定部分,下面是DrawImage方法实现此功能的调用语法:

publicvoid

DrawImage(

Imageimage,

RectangledestRect,intsrcX.

。。|0

o誊一j

程乏霉裂黪1小二:f。’,{”~j_

襄醋簟一、

一”,?

∥编

1)ROGRAMCLASS仗OOM

intsrcY.int

srcWidth.

intsrcHeight,

Graphicsunitsrcunit

);

参数说明:

image

要绘制的图片对象。

destRect

Rectangle结构,它指定所绘制图像的位置和大小。将图像进行缩放以适合该矩形。

srcX

要绘制的源图像部分的左上角的x坐标。

srcY

要绘制的源图像部分的左上角的y坐标。

srcWidth

要绘制的源图像部分的宽度。

srcHe培ht

要绘制的源图像部分的高度。

srcUnit

GraphicsUnit枚举的成员,它指定用于确定源矩形的度量单位。

2.Matrix类的常见成员

Matrix类封装表示几何变形的3x3仿射矩阵,之所以创建此实例,是因为Matrix类提供了很多实现图片特效的方法,在创建并初始化Matrix实例,并调用其方法完成图片效果的设定后,此时把Matrix实例赋值给Gmphics的Transfom属性,这样在调用Graphics的DrawImage方法就会按照设定的特效绘制图片,

这也就是本文介绍用VisualC#处理图片,实现特效的实现原理。表l和表2分别是Matrix类的常用属性、常用方法及其说明:

本文通过调用Matrjx实例中的“Translate”、“scale”、“Rotate”、“shear”方法等来设定Matrix实例,从而决定Gmphics

中的DrawImage方法以何种方式绘制出图片。

虎,

马,

.■,一i哆

≥r

鬈∥

≯诒≮,∥ 

万方数据

察碡。囊二誓_蠢誉、

PRoGRAMCl。ASSROOM

表1Matrix类的常用属性及其说明

属性说明

Elements获取一个浮点值数组,它表示该Matrix实例的

元素。

IsIdentitv获取一个值,该值指示此Matrix实例是否是单

位矩阵。

IsInvertible获取一个值,该值指示此Matrix实例是否是可

逆转的。

0ffsetX获取此Matrix实例的x转换值。

0Ⅱ奢etY获取此Ma晒x的y转换值。

表2Matrix类的常用方法及其说明

方法说明

Clone创建此Matrix实例的一个精确副本。

Dispose

释放由此Matrix实例使用的所有资源。

Invert如果此Matrix实例是可逆转的,则逆转该

对象。

Reset重置此MaIrix实例以具有单位矩阵的元

素。

Rotate将相对于原点顺时针旋转指定角度应用到

此Matrix实例。

RotateAt通过预先计算旋转,将沿指定点的顺时针

旋转应用到该Matrix实例。

Scale通过预先计算比例向量将指定的比例向量

应用到此Matrix实例。

Shear通过预先计算切变向量将指定的切变向量

应用到此Matrix实例。

TraJlsfomPoints对点数组应用此Matrix实例所表示的几何

变形。

Transfo珊Vectors将数组中的每个矢量与矩阵相乘。该矩阵

的转换元素(第三行)被忽略。

Translate通过预先计算转换向量将指定的转换向量

应用到此Matrix实例。

C10ne创建此Matrix实例的一个精确副本。

二、VisualC#实现图片处理的实现步骤

1.启动VisualStudio.Net。

2.选择菜单【文件】I【新建】I【项目】后,弹出【新建项目】对话框。

3.将【项目类型】设置为【Visualc#项目】。

4.将【模板】设置为【windows应用程序】。

5.在【名称】文本框中输入【Visualc#处理图片】。

2004.10

皇■■■技巧与i翔峪

6.在【位置】的文本框中输入【E:\Vs.NET项目】,然后单击【确定】按钮。这样在“E:\Vs.NET项目”目录中就创建了一个名称为“VisualC#处理图片”的文件夹,里面存放的就是“VisualC#实现屏幕捕获”项目的所有文件。

7.按照第一节介绍的方法,在此项目中添加命名空间“System.Drawing.Drawin92D”命名空间。

8.把VisualStudio.Net的当前窗口切换到【Fo订111.cs(设计)】窗口,并从【工具箱】中的【windows窗体组件】选项卡中往设计窗体中拖入一个MainMenu组件,并利用菜单编辑器编辑出图1所示菜单:

图l【Visualc#处理图片】项目中的菜单

9.从【工具箱】中的【windows窗体组件】选项卡中往设计窗体中拖入一个PictureBox组件,用以显示原始图片。

10.把VisualStudio.Net的当前窗口切换到FoⅡn1.cs的代码编辑窗口,在ForIIll.cs的首部的引人命名空间的代码区中,用下列代码替换FoHnl.cs中由系统自动产生的引入命名空间代码:

usingSystem:

usingSyStem.Dfawing:、∥一

usingSystem.COllectiOns:。

usingSystem.ComponemModel;

usingSy8tem。Vvindows.FOrms:

us;ngSystem.D8t8:

usingSystem.Drawlng.1maging:

u¥ingSystem.Drawing.Drawin920:

11.在Foml.cs的class的代码区中添加下列代码,下列代码是在PictureBox组件显示C盘图片文件“样品.jpg”。

priVateBitmapBmpTemp=newBitmap(@“c:\样品.jpg”);

12.以下面代码替代系统产生的lnitializeComponent过程。下面代码是对加入窗体的组件以及创建的全局变量进行初始化和定义图l中各个菜单的Click事件:

private

voidln遣ia}{zeComponemf》

塞一鬻。箨

 万方数据

thi3,Dicture80x1Pictur搴Box《j:th酶.mainMenulM尊汹M尊臼U|ijl》j:t}1Is.menu酾m1Menultem{):this.menuItem2Menul协m():this,menultem3Menultem《):this.menultenl4Menultem():thls.menultem5Menult奇m《):this.nlenulten’6Menulteml》:;neWSy渤m,蝴nda懈.的rms。

.岛jj÷j|

‰,

嚣∞锄婶,渤s重尊m.W-ndoV姻。FoHns.甜:。

譬newSv8tem.WindOws.Form8.=newsystem.Windows.Fofms=newSvstem.WindOws.晒fms.=newSyStem.Windo、^,s.FOrm搴.

=newSVstem。Wind甜^倍.FOfm¥.

^f嚣newsyst《粕.Wlndows。Fo玎n8.

this.Su嚣pendLayout《》:

th{s.pictureBo×1.80rderStyle篁System.Windows。

Fo圩ns.80rderStyle.FjxedSingfe:

this.pictureBO×1.LocatiOn拳newSystem.

Drawlng.Point《8,10):

thIs.pictureBOxl.Name=’pic毫ureBQxl’:

this.pIctureBoxl.Size=newSystem.Drawing。Sizel162,164》:

this。p;ctureBoXl.SizeMode=SyStem.Window8,

FOmls.Picture80×S泛eMOde.AutoSize:

this.p.cture80X1.Tablnde×=3:

this,pictureBo×1.178bStOp=false:

this.mainMenul.Menultems.AddRangefnewSy争tem.V辆ndows.Fofms.Menulteml1{

this.menulteml}}:

t}1is,menulteml.1ndex。0:

thIs.menulteml.Menultems.AddRange(newSyS-tem.Windows.Fofms.MenuIteml】{

thls.menu{tem2,

this.menultem3,

this。menultem4。

this.menultem5,

this.menultem6}):

thistmenulteml.Te)(t;’图片处理效果’:

this.menultem2.1nde×毒O:

this.menultem2.Te×t=”平移。:

this,menultem2.C}ick+=newSV£姻m。Event|一andler《this.menultem2—Cllck):。

thi霉.menultem3。}ndex=1:

th融menultem3,Text=’缩放’:

thi8.menLlltem3.Click+=newSystem.EventHan删ef(th;s.menultem3上ljck);

this。menultem4。lndex箸2:

this.menultem4.Te×t嚣’旋转’:

襄荫囊一曩纛毒簇。

,妒”毪

∥.编程课堂+爹露

pROGRAMCLASSR00M

this.n’enultem4,Click+誊newsvstem.EventHandler

《this,m鸯黜ltem4Sl潞k}.;

this.menul协m5.1^蕊x≤3鬈。...

this。menultem瓢T搴嗽叠_反转?;j?。。。

this.fnenultem5.elIck一+菇痨l》、ⅣS睁¥玺em.辱燃蠹娩瞎埔晒r《this.menultem5.j:licl(};i?。^8’二

this。menultem8。lndex#4:.

this.menultem6.Text=’变形’:

this、menultem6.Click+兰newSvstem.EventH8ndler

(this.menultem6jlick):

tthi8。AutoScale8aseSize=newSystem.Drawing.Size《6,14》:

thlstc|.entSize=newSyStem.Draw-ng.Slze{428,3”};

this.eontfol8.Addfthis.pictur880x1》:

th;s.Ma×imize80x皇false:

t11is.Menu=this.mainM鼙nul:

this.Name。’Fofml’:

this。Te×t=’VisualCj|}处理图片’:

thi8.WindowSt8te=Svstem.Winc妇vvs。Forms.

FO,mV协ndOv~FState,^似打n;zed:

thi8.L08d+=new≤、v8tem。EventHandIer《this.

Forml上08d}:

this.ResumeLaVOut{韬lse):

13.在Foml.cs中的Main函数之后添加下列代码,下列代

码功能是定义menuItem2的Click事件,实现对图片的平行移

动:

p—Vatevoidmen“ltem2』lic}((objectsender,Sys—

tem.EVentArgse》

Gfaphicsg=this。CfeateGraph迁.S();

g.Cleaf{this.8ackColor》;

//创建并初始化Graphic3实例

M8trix×=newMatr.x《》:

//创建Matf|×实例

X.T陷n8late(1∞,'OO}:

//调用Matr.x实例的Tran818te方法,并以此方法作用

于Matr|×实例

g.TranSfOrm=×:

//设定图片效果

g.Drawlmage《Bmp_下emp,

newRectangle{250,O,BmpTemp.WⅪth,

BmpTemp.Height),

O,O,Bmp下每mp.Width,

Bmp下emp.Height,

GfaDh{csUn;t。Pixel}:

X.Dispose{}:

g.Dispose(》;

//清除资源

 万方数据

察用豢一誓蠢警譬。*

、?j‘

,’’

◇鳊程课+堂

‰、

pROGRAMCl。ASSR00M

图片平移操作效果如图1所示:

图l

【Visualc#处理图片】项目实现图片平移时的运行界面14.在Fornll.cs中的menuItem2的C1ick事件之后,添加下

列代码,下列代码的作用是定义menuItem3的click事件,实现

对图片的缩放操作:prjvatevo{d

menu|tem3上lick(objectsendef,Sy争

tem.EventArgse)

Gfaphjcsg=thls.CreateGraphics{):g.Cleaf{thi8.Bacl(COlOr):

//创建并初始化Graphics实例

Matr{××=newMatrix{}:

//创建MatriX实例

X.Scalef2,1,Matf;×Order.Append};

//调用Matrix实例的Sca|e方法,并以姥方法作用予M争trj×实例

g.TranSfOrm。×:

g.DfawImageIBmpTemp,

newRectangle(10,250,200,200),

O,O,BmpTemp.Width,

8mpTemp.Height。GraDh;csUnlt.Pixel):

×.Dispose

l}:

g.Di8pose1);

//清除资源

图片缩放操作效果如图2所示:

15.在Foml.cs中的menuItem3的Click事件之后,添加下列代码,下列代码的作用是定义menuItem4的click事件,实现

对图片的旋转操作:

private

vold

menultem4Slick

o磷ectsendef,

Sys—

tem.EventArgse)f

G惜phicsg;this.CfeateGfaphics{}:

g.Cl钓r(this.BackCOlO¨://创建并初始化Graphics实例

Matr.xX=newMatr.X():

:14≯1u÷2004.10

囊奠壤j匿技巧与

≤蔫婚

图2

【VisuaJC#处理图片】项目实现图片缩放时的运行界面//创建Matri×实倒

//定义一个矩阵,用以调用起Rotate方法

×.Rotatef30}:

//设定旋转角度为顺时针30度

g.TransfOrm=×;

//把MatrIx实例赋值予Graphics实例T糟nsform属性g.D糟wlmage《BmpTemp,

newRe(烟ngle{450。

一250,8mpTemp。、,铡dth

,8mpTemp.Height),

O,O,8m痧1Iemp.Width,

8mp_Temp.H8磅ht,G冶DhIcsUntt.Plxel}

×,Dis∞se{);

g.O{spose《):

//清除资源

图片旋转30度操作效果如图3所示:

16.在Foml.cs中的menuItem4的Click事件之后,添加下列代码,下列代码的作用是定义menuItem5的Click事件,实现

图3

【Visual

c#处理图片】项目实现图片旋转时的运行界面

 

方数据

对图片的反转操作,反转可以看成是旋转操作一个特例,即图片旋转90度:

priVateVoidmenultem5工Iick(objectsender.Sys?tem.EventA翔se》

Gfaphicsg=th;s.CreateGraphics{):

g.Clear{this.8ackCoIor);

//创建并初始化Gr8phics实例

Matf.×X=newMatr.X():

//创建Ma仃Ix实例

×.Rotate《90):

//调用MatrIx实例的Rotate方法。并以此方法作用于Matrix实例

g.Transform=X:

g.DfawImage《BmpTemp,

newRectangle(O,一650,Bmp下emp.Width,8mp丁emp.Height),

O,O,BmpTemp。Width,

BmpTemp.Height.

GraphicsUnit.pixeI}:

X.Dispose():

g.Dispose{):

//清除资源

对图片实现反转操作效果如图4所示:

图4【VisualC#处理图片】项目实现图片反转时的运行界面

17.在Foml.cs中的menuItem5的Click事件之后,添加下列代码,下列代码的作用是定义menuItem6的C1iek事件,实现对图片的拉伸变形操作:

privatevo;dmenu}tem6_click(objectsender,Sys—temEventArgsel

Graphicsg=this.CreateGfaphics{}:

g.Clear(this.BackCoIor》:

//创建并初始化Graphlcs实例

Matri×X=newMatrix{》:

//创建Matrlx实例

X.Shear(3。1):

//调用MatriX实例的Shear方法,并以此方法作用于

Matrlx实例

PROGRAMCLASSR00M

g.TfansfOrm∞×:

g.Dr8wlmage{8辨p下emp,

nt^ⅣRec国ng酶《一200,200,200,2∞》

O,O。8mp稻mp,Wiclth,

8mp丁emp。H哟ht,

GraphicsUn疆。Pi×el}:

×.Dispose《):

g.D{spose{);

//清除资源

对图片实现拉伸变形操作效果如图5所示

图5【Visualc#处理图片】项目实现图片拉伸

变形时的运行界面

18.在Foml.es中的menuItem6的Click事件之后,添加下列代码,下列代码的作用是定义Fo肌l的Load事件,在此事件中实现在PictureBox组件中显示图片:

priVateVoidForml上oad(objectsender,Sys-tem.EventArgse}

{.

pictureBOxl.1mage=8mp丁emp;

19.至此【VisualC撑处理图片】项目就算完成了,在确定C盘存在“样品.jp∥文件的前提下,单击F5运行程序,分别选择【图片处理效果】中的菜单就可以得到图1至图5所示对图片进行相应处理的界面了。

三、总结

通过本文的介绍,可见VisualC#利用.NetFrameWorkSDK中提供的类库,的确能够方便、快速地处理图片,但也应该清楚,本文所介绍的图片处理只是一种物理上处理,下一节将在本节的基础上,介绍VisualC#图片处理中更深层次方面的内容,即:实现图片色彩的调节,明暗的调节、灰度调节等,虽然处理起来相对复杂,但这才是图片处理的关键和核心。

(收稿日期:2004年9月10日) 万方数据

Visual C#图形图像编程之三--处理图片

作者:马金虎

作者单位:

刊名:

电脑编程技巧与维护

英文刊名:COMPUTER PROGRAMMING SKILLS & MAINTENANCE

年,卷(期):2004,""(10)

被引用次数:0次

本文链接:https://www.360docs.net/doc/893791139.html,/Periodical_dnbcjqywh200410005.aspx

授权使用:武汉理工大学(whlgdx),授权号:71fee31a-be99-4ed6-a5ab-9e5900eb27ef

下载时间:2010年12月27日

图像处理编程总结

EmguCV编程总结 学习C#图像处理编程有一段时间了,然后写写自己的已经积累的经验,网上有关于C#数字图像处理的资料很少,教程方面,专门为C#数字图像处理的到目前为止我就看到了三本,这三本的内容都是利用GDI+来做图像处理的。GDI+为我们提供了图像处理所需要的一些类,还有一些函数。在结合C#做界面的优势,因此做图像处理我个人感觉要比c++和opencv方便,opencv中有强大的算法,但是就是这个界面不友好。在GDI+中只是提供了图像处理的类,还有少量的函数,如果真正要做处理,大量的函数还是的需要自己编写,我看到的这三本书上讲的基本上都是编写这些函数的内容,在GDI+编程中对图像处理通常有三种方式,第一种是利用纯C#的方式,理解简单,但是效率差。第二种是内存法,理解稍微困难点,但是效率比纯C#的要高几百倍。第三种就是在C#下利用指针了,当然利用指针就是效率最高的了,比内存法都要效率高,但是指针的理解比较困难,如果退指针理解还可以,就推荐用这种方法。 在前面的文章中我对比过在C#中用这三种方式灰度化图像的运行效率对比,还给出了具体时间。我看到的这三本C#图像处理的书上,其中一本的算法是按照内存法来写的,其他两本上的算法都是按照纯C#方法写的,效率令人堪忧。当然还有一些关于GDI+的书籍,这上面就介绍的内容就不单单是图像方面的处理了,还包括其他方面的内容,这是对学软件计算机的人看的,我们了解下就可以,再说,上面处理的方式都是纯C#的方式处理的,对我们图像处理来说效率实在不好,所以看看就好。 因此,C#图像处理的话,我推荐的是指针的方法,效率最好,速度快。 这是我们直接用C#来图像处理,当然大多数算法还得自己编写程序,反正我看到的教材上都是这样教的,但是实际中,我们写大量成熟的算法是很花时间的,估计写完这些都花个好几年时间了,因此,我们还得需要一些计算机视觉处理的库,调用其中的函数完成主要的处理功能。 有本名字叫《EmguCV Essentials》的书上就对现在常见的库做了对比,这本书上对比了有三种计算机视觉库,有opencv,EmguCV,https://www.360docs.net/doc/893791139.html,这三种库。 首先从许可证的获取方面做了对比,其中opencv是开放的,emguCv有开放的也有商业版的,https://www.360docs.net/doc/893791139.html,就没有前两种那开放了。下图就是对比结果:

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

数字图像处理 课程设计报告 姓名: 学号: 班级: 设计题目:图像处理 教师:赵哲老师 提交日期: 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)

IDL编程实现图像处理

IDL编程实现图像处理 pro example ENVI, /RESTORE_BASE_SAVE_FILES ENVI_BATCH_INIT tlb=widget_base(column=1,mbar=mbar,title='Example',tlb_frame_attr=1,xoffset=500,yo ffset=100,xsize=800,ysize=600,RESOURCE_NAME = 'example') filemenu=widget_button(mbar,value='File') fileopt1=widget_button(filemenu,value='Open',event_pro='open_event') fileopt2=widget_button(filemenu,value='Save',/menu) Save1= widget_button(fileopt2,value = 'binary',uname = 'savebinary') Save2= widget_button(fileopt2,value = 'jpg',uname = 'savejpg') Save3= widget_button(fileopt2,value = 'bmp',uname = 'savebmp') Save4= widget_button(fileopt2,value = 'tif',uname = 'savetif') Save5= widget_button(fileopt2,value = 'dat',uname = 'savedat') fileopt3=widget_button(filemenu,value='Exit',event_pro='exit_event',/separator) editmenu=widget_button(mbar,value='Edit') processopt1=widget_button(editmenu,value='K-L Transform', event_pro='K_L_event',/separator) processopt2=widget_button(editmenu,value='Histogram Equalization',event_pro='HistogramEqualization_event',/separator) processopt3=widget_button(editmenu,value='NDVI',event_pro='NDVI_event',/separator) processopt5=widget_button(editmenu,value='Image Smoothing',event_pro='IS_event') processopt4=widget_button(editmenu,value='edge enhancement',/menu) imageopt1=widget_button(processopt4,value='robort',event_pro='robort_event') imageopt2=widget_button(processopt4,value='sobel',event_pro='sobel_event') imageopt3=widget_button(processopt4,value='prewitt',event_pro='prewitt_event') helpmenu=widget_button(mbar,value='Help') idlhelp=widget_button(helpmenu,value='IDL help',event_pro='help_event') iconbase=widget_base(tlb,row=1,/frame)

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 -

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

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

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函数给变量循环赋值

数字图像处理课程设计题目和要求-2013

. . . .页脚. 数字图像处理课程设计容、要求 题目一:图像处理软件 1、设计容及要求: (1)、独立设计方案,实现对图像的十五种以上处理(比如:底片化效果、灰度增强、图像复原、浮雕效果、木刻效果等等)。 (2)、参考photoshop软件,设计软件界面,对处理前后的图像以及直方图等进行对比显示; (3)、将实验结果与其他软件实现的效果进行比较、分析。总结设计过程所遇到的问题。 2、参考方案(所有参考方案若无特殊说明,均以matlab为例说明): (1)实现图像处理的基本操作 学习使用matlab图像处理工具箱,利用imread()语句读入图像,例如 image=imread(flower.jpg),对图像进行显示(如imshow(image)),以及直方图计算和显示。 (2)图像处理算法的实现与显示 针对课程中学习的图像处理容,实现至少十五种图像处理功能,例如模糊、锐化、对比度增强、复原操作。改变图像处理的参数,查看处理结果的变化。自己设计要解决的问题,例如引入噪声,去噪;引入运动模糊、聚焦模糊等,对图像进行复原。 (3)参照“photoshop”软件,设计图像处理软件界面 可设计菜单式界面,在功能较少的情况下,也可以设计按键式界面,视功能多少而定;参考matlab软件中GUI设计,学习软件界面的设计。

. . . 题目二:数字水印 1、设计容及要求: 为保护数字图像作品的知识产权,采用数字水印技术嵌入水印图像于作品中,同时尽可能不影响作品的可用性,在作品发生争执时,通过提取水印信息确认作品。通常情况下,水印图像大小要远小于载体图像,嵌入水印后的图像可能遇到噪声、有损压缩、滤波等方面的攻击。因此,评价水印算法的原则就是水印的隐藏性和抗攻击性。根据这一要求,设计水印算法。 (1)、查阅文献、了解数字水印的基本概念。 (2)、深入理解一种简单的数字水印嵌入与提取方法。 (3)、能够显示水印嵌入前后的载体图像。 (4)、能够显示嵌入与提取的水印。 (5)、选择一种以上的攻击方法,测试水印算法的鲁棒性等性能。 (6)、设计软件界面 2、参考方案 (1)对水印图像进行编码置乱(可采用伪随机码,提高水印图像的隐蔽性); (2) 对图像进行子图像分解(如8*8),对子块分别进行DCT变换; (3) 对DCT系数按照zig-zag排序进行排列,选择一种频系数,对该种频系数相邻 的系数进行水印嵌入 (4) 低通滤波检验水印算法的抗攻击性。 (5) 设计数字水印的软件界面。 .页脚.

数字图像处理课程设计哈理工

数字图像处理课程设计 学院:自动化学院 专业:电子信息科学与技术 班级:姓名:12级 B方向樊晓晨 起讫日期:12月28日~1月1日指导教师:曹宇

摘要 基于数字信号处理原理,在数字滤波器设计理论和Matlab 编程技术及其GUI 图形用户界面设计的基础上,开发了具有交互式特点的数字图像处理GUI 软件,界面操作简单方便。 MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。 MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单、更加符合科技人员对数学表达式的书写格式,而且可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。 关键词:Matlab GUI;数字图像处理;图形用户界

目录 第1 章于MATLAB 的图形用户界面(GUI)设计............................................. - 1 - 1.1 前言............................................................................................................ - 1 - 1.2 句柄图形及图形用户界面........................................................................ - 1 - 1.3 GUIDE ........................................................................................................ - 1 - 1.3 .1GUI设计工具简介 ......................................................................... - 2 - 1.3 .2 编制回调程序................................................................................ - 2 - 第2 章课程设计的目的....................................................................................... - 3 - 第3 章课程设计的内容及要求........................................................................... - 4 - 第4 章设计内容及结果分析............................................................................... - 5 - 4.1 文件操作.................................................................................................... - 6 - 4.1.1 保存................................................................................................. - 6 - 4.1.3 退出................................................................................................. - 6 - 4.2 编辑............................................................................................................ - 7 - 4.2.1 灰度................................................................................................. - 7 - 4.2.2 截图................................................................................................. - 8 - 4.2.3 缩放................................................................................................. - 9 - 4.2.4 上下翻转....................................................................................... - 10 - 4.2.5 加入噪声....................................................................................... - 11 - 4.2.6 图片选择....................................................................................... - 13 - 4.2.7 二值图像....................................................................................... - 14 - 4.2.8 图像分割(计算45度边缘)..................................................... - 14 - 4.2.9 边缘检测....................................................................................... - 15 - 4.2.10 图像保存..................................................................................... - 16 - 第5 章课程设计的目的..................................................................................... - 18 - 第6 章参考文献................................................................................................. - 19 -

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

课程设计报告书课程名称:数字图像处理 题目:数字图像处理的傅里叶变换 学生姓名: 专业:计算机科学与技术 班别:计科本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年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。

图像处理课程设计报告

图像处理课程设计报告 导语:设计是把一种设想通过合理的规划周密的计划通过各种感觉形式传达出来的过程。以下是XX整理图像处理课程设计报告的资料,欢迎阅读参考。 图像处理课程设计报告1 摘要:图像处理技术从其功能上可以分为两大类:模拟图像处理技术、和数字图像处理技术。数字图像处理技术指的是将图像信号直接转换成为数字信号,并利用计算机进行处理的过程,其主要的特点在于处理的精度高、处理的内容丰富、可以进行复杂、难度较高的处理内容。当其不在于处理的速度比较缓慢。当前图像处理技术主要的是体现在数字处理技术上,本文说阐述的图像处理技术也是以数字图像处理技术为主要介绍对象。数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。近年来, 图像处理技术得到了快速发展, 呈现出较为明显的发展趋势, 了解和掌握这些发展趋势对于做好目前的图像处理工作具有前瞻性的指导意义。本文总结了现代图像处理技术的三点发展趋势。 对图像进行处理(或加工、分析)的主要目的有三个方面: (1)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。(2)提取图像中所包含的某些特征或特殊信息,这些被提

取的特征或信息往往为计算机分析图像提供便利。提取特征或信息的过程是计算机或计算机视觉的预处理。提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。 (3)图像数据的变换、编码和压缩,以便于图像的存储和传输。不管是 何种目的的图像处理,都需要由计算机和图像专用设备组成的图像处理系统对图像数据进行输入、加工和输出。 数字图像处理主要研究的内容有以下几个方面: 图像变换由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅里叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。 图像编码压缩图像编码压缩技术可减少描述图像的数据量,以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。

VC数字图像处理编程

图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需要。简单的说,依靠计算机对图像进行各种目的的处理我们就称之为数字图像处理。早期的数字图像处理的目的是以人为对象,为了满足人的视觉效果而改善图像的质量,处理过程中输入的是质量差的图像,输出的是质量好的图像,常用的图像处理方法有图像增强、复原等。随着计算机技术的发展,有一类图像处理是以机器为对象,处理的目的是使机器能够自动识别目标,这称之为图像的识别.图像处理技术博大精深,不仅需要有很强的数学功底,还需要熟练掌握一门计算机语言,在当前流行的语言中,Visual C++这个开发平台是图像开发人员的首选工具。 第一节图像的文件格式 要利用计算机对数字化图像进行处理,首先要对图像的文件格式要有清楚的认识,自然界的图像以模拟信号的形式存在,在用计算机进行处理以前,首先要数字化,比如摄像头(CCD)摄取的信号在送往计算机处理前,一般情况下要经过数模转换,这个任务常常由图像采集卡完成,它的输出一般为裸图的形式;如果用户想要生成目标图像文件,必须根据文件的格式做相应的处理。随着科技的发展,数码像机、数码摄像机已经进入寻常百姓家,我们可以利用这些设备作为图像处理系统的输入设备来为后续的图像处理提供信息源。无论是什么设备,它总是提供按一定的图像文件格式来提供信息,比较常用的有BMP 格式、JPEG格式、GIF格式等等,所以我们在进行图像处理以前,首先要对图像的格式要有清晰的认识,只有在此基础上才可以进行进一步的开发处理。 在讲述图像文件格式前,先对图像作一个简单的分类。除了最简单的图像外,所有的图像都有颜色,而单色图像则是带有颜色的图像中比较简单的格式,它一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,"1"表示黑色,"0"表示白色,当然也可以倒过来表示,这种图像称之为二值图像。我们也可以用8个比特(一个字节)表示一个像素,相当于把黑和白等分为256个级别,"0"表示为黑,"255"表示为白,该字节的数值表示相应像素值的灰度值或亮度值,数值越接近"0",对应像素点越黑,相反,则对应像素点越白,此种图像我们一般称之为灰度图像。单色图像和灰度图像又统称为黑白图像,与之对应存在着彩色图像,这种图像要复杂一些,表示图像时,常用的图像彩色模式有RGB模式、CMYK模式和HIS模式,一般情况下我们只使用RGB模式,R 对应红色,G对应绿色,B对应蓝色,它们统称为三基色,这三中色彩的不同搭配,就可以搭配成各种现实中的色彩,此时彩色图像的每一个像素都需要3个样本组成的一组数据表示,其中每个样本用于表示该像素的一个基本颜色。 对于现存的所有的图像文件格式,在这里主要介绍BMP图像文件格式,并且文件里的图像数据是未压缩的,因为图像的数字化处理主要是对图像中的各个像素进行相应的处理,而未压缩的BMP图像中的像素数值正好与实际要处理的数字图像相对应,这种格式的文件最合适我们对之进行数字化处理。请读者记住,压缩过的图像是无法直接进行数字化处理的,如JPEG、GIF等格式的文件,此时首先要对图像文件解压缩,这就要涉及到一些比较复杂的压缩算法。后续章节中我们将针对特殊的文件格式如何转换为BMP格式的文件问题作专门的论述,经过转换,我们就可以利用得到的未压缩的BMP文件格式进行后续处理。对于JPEG、GIF等格式,由于涉及到压缩算法,这要求读者掌握一定的信息论方面的知识,

图像处理课程设计

《图像处理技术应用实践》课程设计题目图像增强算法综合应用 学生姓名韩帅_______ 学号 院系计算机与软件学院 专业计算机科学与技术 范春年____ 噪声,不同的去噪方法效果不同,因此应该采用不同的去噪方法以达到最好的去噪效果。? (2)随机噪声应在空间域去除,而空域去噪方法中,中值滤波法效果最好。? (3)周期噪声应在频域中消去。?

(4)去除噪声后的图像仍然可以改善处理。? (5)均方误差评估去噪处理后图像的去噪效果。 2.2算法设计? (1)读入初始图片及加噪图片。? clc;?clear;? f=imread();? ? for?j?=?1?:?N? ???????d?=?sqrt((i-m)^2+(j-n)^2);? ????? h?=?1/(1+0.414*(d/d0)^(2*nn));??%?计算低通滤波器传递函数??????????? ?result(i,j)?=?h?*?G(i,j);???????? end???

end (4)计算均方误差评估去噪效果。? [m?n]=size(p);?l=f-p;? he=sum(sum(l));? avg=he/(m*n); ?k=l-avg;? result1=(sum(sum(k.^2)))/(m*n);? for i=1:M for j=1:N d=sqrt((i-m)^2+(j-n)^2); h=1/(1+0.414*(d/d0)^(2*nn)); %h=1/(1+(d/d0)^(2*nn)); %备用 G(i,j)=h*G(i,j); end end p=uint8(real(ifft2(ifftshift(G)))); subplot(341);imshow(f),title('原图'); subplot(345);imshow(log(abs(f2)),[]),title('频谱'); subplot(349);imhist(f),title('原图'); subplot(342);imshow(g),title('噪声');

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

本科综合课程设计报告 题 目 ____________________________ 指导教师__________________________ 辅导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________专业________________班 ___2008___年 _12__月 _30__日 数字图像处理演示系统 信息科学与技术学院 通信工程 052

1 主要内容 1.1数字图像处理背景及应用 数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。 1.2 图像处理演示系统设计要求 能加载和显示原始图像,显示和输出处理后的图像; 系统要便于维护和具备可扩展性; 界面友好便于操作; 1.3 图像处理演示系统设计任务 数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。 1.3.1几何变换 几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。简单的说,几何变换可以改变像素点所在的几何位置,以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。实际上,一个不受约束的几何变换,可将输入图像的一个点变换到输出图像中的任意位置。几何变换不仅提供了产生某些特殊图像的可能,甚至还可以使图像处理程序设计简单化。从变换性质来分可以分为图像的位置变换、形状变换等 1.3.2图像增强 图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”的信息,削弱或去除不需要的信息,以达到扩大图像中不同物体特征之间的差别,使处理后的图像对于特定应用而言,比原始图像更合适,或者为图像的信息提取以及其他图像分析技术奠定了基础。一般情况下,经过增强处理后,图像的视觉效果会发生改变,这种变化意味着图像的视觉效果得到了改善,某些特定信息得到了增强。

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

上海理工大学 计算机工程学院 实验报告 实验名称红细胞数目统计课程名称数字图像处理 姓名王磊学号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('【优化后二值化图象取反】');

图形图像处理实验报告

第四次实验报告 实验课程:图像图像处理实验人:尹丽(200921020047) 实验时间:2012年4月19日实验地点:5-602 指导老师:夏倩老师成绩: 一、实验内容: ⑴图像的锐化:使用Sobel,Laplacian 算子分别对图像进行运算,观察并体会运算结果。 ⑵综合练习:对需要进行处理的图像分析,正确运用所学的知识,采用正确的步骤,对图像进行各类处理,以得到令人满意的图像效果。 二、实验目的: 学会用Matlab中的下列函数对输入图像按实验内容进行运算;感受各种不同的图像处理方法对最终图像效果的影响。(imfilter;fspecial;) 三、实验步骤:

1、仔细阅读Matlab 帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。 2、将Fig3.41(c).jpg 图像文件读入Matlab ,使用filter2函数分别采用不同的算子对其作锐化运算,显示运算前后的图像。 3、算子的输入可采用直接输入法。其中Sobel ,Laplacian ,也可用fspecial 函数产生。 4、各类算子如下: ???? ??????---121000121 ??????????-111181111 5、将Fig3.46(a).jpg 图像文件读入Matlab ,按照以下步骤对其进行处理: (1)用带对角线的Laplacian 对其处理,以增强边缘。 (2)用imadd 函数叠加原始图像。可以看出噪声增强了,应想法降低。 (3)获取Sobel 模板并用filter2对其进行5×5邻域平均,以减少噪声。 5(1)实验代码如图: 对角线Laplacian Sobel 垂直梯度

相关文档
最新文档