武汉大学数字图像处理课程综合实习实习报告.docx

上传人:b****4 文档编号:4380674 上传时间:2022-12-01 格式:DOCX 页数:21 大小:397.55KB
下载 相关 举报
武汉大学数字图像处理课程综合实习实习报告.docx_第1页
第1页 / 共21页
武汉大学数字图像处理课程综合实习实习报告.docx_第2页
第2页 / 共21页
武汉大学数字图像处理课程综合实习实习报告.docx_第3页
第3页 / 共21页
武汉大学数字图像处理课程综合实习实习报告.docx_第4页
第4页 / 共21页
武汉大学数字图像处理课程综合实习实习报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

武汉大学数字图像处理课程综合实习实习报告.docx

《武汉大学数字图像处理课程综合实习实习报告.docx》由会员分享,可在线阅读,更多相关《武汉大学数字图像处理课程综合实习实习报告.docx(21页珍藏版)》请在冰豆网上搜索。

武汉大学数字图像处理课程综合实习实习报告.docx

武汉大学数字图像处理课程综合实习实习报告

数字图像处理课程综合实习

实习报告

学院班级学号姓名日期指导教师

一、实习目的和意义

本实习内容旨在让同学们通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

为学生进一步学习数字摄影测量、遥感和地理信息系统等专业课程以及应用图像处理解决实际问题奠定基础。

二、实习原理和方法

实习一实现RAW->BM格式的转换

RAV格式:

文件按照数字图像组成的二维矩阵,将像素按行列号顺序存储在文件中。

这种文件只含有图像像素数据,不含有信息头,因此,在读图像时,需要根据文件大小,计算图像所包含的行列号,或者需要事先知道图像大小(矩阵大小)。

但这种文件读取和保存简单。

RAW文件按图像上行到下行、左列到右列顺序存储,而BMP文件数据区按图像上下行到上行、左列列到右列顺序存储到数据区。

实现RAW文件到BMP文件的转换,需要为BMP文件生成文件头、信息头、颜色表、数据区,将RAW文件数据区赋值到BMP文件数据区。

实习二灰度线性变换

点运算是指像素值(即像素点上的灰度值)通过运算改变之后,可以改善图象的显示效果。

这是一种像素的逐点运算,是旧图象与新图象之间的映射关系,是一种简单但却十分有效的一种图象处理手段。

常用方法有灰度线性变换、直方图均衡、对比度调整、直方图规定化、对数变换、指数变换、密度分割等方法。

灰度的线性变换就是指图像的中所有点的灰度按照线性灰度变换函数进行变换。

灰度变换方程如下:

D0=f(Di)=a*Di+b该方程为线性方程。

式中参数Di为输入图像的像素的灰度值,参数DO为输出图像的灰度,a和b由给定条件确定。

实习三图像局部处理:

高通滤波和低通滤波

局部处理在处理某一像素时,利用与该像素相邻的一组像素,经过某种变换得到处理后图像中某一点的像素值。

目标像素的邻域一般是由像素组成的二维矩阵,该矩阵的大小为奇数,目标像素位于该矩阵的中央,即目标像素就是区域的中心像素。

经过处理后,目标像素的值为经过特定算法计算后所得的结果。

主要的局部处理算法有卷积、中值滤波sobel边缘检测等,其中卷积算法的应用最广泛,大部分的局部处理都采用卷积算法来实现。

卷积可以简单地看成加权求和的过程。

卷积时使用的权用一个很小的矩阵来表示,矩阵的大小是奇数,而且与使用的区域的大小相同。

这种权矩阵叫做卷积核,区域中的每个像素分别与卷积核中的每个元素相乘,所有乘积之和即为区域中心像素的新值。

比如,对于一个3x3的区域P与卷积核K卷积后,区域P的中心像素p5表示为:

9

P5PiK

i1

Pl

P2

P3

ki

k2

k3

P4

P5

P6

k4

k5

k6

其中,P=P7

P8

P9

,K=k7

k8

kg

卷积核中各元素叫做卷积系数。

卷积核中卷积系数的大小、方向积排列顺序决定了卷积的图像处理效果,如低通滤波:

图像平滑与模糊,高通滤波:

图像锐化与清晰。

通常采用3x3、5x5或7x7的卷积核,所有卷积核的行、列数都是奇数。

实习四图像几何变换:

缩放、旋转、平移、转置

1.图像平移

将图像中所有的点都按照指定的平移量水平、垂直移动。

设e,

■)为原图像上的一点,图像水平平移量•,垂直平移量为,则平移后点(:

,J的坐标变为(x1,y1)

用公式和齐次坐标可以表示为

由此可以计算出平移后每个像素点的新位置,实现平移

2.图像旋转

在笛卡尔坐标系中原始坐标为-,旋转,角后,坐标变为

尤1,V.

(「」),写成矩阵形式为

cosa

-fintr

0

设旋转后新图像的左上角为原点,把笛卡尔坐标系中的坐标换到屏幕坐标系,计算原始坐标'「旋转二角后的新坐标('>),可先将笛卡尔坐标系原点(0,0)平移到坐标点z吻,根据上式及上式的逆式进行旋转,最后平移回新的坐标原点

pi-1[10

卜H7

£ina

cosct

0

设旋转前中心坐标为3息),旋转后中心坐标为险/泊

玄1=xcCQSof—jgsina—cos口+sincr—眄

3勺=xQsincd^—£i0sina—cosa—

3.图像缩放

设源图中某个像素点坐标为■,经缩放后的坐标为

%)

则有

户]

ZoomX

0

Q

严申]

*

=

0

0

L1J

0

C

1

LiJ

4.图像转置

图像转置是一种较简单的几何变换,设源图中的某个像素点坐标为-,其转置对应新图坐标为(「「),二者的关系如下

实习五图像边缘提取:

中值滤波、边缘检测

中值滤波是一种典型的低通滤波器,它的目的是去除噪声,同时

能保护图像边缘。

中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中个点灰度值的中值来代替指定点(一般为窗口中心)的灰度

值。

对于奇数个元素,中值是取窗口中各元素按由小到大排序后中间的灰度值;对于偶数个元素,一般取排序后中间两个元素灰度值的平均值为中值。

对于阶跃状边缘,在边缘点处一阶导数有极值,因此可以利用这一特性通过计算每个像素的梯度来检测边缘点。

对于离散图像来说,常用一阶差分近似表示一阶导数,即

fx'=f(x+1,y)-f(x,y)

fy'=f(x,y+1)-f(x,y)

为简化梯度的计算,常用下面的近似表达式:

grad(x,y)二max(|fx'|,|fy'|),grad(x,y)=|fx'|+|fy'|

常用的梯度算子有Roberts梯度算子、Prewitt算子和Sobel算子。

对于阶跃状边缘,其二阶导数在边缘点出现零交叉,且边缘点两旁二阶导数取异号。

对数字图像的每个像素计算关于x和y方向的二阶偏导数之和。

实习六基于灰度的模板匹配

所谓模板匹配,是根据模板与一幅图像的各部分的相似度判断其

是否存在,并求得模板在图像中位置的操作。

设模板T叠放在搜索

图像s上平移,模板覆盖的搜索区叫做子图像—,i,j为子图像的

左上角在S图像中的坐标,i,j的取值范围为1

衡量子图像和模板之间的差别用平方误差之和或绝对差之和来表示,即

awnsvxwa=oa*xcBanw■IJLJi

D〔iJ)=工》p/wnj_■)]

ir.=1n=1

或者

也可用相关函数作为相似性测度

或者归一化为

实习七基于特征的模板匹配

由于图像往往有较强自相关性,因此,进行模板匹配计算的相似度就在以对象物存在的地方为中心形成平缓的峰。

这样,即使从图像

中对象物的真实位置稍微离开一点,也表现出相当高的相似度。

为了求得对象物的精确位置,总希望相似度分布尽可能尖锐一些。

为了达到这一目的,提出了基于轮廓特征的模板匹配方法。

轮廓

匹配与一般的匹配相比较,表现出更尖锐的相似度的分布。

但其方法与基于灰度的模板匹配相似,只是这里通过对图像轮廓等形状特征进行匹配,从而提高匹配精度。

实习八图像二值化

1.状态法(峰谷法)

如果一幅灰度图像的直方图有双峰和明显的谷,那么选择两峰之间的谷所对应的灰度T作为阈值,按下式进行二值化,即可将目标从图像中分割出来:

=k/fey)

2.判断分析法

I順定櫥収图的获度区间为[0,Hb則选择•鋼值的像素分妁耳、:

两纽.—

召v)

]e2>T像素散为叱*尿度平均值为叫.方差为於<2)

阳像思慢索蛙為“I+w—灰卓均催为洞■伽严1+%叫)M州+%)*里向方垃为

云■W|屍+wacr;.組间方羞为硏:

■甲伽_耐尸十叫(旳-rrt)1=i(jWj-ni])1

显然.组内方辇越小.则组内憾素越相假t组闾方差堪大,则纽间的差别越人.岡此.

为堀人辿昕对应的九轅是所求判酹分析法的分割網值.

三、实习过程和步骤

实习一实现RAW->BM格式的转换

1.打开自己实习所建的项目。

2.添加菜单项“RAW—〉BMP

3.为该菜单建立消息处理函数。

4.在函数定义处添加自己的源代码。

5.编译检查语法错误。

若编译通过,运行程序,检查是否正确实现RAV—〉BMP格式的转换。

流程图如下图所示:

TT尹口矿丁叶.办谓内召,料垃插法人内?

?

剧a乜■?

亂文龄人专<■■闿戈广Zg-amLxpmmE.iDEP..>三■址口竺;

M)約优悝■荷电具(苗置胡恬恐人辿种帕|BmiAPD^OHEADER.■£

己y

越T初鬥芜比■址T寤日喑间也*RGBQUADr芒职郴兹「

判斷愈懂摇打騎占孚节

航崔由是斗釣55養需

按(®[tas)+3i)jn・町讣算世證的宝前存側畫

虫,曲巾刼乞丄,舟幻厅有媲書孑比峙融

耀过FFV.、忖ft

通宜从上剧卜、甌&三'皆环对肿有"松JR值“M吋籽*卜充祜分』卜零.袒行为学怪写扎准图左严.

实习二灰度线性变换

1•打开自己上次实习所建的项目,为该工程添加一个新类,用于实现对BMP格式图像文件进行处理的操作。

2.在新类中加入相应属性和操作。

3.在自己创建的类中添加线性拉伸操作。

4.添加一栏主菜单“图像增强”,再在其下拉菜单中加入一项“线性拉伸”子菜单。

建立消息处理函数。

5.为子菜单“线性拉伸”。

6.在函数定义处添加自己的源代码(通过自己建的类对象来实现)。

7.编译检查语法错误,若编译通过,运行程序,检查设计的灰度线性变换程序是否正确。

其流程图如下图所示:

茯取駆像囱度•蛮建,饋色数以堆捋一存所

片牛节豔盘仃关伯息

奄计服图像帰覽柘尽,卜灰度级{眾茨復范1恥

相据统性变换赴式让算线性査換后的MO

更新圈像

匹疔战禹返MTRLT

实习三图像局部处理:

高通滤波和低通滤波

1.打开上次实习所建的项目。

2.在自己创建的类中添加滤波操作。

3.添加菜单项分别建立“3X3低通滤波”、“3X3高通滤波”

4.为新加的两个菜单项分别建立消息处理函数。

5.在函数体内添加实现3X3低通滤波(或3X3低通滤波)的源代码。

6.编译检查语法错误,若编译通过,运行程序,检查是否确实实现局部处理算法。

其流程图如下图所示:

实习四图像几何变换:

缩放、旋转、平移、转置

1•打开上次实习创建的工程。

2.为该工程添加一个新类,用于实现有关BMP格式图像文件处理的各种操作。

3.在新类中加入相应属性和操作。

4.在菜单中加入“平移/缩放/旋转/转置”菜单项,并为其添加相应消息处理函数。

5.在函数定义处添加自己的源代码(通过调用新建类的对象中相应的操作来实现)。

6.编译检查语法错误,若编译通过,运行程序,检查上述变换是否正确。

其流程图如下图所示:

*fl

F

炳更!

調煙喜慮、宅恵、额企舒・砖行所占字节叢决能■尊丈彷节耳鹫信忌

大心楣辰的同曇否蛊功丫

 

¥

*

将桂4:

甞毛槪荐”哉看山溝的内存屯

亟冋EA1SE

故置吏・i・j*H«,jO4>MStt«»J6

ft倉空标和更豊樽犠■坐幹

 

通垃■歼从上耋几弦找商新圈体稈「避色汁样其乏袴亍.的护悴占i:

ic.理

幡匡世标症■的■

僕总.伍为工处

 

用B・14用像錠转处理的流程用

 

也乂变虽・调用DIB.方法摄衍播象氏•宽、厅字节.位数豐

碾据稱放比例订再綁阳像大小.

用3-15

讣惮悼图煙与斷阁像等僅素对网像柔坐标’茂礙祈阳價中施皈斎哦強

起廉翁放处理的流弄圄

•为新图華分配内存

实习五图像边缘提取:

中值滤波、边缘检测

(1)中值滤波

1.打开上次实习所用的项目。

2.在自己创建的类中添加中值滤波操作。

3.添加菜单项“中值滤波”。

4.为新加的菜单项建立消息处理函数。

5.在函数体内添加实现中值滤波的源代码。

6.编译检查语法错误,若编译通过,运行程序,检查是否正确实现中值滤波算法。

其流程图如下图所示:

(2)边缘检测

1.打开上次实习所用的项目。

2.在自己创建的类中添加各种边缘检测操作。

3.添加菜单项“边缘检测”,再为“边缘检测”菜单添加子菜单项“Roberts边缘检测”、“Prewitt边缘检测”、“Sobel边缘检测””

4.为新加的菜单项建立消息处理函数。

5.在函数体内添加实现中值滤波的源代码(通过类对象中的操作来实现)。

6.编译检查语法错误,若编译通过,运行程序,观察与分析边缘检测算子检测结果。

其算法与流程与局部处理相似,此处略去。

实习六基于灰度的模板匹配

1.打开上次实习所用的项目

2.在自己创建的类中添加基于灰度的模板匹配操作。

3.添加菜单项“基于灰度的模板匹配”。

4.为新加的菜单项建立消息处理函数。

5.在函数体内添加实现中值滤波的源代码(通过类对象中的操作来实现)。

6.编译检查语法错误,若编译通过,运行程序,观察基于灰度模板匹配得到的结果是否与模板一致。

其流程图如下图所示:

实习七基于特征的模板匹配

1.打开上次实习所用的项目。

2.在自己创建的类中添加基于特征的模板匹配操作。

3.添加菜单项“基于特征的模板匹配”。

4.为新加的菜单项建立消息处理函数。

5.在函数体内添加实现中值滤波的源代码(通过类对象中的操作来实现)。

6.编译检查语法错误,若编译通过,运行程序,观察基于特征模板匹配得到的结果是否与模板一致。

其流程与基于灰度的模板匹配流程相似,但在计算模板与重叠影像的相关系数之前,先要将模板和位图都进行边缘提取。

实习八图像二值化

1.打开上次实习所用的项目。

2.在自己创建的类中添加各种图像分割算法操作。

3.添加菜单项“状态法(峰谷法)/判断分析法”。

4.为新加的菜单项建立消息处理函数。

5.在函数体内添加实现中值滤波的源代码(通过类对象中的操作来实现)。

6.编译检查语法错误,若编译通过,运行程序,观察判断两种方法的分割效果,对结果进行分析和比较。

其流程图如下图所示:

0XC-OO1

四、实习结果分析与评价

文件(Fi痍車E}亘盲M还疗匿嗥搐式转换冒墟左强几何更匱擁分割模版匹匱也(W)帮臥H)

D曲日|X「:

F昌?

打开一张图像后,显示的菜单项如下图所示:

文恃旧壹看(V)帮瞅H)

D也翳亀1场

运行程序时,显示的菜单项如下图所示:

(1)实现RAW->BM格式的转换

点击“格式转换”菜单项的子菜单项“RawtoBmp”,出现以下

对话框:

RawToBmp

此对话框优点在于能够根据给定的Raw格式自动算出图像的宽和高,但两个组框的功能尚未实现,且转换后的图像相对于原图像是倒的。

先打开一幅灰度图像,选择“图像增强”中的“线性变换”子菜单,可以出现如下对话框:

(2)灰度线性变换

输入范围后可调整图像的灰度范围

(3)图像局部处理:

高通滤波,低通滤波和中值滤波

选择“图像增强”菜单中的“局部处理”子菜单,会弹出几个子菜单,有3*3高通滤波,3*3低通滤波,中值滤波,选择后直接对图像进行处理。

3*3高通滤波:

 

3*3低通滤波:

中值滤波:

(4)图像几何变换:

平移、缩放、旋转选择菜单项,会弹出对应的对话框,平移:

缩放:

旋转:

(5)图像边缘检测:

Roberts算子,Prewitt算子,Sobel算子

边缘检测的算子则可以将图像轮廓的边缘提取出来。

如下图所

示:

Roberts算子:

Prewitt算子:

Sobel算子:

1,

浏览

I丫JW:

.-

选择了模板文件后,开始匹配,其结果如下图所示:

(6)基于灰度的模板匹配

先打开一幅8位位图,选择对应的菜单项后,会弹出如下对话框:

基于茯虔的鳞匹配

模版文件路径=

该方法的缺点是运算速度太慢。

(7)基于特征的模板匹配

该程序的过程和基于灰度的模板匹配基本一样,其结果如下图:

(8)图像二值化

下图所示分别为状态法和判断分析法的结果:

 

其中,状态法比较简单,但不适合于两峰值相差较大、有宽且平的谷底的图像。

五、实习总结与体会

通过这次数字图像处理实习,我受益匪浅。

它不仅让我对数字图像处理这门课程有了更深刻的理解,加深和巩固了所学的知识,还让我的VC+编程的水平得以提高。

在这次实习中,我发现了许多自身的不足。

首先,我对数字图像处理这门课程中的一些知识及原理并未真正掌握,即“知其然却不知其所以然”。

其次,通过这次实习也让我深刻意识到自己的编程能力还亟待提高。

由于自身编程水平的不足,刚开始实习时,感到有些手足无措。

但是在老师和同学的指点及自己的不断尝试下,渐渐掌握了一些方法。

鉴于自己出现的这些情况并非特例,我觉得以后在这门实习之

前,老师可以集中讲一下必要的VC+及MFC的相关知识,相信会对大家有所帮助。

此外,由于这门实习对学习数字图像处理这门课程本身也很有帮助,可以将其中的一些编程作为作业留给大家,这样能够更好地帮助大家理解和掌握这门课程。

成绩评定

项目

得分

文字正确、语句通顺,内容充实、详略得当(10分)

原理叙述清楚(10分)

算法设计正确(20分)

过程清楚、步骤详细(20分)

对实验结果分析恰当、能分析算法的优点和不足,并叙述正确(20分)

成果验收答辩讲叙清楚、回答问题正确(20分)

发现有拷贝、雷同、抄袭(视情况扣大于30分)

总成绩

教师签名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1