《数字图像处理》实验指导书_第1页
《数字图像处理》实验指导书_第2页
《数字图像处理》实验指导书_第3页
《数字图像处理》实验指导书_第4页
《数字图像处理》实验指导书_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

《数字图像处理》试验指导书

前言

本试验指导书可作为电子信息工程、通信工程、生物医学工程等专业《数字图像处理》课程的

试验指导书。

试验指导书共供应了6个试验,要求在VB环境下实现。试验名称与学时支配详见下表。

试验名称与学时支配表

序号章目名称学时安排

I图象的读取保存及图像的二值化处理2

2FT变换以及FFT2

3DCT变换以及FDCT变换2

4简洁增加技术和直方图均衡2

5空域和频域滤波2

6阈值分割和边缘检测分割2

合计12

试验教学基本要求:

1、在试验前,仔细打算,熟识和驾驭相关试验内容的基本算法和程序设计技术。

2、依据试验目的和要求,按时仔细完成各试验的上机操作。

3、试验结束后,要刚好提交经调试正确的程序源代码、生成的可执行文件、试验报告书等文档。

试验一图象的读取保存及图像的二值化处理

一、试验目的

1、熟识《数字图像处理》的试验平台。

2、了解YB对图像进行处理的基本方法。

3、熟识彩色图像变成灰度图象以及灰度图像转换成二值图像的基本原理及处理过程。

二、试验打算

1、复习彩色图像变成灰度图象以及灰度图像的二值化处理的基本原理。

2、阅读下列内容,了解VB对图像进行处理的基本方法。

(1)读取图像

通过扫描仪、摄像机等输入计算机以.bmp、.ico或.wmf存储的图像文件,可用LoadPiciure函数

把图像文件装入窗体、图片框或图像框中,例如:

picture1.picture=lo2dpicture("c:\image\flower.bmp")

可以把路径为c:\image\flower.bmp的图像文件装入图片框picture1中。为了使图片框的大小与图像相

匹配,应将图片框的autosize属性设置为True。

(2)用Point方法获得彩色图像的颜色值

Point方法的功能是获得图像上指定像素的颜色值。格式为:

Objecl.Point(x>y)

其中,Object表示获得颜色的对象名,(x,y)为取得颜色的坐标位置。Point方法将指定位置的像

素的颜色值返回一个长整形数。例如,求图片框picture1中图像在位置(x,y)的像素颜色值(col)

时,可写为:

dimcolaslong

col=picturel.Point(x»y)

(3)用Psei方法画点

Pset方法的功能是在指定的位置画一个指定颜色的点。格式如下:

Object.Pset(x,y),〈颜色>

各部分的意义说明如下:

Object一一对象名,可以为窗体、图片框或打印机。

Pset------方法名。

(x,y)——画点的坐标位置,该坐标值以所给对象为参考点。

〈颜色》一一所画点的颜色,其取值为Rgb函数或QBColor函数的函数值。Rgb函数一般格式如

下:Rgb(r,g,b)

其中r、g、b分别代表红、绿、蓝,每个参数的取值为0〜255,。表示亮度最低,255表示亮度

最高。假如只有一个参数取值大于0,其他参数为0,就表示只有这一种颜色。如Rgb(255,0,0)

结果为亮红色。又如Rgb(255,255,0)是亮红色与亮绿色的混合色,结果是亮黄色。下表中给出

了Rgb函数中部分参数及结果。

QBColor函数一般格式如卜:

QBColor(参数)

其中参数取值为0〜15之间,每•个数值代表•种颜色。详细可参见下表。

(4)彩色位图颜色值分解

VB中供应了两个颜色函数:QBColor函数和RGB函数。其中,QBColor函数能够返回一个Long

型值,用来表示所对应颜色值的RGB颜色码。

像素颜色值是一个长整形数值,占用4个字节,最高位字节为0,其他3个低位字节依次为R、

G、B重量,值为0〜255。

两者的语法格式如下:

QBColor(color);

RGB(rcd,grccn,bluc)

其中,从col分解出R、G、B重量的算法为

col=Picturel.Point(x,y)

R=coland&hff

G=(coland&hffOO)/256

B=(coland&hffOOOO)/(256*256)

下表为不同颜色时两个函数对应的参数值:

QBColor参数Rgb参数颜色

00,0,()黑

10,0,128篮

20,128,0绿

30,128,128青

4128,0,0红

5128,0,128品红

6128,128,0黄

7192,192,192白

8128,128,128灰

90,0,255亮蓝

100,255,0亮绿

110,255,255亮青

12255,0,0亮红

13255,0,255亮品红

14255,255,0亮黄

15255,255,255亮白

三、试验内容与要求

1、用多种方法可编程实现将图片框1的图像诸像素复制到图片框2。可参照如卜.程序段:

fori=0topicture1.Wid(h-1

forj=0topicture1.Height-1

c=picture1.Point(i,j)

r=(cand&hff)

g=(cand&hfKX))/256

b=(cand&hffOOOO)/(256*256)

picturc2.pset(i,j),RGB(r,g,b)

nextj

nexti

或者picture1.picture=pic[ure2.picture

2、用不同方法编程实现将彩色图像变成灰度图像。可参考如下程序段:

fori=0topicture1.Width-1

forj=0topicture1.Height-1

c=picturel.Point(i,j)

r=(cand&hff)

g=(cand&hffOO)/256

b=(cand&hffU000)/(256*256)

rr=(r+g+b)/3

gg=(r+g+b)/3

bb=(r+g+b)/3

picture2.pset(i,j),RGB(rr,gg,bb)

nextj

nexti

3、会依据不同阈值编程实现灰度图像转化为二值图像。

四、试验报告

1、提交经调试正确的程序源代码及相关文档。

2、总结调试程序时遇到的问题及解决方案。

五:思索题

在对图像进行复制或者灰度改变的时候,VB处理速度特别慢,问题出现在哪里?

有什么方法可以解决?(提示:Point方法是提取象素点DI百法)

3、

试验二FT变换以及FFT

一、试验目的

1、驾驭傅立叶变换的原理和性质。

2、驾驭快速傅立叶变换的原理和方法。

二、试验打算

1,复习傅立叶变换和快速傅立叶变换的相关学问。

2、参考如下程序段,编写实现傅立叶变换的程序。

Forx=0ToM

Forv=0ToN

Fory=0ToN

re(x,v)=re(x,v)^(-1)Ay*f(x,y)*Cos(2*pi*(v*y)/N)

im(x,v)=ini(x,v)+(-1)Ay*f(x,y)*Sin(2*pi*(v*y)/N)

Nexty

Nextv

Nextx

Forv=0ToN

Foru=0ToM

Forx=0ToM

Real=Real+(-1)Ax*(1/N)*(re(x,v)*Cos(2*pi*(u*x)/M)+im(x,v)*Sin(2*pi*

(ii*x)/M))

imag=imag+(-1)Ax*(1/N)*(im(x,v)*Cos(2*pi*(u*x)/M)-rc(x,v)*Sin(2*pi*

(u*x)/M)

nextx

nextu

Nextv

3、参考如下程序段,编写实现快速傅立叶变换的程序。

一维FFT模块参考程序段:

PrivateSubWFft(PixelR()AsDouble,Pixell()AsDouble,wr()AsDouble,wi()AsDouble,ByVaiM

AsInteger,ByVaiNAsInteger)

DimIp,k,kk,1,incr,Iter,i,jAsInteger

DimTr,TiAsDouble

lp=l:kk=(N/2):incr=2

ForIter=0ToM-I

Forj=0ToN-1Stepincr

i=j+lp

Tr=PixelR(i)

Ti=Pixell(i)

PixelR(i)=PixelR(j)-Tr

PixelI(i)=PixelI(j)-Ti

PixelR(j)=PixelR(i)+Tr

Pixell(j)=Pixell(j)+Ti

Nextj

If(Iter<>0)Then

Fork=1ToIp-I

1=k*kk-1

Forj=kToN-1Stepincr

i=j+lp

Tr=PixclR(i)*wr(l)-Pixcll(i)*wi(l)

Ti=PixelR(i)*wi(l)+Pixell(i)*wr(l)

PixelR(i)=PixelR(j)-Tr

Pixell(i)=Pixell(j)-Ti

PixelR(j)=PixelR(j)+Tr

Pixell(j)=PixeII(j)+Ti

Nextj

Nextk

EndIf

kk=kk/2

Ip=Ip*2

incr=incr*2

NextIter

EndSub

三、试聆内容与要求

1、实现对一幅灰度图像的傅立叶变换和快速傅立叶变换,比较运行时间。

2、分析低频成份和高频成份对图像的作用。

四、试验报告

1、提交经调试正确的程序源代码及相关文档。

2、总结调试程序时遇到的问题及解决方案。

试睑三DCT变换以及FDCT变换

一、试验目的

1、驾驭离散余弦变换的基本原理。

2、熟识离散余弦变换及其•快速算法。

二、试验打算

1、复习离散余弦变换的相关学问。

2、编写实现离散余弦变换的程序。

三、试验内容与要求

1、编程实现对一幅灰度和彩色图像的离散余弦变换,选择适当的DCT系数阈值,对其进行DCT

反变换。

2、o

四、试验报告

I、提交经调试正确的程序源代码及相关文档。

2、总结调试程序时遇到的问题及解决方案。

试验四简洁增加技术和直方图均衡

一、试验目的

1、了解图像增加技术的主要方法。

2、驾驭直方图增加的基本原理。

3、了解并驾驭直方图统计方法以及分段线性拉伸、直方图均衡等亮度调整算法。

二、试验打算

1、复习图像增加技术的主要内容。

2、依据以下要求编写实现简洁图像增加的程序。

(1)图像求反:将原图灰度值翻转。

(2)对比度增加:博加图像各部分的反差。

(3)二值化处理:籽一幅灰度图象变换为黑白二值图象。

3、参考以下程序段编写显示图像直方图的程序。

Fori=0ToPicturel.Height-1

Forj=0ToPicture1.Width-1

c=Picture1Poinl(i,j)

r=cAnd&HFF

g=(cAnd&HFF00&)/256

b=(cAnd&HFF0000)/65535

rl=(r+g+b)/3

h(rl)=h(rl)+1

Nextj

Nexti

Fori=0To7

Forj=0To31

MSChartI.Row=i+1

MSChartl.Column=j+1

MSChartl.Data=h(i*32+j)/258/258

Nextj

Nexti

4、参考以下程序段编写对图像进行直方图均衡化的程序。

直方图均衡化就是把一已知灰度概率分布的图象经过一种变换,使之演化成一幅具有匀称概率

分布的新图像。

Fori=0To255

Forj=0Toi

s(i)=s(i)+h(j)7258/258

Nextj

s(i)=Int(s(i)*255+0.5)

Nexti

Fori=0ToPicture1.Height-1

Forj=0ToPicturel.Width-1

c=Picturel.Point(iJ)

r=cAnd&HFF

g=(cAnd&HFFOO&)/256

b=(cAnd&HFFOOOO)/65535

rl=(r+g+b)/3

rl=s(rl)

hl(rl)=hl(rl;+1

Picturc2.PSct(i,j),RGB(rl,rl,rl)

Nextj

Nexti

Fori=0To7

Forj=OTo3l

MSChart2.Row=i+1

MSChart2.Column=j+1

MSChart2.Data=hl(i*32+j)/258/258

Nextj

Nexti

三、试验内容与要求

1、调试运行自己编写的实现简洁图像增加的程序。

2、通过编程运行,视察各类图像的直方图。

3、采纳直方图均衡方法对低对比度的图像进行对比度增加。

四、试验报告

I、提交经调试正确的程序源代码及相关文档。

2、总结调试程序时遇到的问题及解决方案。

试验五空域和频域滤波

一、试验目的

1、驾驭空域滤波和频域滤波的基本原理。

2、熟识空域滤波中所用到的几种常用模板,熟识频域滤波中的几种滤波器。

二、试验打算

I,复习空域滤波和频域滤波的相关学问。

2、参照以下程序段编写用邻域平均法和中值滤波法消退图像噪声的程序。

Fori=0ToPicture1.Height-1

Forj=0ToPicture1.Width-1

c=Picture1Point(i,j)

r2(ij)=cAnd&HFF

g2(i,j)=(cAnd&HFF00&)/255

b2(i,j)=(cAnd&HFF0000)/65535

Nextj

Nexti

Fori=1ToPictureLWidth-2

Forj=1ToPicture1.Height-2

x=1

Forp=i-1Toi+1

Forq=j-1Toj+1

rx(x)=r2(p,q)

gx(x)=g2(p,q)

bx(x)=b2(p.q)

x=x+1

Nextq

Nextp

Forp=1To8

Forq=1To8

Ifrx(q)>rx(q+1)Then

y=rx(q)

r.K(q)=rx(q+1)

nc(q+l)=y

EndIf

Ifgx(q)>gx(q+1)Then

>=gx(q)

gx(q)=gx(q+1)

gx(q+l)=y

EndIf

Ifbx(q)>bx(q+1)Then

y=bx(q)

bx(q)=bx(q+1)

bx(q+l)=y

EndIf

Nextq

Nextp

Picture2.PSet(i,j),RGB(rx(5),gx(5),bx(5))

Nextj

3、任选以下两种算子(梯度算子、GAUSS算子、Sobel算子、拉普拉斯算子、Roberts算子等)

编写对图像进行滤波的程序。

参考程序段1:

Fori=1ToPicture1.Width-2

Forj=1ToPicture1.Height-2

rl=r(i,j-1)

r2=r(i-l,j)

r3=r(i,j)

r4=r(i+1J)

r5=r(i,j+l)

fx=-l#*rl-I#*r2+4#*r3-I#*r4-l#*r5

rx=Abs(fx)*5+20

Picturc2.PSct(i,j),RGB(rx,rx,rx)

Nextj

Nexti

参考程序段2:

Fori=0ToPictureI.Width-2

Forj=0ToPicture1.Height-2

rl=r(i,j)

r2=r(i+l,j+l)

r3=r(i+l,j)

r4=r(i,j+1)

fx=rl-r2

fy=r3-r4

rx=(Abs(fx)+Abs(fy))*5

Picture?.PSet(i,j),RGB(rx,rx,rx)

Nextj

Nexti

三、试验内容与要求

1、运行邻域平均法和中值滤波法消退图像噪声的程序,视察去噪效果,比较两种去噪方法的特

点。

2、运行用算子对图像进行滤波的程序,视察滤波效果,比较各种算子的特点。

四、试验报告

1、提交经调试正确的程序源代码及相关文档。

2、总结调试程序时遇到的问题及解决方案。

试验六阈值分割和边缘检测分割

一、试验目的

1、驾驭灰度阈值分割法的基本原理。

2、驾驭边缘检测分割法的思想以及几种常用的检测算子。

二、试验打算

1、复习灰度闹值分割的相关学问。

2、参照以下程序段计算图像的灰度阈值。

Fori=iToPicture1.Height-2

Forj=1ToPicture!.Width-2

hu(i,j)=(r(i,j)+g(iJ)+b(iJ))/3

Forkl=-1To1

Fork2=-lToI

ch=hu(i,j)-hu(i+k1,j+k2)

Ifch>=0Then

sl(hu(i,j))=sl(hu(i.j))+ch

Else

s2(hu(i,j))=s2(hu(i,j))+ch

EndIf

Nextk2

Nextkl

温馨提示

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

最新文档

评论

0/150

提交评论