第一篇:数字图像处理课程设计
1.前言
数字图像处理技术是20世纪60年代开始发展起来的一门新兴学科。近40年来,由于大规模集成电路和计算机技术的迅速发展,离散数学的创立及理论上的不断突破,以及军事、医学和工业等方面应用需求的不断增长,数字图像处理的理论和方法发展迅速,图像处理技术不断完善,不仅在理论研究上取得了很大的进展,而且其应用领域也日益扩大。随着科技的进步以及人类需求的多样化发展,多学科的交叉、融合已成为现代科学发展的突出特色和重要途径。因此,数字图像处理学科正逐步向其他学科领域渗透,并为其他学科的研究和发展提供基础性支持。
众所周知,人类正在实践的21世纪是一个信息时代。今天的社会,信息技术已经全面服务于社会生产和生活的方方面面,人们所做工作的相当一部分就是对信息的处理和传输,其中图像是人类获取信息、表达信息和传递信息的重要手段,是人类感知和认识世界的基础。有关研究表明,日常生活中人们所接受的各种信息中图像信息占总信息量的80%左右,从这一角度看,“百闻不如一见”正是图像处理重要性的形象表达和经验总结。因此,数字图像处理技术无论是对于21世纪的科学理论研究,还是工程应用都将具有重要的影响。国内外许多有识之士指出,从某种意义上讲,数字图像处理是实现智能计算机、智能机器人或多媒体通信系统的基础,未来计算机及智能机器人的发展与进步将在一定程度上依赖于机器视觉信息处理理论和技术的突破。虽然相对于经典学科,数字图像处理还很年轻,但日趋成熟的数字图像处理技术已经在很多方面得到深入而广泛的应用,一定程度上改变了人类的生活,给人们的日常生活、学习、工作带来极大的方便。例如,Internet上的视频广播、现代卫星或遥感照片的合成和处理、工业产品的自动检测、各种医学影像和图像的处理、远程医疗诊断及手术以及视频会议、视频电话等都采用了图像处理技术实现实时信息交互。
在信息化的今天,信息技术已经全面服务于社会的生产和生活的各个方面。信息是抽象的,它依附在各种媒体所表示的数据中,其中,图像信息是人类赖以获取信息的最重要来源之一。随着计算机技术的迅猛发展,图像和图形技术不断融合,产生了各种图像处理、CAD软件。这些软件被广泛应用于计算机科学、1 工程学、统计学、物理学、信息科学、化学、生物学、医学乃至社会科学等领域,取得了令人瞩目的成就。
MATLAB自1984年由美国MathWorks公司推向市场以来,经历了二十多年的发展,现已成为国际公认的最优秀的科技应用软件。MATLAB既是一种直观高效的计算机语言,同时又是一个科学计算平台,它为数据分析和数据可视化算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。
正是由于MATLAB的各种优势和特点,以及其版本的不断更新和功能的不断完善和强大,特别是它在图形处理上的优越性,本次课程设计就是利用MATLAB图像处理工具箱函数来进行图像增强。2.设计的内容
本次课程设计我做的题目是“基于matlab图像增强的比较及其理论分析”,图像增强所包含的主要内容如下图:
灰度变换
均衡化点运算直方图修正法规定化 空间域局部统计法 图像平滑 局部运算图像锐化 图像增强高通滤波
频率域低通滤波同态滤波增强 假彩色增强
彩色增强伪彩色增强 彩色变换及应用 图像的代数运算
图像增强是采用一系列技术去改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。例如采用一系列技术有选择的突出某些感兴趣的信息,同时抑制一些不需要的信息,提高图像的使用价值。鉴于以上理论知识,我先在网上下载一幅灰度图片,然后对其依次进行如下操作: 1.将该图片导入MATLAB工作平台;
2.利用MATLAB图像处理工具箱提供的模拟噪声生成函数imnoise,分别对该图片模拟加入高斯噪声和椒盐噪声;
3.利用MATLAB软件对加入噪声的该图片进行中值滤波和均值滤波处理; 4.记录处理后生成的图样,比较分析哪种方法增强效果最佳。3.流程图 4.总体方案设计及原理
4.1验证图片是否为灰度图片
本次课设要求是对灰度图片进行处理,因此必须保证是灰度图片,在MATLAB中能实现对图片属性的查看。在MATLAB命令输入窗中,调用函数info=imfinfo(‘FILENAME.FMT’)。如查看我用的图片属性,在命令窗口输入info=imfinfo('植物大战僵尸.JPG'),得到如下结果: info =
Filename: '植物大战僵尸.JPG'
FileModDate: '22-Jun-2009 14:23:46'
FileSize: 177051
Format: 'jpg'
FormatVersion: ''
Width: 601
Height: 812
BitDepth: 8
ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {} 在ColorType: 'grayscale'
属性行如此显示,则说明以刘亦菲.JPG命名的文件为灰度图像。
4.2导入图片到MATLAB工作平台
首先在MATLAB命令窗口中将其执行路径更改到要处理的灰度图片的路径,然后读取图像。函数imread可以从任何MATLAB支持的图像文件格式中,以任意位深度读取一幅图像。格式为:
[X,MAP]=imread(‘FILENAME.FMT’),其中:
FILENAME-为需要读入的图像文件名称,FMT-为图像格式。4.3对图片模拟加入高斯噪声和椒盐噪声
Matlab图像处理工具箱提供了模拟噪声生成的函数imnoise,格式为: J=imnoise(I,type)J=imnoise(I,type,parameters)其中:
I为输入图像,J为叠加噪声后的图像。type为噪声类型,parameters为各噪声相应的参数。常用的噪声类型如下: J=imnoise(I,'gaussian',M,V)均值M,方差为V的高斯噪声。M、V的缺省值为0、0.01; J=imnoise(I,'salt & pepper',D)噪声浓度为D的椒盐噪声。D的缺省值为0.05; J=imnoise(I,'speckle',V)方差为V的乘法性噪声。V的缺省值为0.04。
4.4显示原图片和加入噪声的图片
本次用到的MATLAB的图像显示函数为imshow,格式为: imshow(I,n)其中:
I-为图片的代码,n-为显示灰度级为n的图像,n缺省为256。
4.5中值滤波处理
MATLAB图像处理工具箱中,提供了medfilt2和ordfilt2函数,用于实现中值滤波。
medfilt2格式为:
B=medfilt2(A,[m n])其中:
A为输入图像,B为输出图像,[m n]为窗口大小,缺省为[3 3]。ordfilt2的格式为:
Y=ordfilt2(X,order,domain)其中:
X为输入图像,Y为输出图像,order为滤波器输出顺序值,domain为滤波窗口矩阵。
Y=ordfilt2(X,5,ones(3,3))%中值滤波Y=medfilt2(X,[3 3])Y=ordfilt2(X,1,ones(3,3))%最小滤波 Y=ordfilt2(X,9,ones(3,3))%最大滤波 4.6均值滤波处理
MATLAB图像处理工具箱提供了filter2和fspecial函数用于对图像进行均值滤波。
(1)filter2用于对图像作卷积滤波,格式为: B=filter2(h,A,shape)其中:
A为输入图像,h为滤波算子,B为输出图像,shape为指定滤波计算范围: shape='full'时,作边界补0 shape='same'时,返回的图像B与输入的图像A大小相同 shape='valid'时,补考虑边界补0,只计算有效输出部分。(2)fspecial用于产生预定义的滤波算子,格式为: h=fspecial(type,para)其中:
参数type指定算子类型,para为指定相应的参数。type='average',表示为均值滤波器,para默认为3 4.7源代码
I=imread('植物大战僵尸.JPG');
%读取图片
J1=imnoise(I,'gaussian',0,0.04);%加入高斯噪声,均值为0方差为0.04
J2=imnoise(I,'salt & pepper',0.09);%加入椒盐噪声,噪声浓度为0.09 K1 = medfilt2(J1);
%对图片J1进行中值滤波 K2 = medfilt2(J2);
%对图片J2进行中值滤波 K3 = filter2(fspecial('average',1),J1);%对图片J1进行均值滤波 K4 = filter2(fspecial('average',1),J2);%对图片J2进行均值滤波 Pause
%程序执行暂停 figure(1)subplot(1,3,1)
%子图方式显示 imshow(I)
%显示图片I title('原始图片')
%给图片加入标题 subplot(1,3,2)imshow(J1)title('高斯噪声')subplot(1,3,3)imshow(J2)title('椒盐噪声')pause figure(2)subplot(2,2,1)imshow(I)title('原始图片')subplot(2,2,2)imshow(J1)title('高斯噪声')subplot(2,2,3)imshow(K1)title('中值滤波')subplot(2,2,4)imshow(K3)title('均值滤波')pause figure(3)subplot(2,2,1)imshow(I)title('原始图片')subplot(2,2,2)imshow(J2)title('椒盐噪声')subplot(2,2,3)imshow(K2)title('中值滤波')subplot(2,2,4)imshow(K4)title('均值滤波')4.8结果显示
在MATLAB命令窗口中输入上述代码,按下回车键,就可以显示结果,如下面三幅图所示 5.结果分析
5.1均值滤波
均值滤波是最简单的均值滤波,均值简单的平滑了一幅图像的局部变化,在模糊了图像的同时减少了噪声,但在滤波过程中会丢失图像细节,如第5幅和第6幅图像所示,当该图像的参数shape='full'时,作边界补0,因此后两幅看起来就是“空白”,几乎丢失了图像的全部细节。如果对图像干扰的某一噪声具有这样的特点:对图像中任意相邻两点的干扰是互不相关的。那么,若某一象素中含有噪声,而其它周围的邻点却不一定有噪声。因此,和邻近各点相比,该点的灰度值将有显著的不同。
这样就可以从图像中取一子区域(称为邻域),其内含若干象素,要处理的象素位于邻域的中心。然后求出邻域中各象素(不包含要处理的象素点)的灰度平均值:
g(m,n)1f(m1,n)f(m1,n)f(m,n1)f(m,n1) 4由于图像中相邻象素之间有很强的相关性,如果该点(m,n)无噪声,则其灰度应和邻域平均值基本相等,反之,两者有明显差别。
这是用邻域平均值代替该点的灰度值,可以在一定程度上消除噪声。
5.2中值滤波
中值滤波的应用非常广泛,因为对于很多种随机噪声,它都有良好的去噪能力,且在相同尺寸下比线性平滑滤波引起的模糊更少。中值滤波尤其对单极或双极脉冲噪声非常有效。
最大值滤波对发现图像中的最亮点非常有用。同样,因为“胡椒”噪声是非常低的值,作为子图像区域的最大值选择结果,他可以通过这种滤波消除;最小值滤波对发现图像中的最暗点非常有用。同样,作为最小值操作的结果,它可以用来消除“盐”噪声。对于高斯和均匀随机分布这类噪声有最好的效果。设有一序列:
fif1,f2,...,fn
有n个值,在序列中任取m个连续值:
fiv,fiv1,...,fi1,fi,fi1,...,fiv1,fiv m为奇数3、5、7等: m2v1
将这m个值从小到大排序,取中间值作为滤波器输出,表示为:
fi'medfiv,...,fi,...,fiv,i1,2,...,n。例如:fi为
...0 3 4 4 5 3 2 0 1 4 3 0...取m为3时的中值滤波:
...0 3 4 4 4 3 2 1 1 3 3 0...取m为3时的平滑滤波:
...0 7/3 11/3 4 11/3 3 2 4/3 5/3 7/3...中值滤波不影响阶跃函数和斜波函数,周期小于m/2的脉冲将抑制,三角函数顶部变平。因此可以消除噪声
通过观察第2幅图可以看出,经medfilt2函数处理椒盐噪声后的图像几乎复原了原始图像,其效果比相同条件下的高斯噪声处理要好很多。综合分析上述各幅图像我们可以得出结论:在处理椒盐噪声的问题上,中值滤波比均值滤波更优越;在处理高斯噪声的问题上,均值滤波比中值滤波效果稍微好一点。6.心得体会
经过一个多星期的关于数字图像处理的课程设计,在老师和同学的帮助下,我基本上完成了这次任务,通过这次课程设计我收获颇多,概而言之,大约以下几点:
一、温故而知新。课程设计发端之始,思绪全无,举步维艰,对于理论知识学习不够扎实的我深感“书到用时方恨少”,于是想起圣人之言“温故而知新”,便重拾教材与实验手册,对知识系统而全面进行了梳理,遇到难处先是苦思冥想再向同学请教,终于熟练掌握了基本理论知识,而且领悟诸多平时学习难以理解掌握的较难知识,学会了如何思考的思维方式,找到了设计的灵感。
二、理论联系实际。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,值得一提的是刚开始在滤波问题上我被卡住了,我以为是下载的MATLAB软件没有这个库函数,卸载后装上另一款,结果还是不能解决,请教了很多同学才发现要处理的图片根本不是灰度图片,重新换了张图片就成功了。这毕竟是第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总的来说,这次设计的关于图像处理的课程设计还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,更加强了团队合作的意识,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献
[1] R.C.Gonzalez, R.E.Woods, S.L.Eddins,数字图像处理(MATLAB版)阮秋琦 等译, 北京:电子工业出版社,2007.10.[2]孙祥 徐流美 吴清编著,MATLAB7.0基础教程 北京:清华大学出版社,2005.5.[3] 吴国平主编,数字图像处理原理 北京:电子工业出版社,2007.9 [4] 王慧琴主编,数字图像处理 北京:高等教育出版社,2006.5 [5] 霍宏涛主编,数字图像处理 北京:清华大学出版社,2002.9
第二篇:数字图像处理课程设计
数字图像处理课程设计
目
录
1.课设目的..............................................................................................................................................1 2.背景与基本原理...................................................................................................................................1 2.1背景................................................................................................................................................1 2.2基本原理........................................................................................................................................1 2.2.1基本概念.................................................................................................................................1 2.2.2基本策略:.............................................................................................................................2 2.2.3边缘检测.................................................................................................................................3 2.2.4导数和噪声.............................................................................................................................4 2.2.5高斯拉普拉斯(LOG).........................................................................................................4 2.2.6边缘连接和边缘检测.............................................................................................................4 3.源代码...................................................................................................................................................5 3.1对于只有车牌无车身的图像:....................................................................................................5 3.2对于有车身和车牌连接的图像....................................................................................................5 4.处理结果...............................................................................................................................................6 4.1对于只有车牌无车身的图像:....................................................................................................6 4.2对于有车身和车牌连接的图像....................................................................................................8 5.心得体会...............................................................................................................................................9 6.参考文献...............................................................................................................................................9
数字图像处理课程设计
1.课设目的
1)加强对数字图像处理的理解 2)了解图像分割的基本原理和应用
2.背景与基本原理
2.1背景
数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。有些算法需要先对图像进行粗分割,因为他们需要从图像中提取出来的信息。许多不同种类的图像或景物都可作为待分割的图像数据,不同类型的图像,已经有相对应的分割方法对其分割,同时,某些分割方法也只是适合于某些特殊类型的图像分割。分割结果的好坏需要根据具体的场合及要求衡量。在本报告中是对车辆牌照中的文字和数字部分进行处理。
2.2基本原理
2.2.1基本概念
图像分割(Image Segmentation)是指将图像中具有特殊涵义的不同区域区分开来,这些区域是互相不交叉的,每一个区域都满足特定区域的一致性。图像分割是图像识别和图像理解的基本前提步骤
数字图像处理课程设计
2.2.2基本策略:
(1)间断检测
数字图像中三种基本类型的灰度级间断: 点、线、边。寻找间断的最一般的方法是:模板检测。图像中任一点的模板响应为:
Rw1z1w2z2w9z9wizii19(2)点检测
用模板检测孤立点:
如果∣R∣≥T,则称在模板中心位置已经检测到一个点。例:
1)R=(-1 * 8 * 8 + 128 * 8)/9=106 2)可以设置阈值T = 64 3)若R=0,则说明检测点与周围点像素值相同
4)若R > T,则说明检测点与周围点像素值非常的不同,为孤立点
(3)线检测
通过比较典型模板的计算值,确定一个点是否在某个方向的线上设计其它模板: 1)模板系数之和为0 2)感兴趣的方向系数值较大
数字图像处理课程设计
2.2.3边缘检测
边缘是位于两个区域的边界线上的连续像素集合,一般而言,当人们看到有边缘物体时,首先感觉到的便是边缘,灰度或结构等信息的突变处称为边缘。边缘上的这种变化可以通过微分算子进行检测:
(1)一阶导数:通过梯度来计算----梯度锐化法:
Rw1z1w2z2w9z9wizii19
梯度是一个矢量,其大小为:
f(x,y)2f(x,y)2G[f(x,y)]()()
xy
对于数字图像可以用差分来近似微分。其差分形式为:
ffff(x,y1)f(x,y)xff(x1,y)f(x,y)yyx
G[f(x,y)]{[f(x,y)f(x1,y)]2[f(x,yf(x,y1)]2}12
G[f(x,y)]|f(x,y)f(x1,y)||f(x,yf(x,y1)|
梯度大小与相邻像素的灰度差成正比: 灰度变化大则梯度值很大,灰度变化平缓则梯度值小,灰度无变化则梯度值为0.(2)二阶导数:通过拉普拉斯算子来计算
定义:一个二元图像函数f(x,y)的拉普拉斯变换定义为:
2f2ff22xy[f(x1,y)f(x1,y)f(x,y1)f(x,y1)]4f(x,y)2可以用多种方式表示为数字形式。对于一个3*3的区域,经验上推荐最多的形式是
2f4Z5(Z2Z4Z6Z8)
拉普拉斯锐化前、(a)原图像灰度;
(b)拉普拉斯锐化后图像的灰度
(a)(b)3
数字图像处理课程设计
2.2.4导数和噪声
基于微分的边缘检测器,其基本依据是图像的边缘对应了一阶导数的极大值,而二阶导数则过零点。但是,假如图像受到噪声的影响:
f(x,y)s(x,y)n(x,y)。
噪声的幅值往往很小,但频率往往很高,比如设:
n(x,y)asin(x)
那么一阶导数和二阶导数分别为:
n(x)2n(x)2acos(x)asin(x)2x
x
2.2.5高斯拉普拉斯(LOG)
高斯拉普拉斯(Laplacian of Gaussian,LOG,或Mexican hat,墨西哥草帽)滤波器使用了Gaussian来进行噪声去除并使用 Laplacian来进行边缘检测
2.2.6边缘连接和边缘检测
局部处理,确定边缘像素相似性的两个主要性质是:(1)用于生成边缘像素的梯度算子的响应强度
f(x,y)f(x0,y0)EE是非负门限
(2)梯度向量的方向
(x,y)(x0,y0)A
A是非负门限
数字图像处理课程设计
3.源代码
3.1对于只有车牌无车身的图像:
%预备处理
clc;%擦去一一页命令窗口,光标回屏幕左上角 clear all;
%图像的读入和初步处理 im=imread('1.png');im1=rgb2gray(im);%江源彩色图像转换成灰度色图 im1=medfilt2(im1,[3 3]);%用中值滤波的图像去噪
%对图像进一步处理,得到有用信息
BW = edge(im1,'sobel');%用edge函数获得灰度图像的边缘
[imx,imy]=size(BW);%对于边缘获取信息,用size函数,获取数组的行数于列数。对于size函数中的两个输出
%数,size函数将数组的行数返回到第一个输出变量imx,将数组的列数返回到第二个输出变 %量imy
msk=[0 0 0 0 0;0 1 1 1 0;0 1 1 1 0;0 1 1 1 0;0 0 0 0 0;];B=conv2(double(BW),double(msk));%用二维卷积运算函数conv2平滑图像,减少连接数量
L = bwlabel(B,8);% 计算连通,调用函数返回一个和B大小相同的L矩阵,包括标记了B中每个连通区域的类别标值 mx=max(max(L))% 将有连通的MX。给予L一个1和mx之间的值或者在循环中可以提取所有连接组件
% 从储存阵列中提取图像 figure,imshow(im);figure,imshow(im1);figure,imshow(B);
3.2对于有车身和车牌连接的图像
%预备处理
clc;%擦去一一页命令窗口,光标回屏幕左上角 clear all;
%图像的读入和初步处理 im=imread('2.jpg');im1=rgb2gray(im);%江源彩色图像转换成灰度色图 im1=medfilt2(im1,[3 3]);%用中值滤波的图像去噪
数字图像处理课程设计
%对图像进一步处理,得到有用信息
BW = edge(im1,'sobel');%用edge函数获得灰度图像的边缘
[imx,imy]=size(BW);%对于边缘获取信息,用size函数,获取数组的行数于列数。对于size函数中的两个输出参
%数,size函数将数组的行数返回到第一个输出变量imx,将数组的列数返回到第二个输出变 %量imy
msk=[0 0 0 0 0;0 1 1 1 0;0 1 1 1 0;0 1 1 1 0;0 0 0 0 0;];B=conv2(double(BW),double(msk));%用二维卷积运算函数conv2平滑图像,减少连接数量
L = bwlabel(B,8);% 计算连通,调用函数返回一个和B大小相同的L矩阵,包括标记了B中每个连通区域的类别标值 mx=max(max(L))% 将有连通的MX。给予L一个1和mx之间的值或者在循环中可以提取所有连接组件
% 对于车牌与车身连接的图像,给予17,,19,19,22,27,28至L用于提取完全车牌 [r,c] = find(L==17);%用find函数查询非零元素的行和列
rc = [r c];[sx sy]=size(rc);n1=zeros(imx,imy);%创建名为n1的imx行,imy列的零矩阵
for i=1:sx x1=rc(i,1);y1=rc(i,2);n1(x1,y1)=255;end
% 从储存阵列中提取图像 figure,imshow(im);figure,imshow(im1);figure,imshow(B);figure,imshow(n1,[]);
4.处理结果
4.1对于只有车牌无车身的图像:
原图像
数字图像处理课程设计
处理后:
数字图像处理课程设计
总结:能够对图像基本信息进行简单分离。
4.2对于有车身和车牌连接的图像
原图像
处理后
数字图像处理课程设计
总结:能够对图像进行分离,但是对于车身与车牌信息分离不理想,有待进一步改进。
5.心得体会
在这次数字图像处理的课程设计过程中,首先加深了我对于数字图像处理这门课程的认识,通过对相关知识的进一步了解和掌握,清楚的认识到这门课程在实际应用的广泛性。
通过Matlab编程的过程之中,进一步掌握了Matlab的使用,明白了这个软件作为许多应用方向工具的强大之处,通过对一些小错误的改造还认识到了以往自己没有注意到的一些小的细节问题。
6.参考文献
1.数字图像处理 第二版 冈萨雷斯(Rafael C.Gonzalez)
2003-03-01 2.Matlab2007-help
第三篇:数字图像处理课程设计课程教学大纲
《数字图像处理课程设计》课程教学大纲
Digital Imaging Processing Course Design
课程代码: 课程性质:设计(论文)适用专业:电子信息工程 开课学期:6 总学时数:16 执 笔:何家峰
一、课程的性质和目的
本课程是电子信息工程专业的课程设计。本课程的学习目的在于:针对给定的图像处理任务,在查阅相关文献的基础上,制定相应的技术方案,并编程实现;通过课程设计,使得学生进一步理解数字图像处理的基本概念、基本原理和基本方法,并培养学生的自学能力和实践能力(设计能力与编程实现能力)。
总学分数:1 编写年月:2006.9 修订年月:2007.7
二、课程教学内容及学时分配
课程设计最好是一个典型的数字图像处理任务,即包括图像增强、图像分割、图像表达与描述。学生可以选取下面的任一图像处理任务作为课程设计的目标:
1、手写数字识别;
2、掌纹识别;
3、虹膜识别;
4、其他的典型图像处理任务。
三、课程教学的基本要求
本课程是电子信息工程专业的设计(论文)课程,实践性较强。要求能查阅相关文献资料,具备制定相应技术路线的能力,以及应用MATLAB语言或VC语言进行数字图像处理编程与调试的能力。
1、课程设计报告应包含的内容:课程设计目的介绍;技术路线及制定依据;软件清单;实验结果;结果分析与改进措施等。
2、考试与成绩评定:可采用面试与审阅设计报告结合的形式。总评成绩:课程设计期间 的表现占30%;面试占70%。
四、本课程与其它课程的联系与分工
先修课程:数字图像处理。后续课程:无。
五、建议教材及教学参考书
[1]Rafael C.Gonzalez, Richard E.Woods 著,《数字图像处理(第二版)》,电子工业出版社,2006年出版
[2]Rafael C.Gonzalez, Richard E.Woods, Steven L.Eddins 著,《数字图像处理(MATLAB版)》,电子工业出版社,2006年出版
[3]李弼程,彭天强,彭波 等编著,《智能图像处理技术》,电子工业出版社,2004年出版
[4]何东健,耿楠,张义宽 等编,《数字图像处理》,西安电子科技大学出版社,2005年出版
注:
1、“课程代码”由教务处教研科统一填写;
2、“课程性质”按培养方案的“课程性质”及“必/选修”两栏填写;
3、“适用专业”按招生简章填写;
4、“开课学期”指1~8(10)中的数字,例如“大学英语”课程的开课学期为1、2、3、4;
第四篇:《数字图像处理》
实验五 图像的几何变换
一.实验目的及要求
掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。
二、实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.图像缩放 clear all, close all I = imread('cameraman.tif');Scale = 1.35;
% 将图像放大1.35倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');help imresize
% 查看imresize使用帮助
1.95倍
I = imread('cameraman.tif');Scale = 1.96;
% 将图像放大1.96倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');
说明:
注意观察不同插值方法的图像表现; 改变图像缩放因子Scale,重做上述实验。2.图像旋转
clear all, close all I = imread('cameraman.tif');Theta = 45;
% 将图像逆时针旋转45。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-45;
% 将图像顺时针旋转45。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');% 查看imrotate使用帮助 help imrotate %-------
图像旋转30顺时针逆时针
clear all, close all I = imread('cameraman.tif');Theta = 30;
% 将图像逆时针旋转30。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-30;
% 将图像顺时针旋转30。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');7 说明:
注意观察不同插值方法和输出图像后处理方法的图像表现; 改变旋转角度大小和方向,重做上述实验。
3.图像水平镜象
clear all, close all I = imread('cameraman.tif');I1 = flipdim(I,2);
I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);subplot(1,2,2), imshow(I1);figure(2), subplot(2,1,1), imshow(I);subplot(2,1,2), imshow(I2);%----
(二)用MATLAB编程实现以下图像几何变换(参考自编讲义相关章节)
1.图像扭曲变换 2.球面变换
三、实验设备
1.PIII以上微机; 2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉实验中涉及的有关MATLAB函数;
3.利用课余时间,采用MATLAB底层函数编程实现实验内容
(二)中的图像平移、图像转置等几何变换。
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。
实验六
数字图像处理应用
一.实验目的及要求
1.利用MATLAB提供的图像处理函数实现图像中物体属性的测量; 2.训练综合运用MATLAB图像处理函数的能力; 3.了解数字图像处理基本应用。
二、实验内容
以大米粒特性测量为例,综合应用课程中图像分割、形态学滤波、图像增强、图像特征提取等图像处理方法,实现大米粒特性自动测量。实验过程简述:
1. 读取和显示图像 2. 估计图像背景 3. 获取背景均匀的图像 4. 图像增强 5. 图像二值化分割 6. 区域标记及为彩色处理
7. 测量图像中的区域特性(面积、质心等)
8.统计大米粒的特性分布规律。
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结 果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
% Read and Display an Image clear, close all,close all;I = imread('rice.png');
figure, imshow(I)
% Use Morphological Opening to Estimate the Background
background = imopen(I,strel('disk',15));
figure, imshow(background);
%Display the Background Approximation as a Surface
figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);set(gca,'ydir','reverse');% Subtract the Background Image from the Original Image I2 = imsubtract(I,background);figure, imshow(I2)% Adjust the Image Contrast I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3);% Apply Thresholding to the Image level = graythresh(I3);bw = im2bw(I3,level);figure, imshow(bw)% Determine the Number of Objects in the Image [labeled,numObjects] = bwlabel(bw,4);
% Label components.numObjects % Examine the Label Matrix RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');figure, imshow(RGB_label);% Measure Object Properties in the Image graindata = regionprops(labeled,'basic')allgrains = [graindata.Area];% Compute Statistical Properties of Objects in the Image max(allgrains);biggrain = find(allgrains==695)mean(allgrains);figure, hist(allgrains,20);12
(详见MATLAB IPT的 帮助文档demo中的Correcting Nonuniform Illumination)
(二)查看MATLAB IPT 帮助文档,研究其它应用演示
三、实验设备 1.PIII以上微机; 2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理; 2.查阅资料,熟悉实验中涉及的有关函数。
3.利用课余时间,采用MATLAB函数编程实现实验内容
(二)。
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。
第五篇:数字图像处理
中南大学
数字图像处理实验 实验名称:空间滤波和频域滤波
班级:电子信息0802班
姓名:李哲 学号:0909080609 实验日期:2010年12月22日
目录
一,实验目的„„„„„„„„„„„„„„„„„„„„„„„3 二,给图像添加噪声„„„„„„„„„„„„„„„„„„„„4 三,对被噪声污染的图像进行中值滤波和均值滤波„„„„„„„5 四,对图像进行空间域的锐化„„„„„„„„„„„„„„„„6 五,MATLAB以外函数空间滤波和图像锐化„„„„„„„„„„7 六,自带函数傅立叶变换和反变换„„„„„„„„„„„„„„8 七,低通滤波器程序„„„„„„„„„„„„„„„„„„„„9 八,心得体会 „„„„„„„„„„„„„„„„„„„„„„10 九,参考文献 „„„„„„„„„„„„„„„„„„„„„„10
一、实验目的 1,空间滤波:
图像平滑主要目的是减少噪声。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波2种最典型、最常用的处理算法进行程序设计,学习如何对已被噪声污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子,使图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。本实验锐化处理主要在空间域中进行 2,频域滤波:
掌握傅里叶变换的基本性质; 掌握傅里叶正变换和反变换; 通过实验了解二维频谱的分布特点; 掌握怎样利用傅立叶变换进行频域滤波
利用MATLAB程序数字图像的傅立叶变换并且进行频域滤波
二,给图像添加椒盐噪声或者高斯噪声: 原理:利用MATLAB自带函数添加噪声 程序代码:A=imread('onion.png');I=rgb2gray(A);imshow(I);J = imnoise(I,'salt & pepper',0.05);figure,imshow(J),title('椒盐噪声');%添加椒盐噪声 K = imnoise(I,'gaussian',0,0.03);
figure,imshow(K),title('高斯噪声');%添加高斯噪声
三,对被噪声污染的图像进行中值滤波和均值滤波: 原理:自带函数进行中值滤波和均值滤波 源程序:A=imread('onion.png');I=rgb2gray(A);J = imnoise(I,'salt & pepper',0.05);k2=medfilt2(J,[5 5]);k3=medfilt2(J,[7 7]);imshow(J),title('原图');figure,imshow(k2),title('中值滤波5*5模板');figure,imshow(k3),title('中值滤波7*7模板');
四,对图像进行空间域的锐化: 原理:自带函数进行空间锐化。源程序:I=imread('coins.png');subplot(121),imshow(I),title('原图像');H=fspecial('sobel');I2=filter2(H ,I);subplot(122),imshow(I2),title('sobel算子锐化图像');
五,MATLAB以外函数空间滤波和图像锐化:
源程序:I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);imshow(J);title('噪声干扰图像')figure, imshow(K);title('medfilt2滤波图像')X=J;a=2;b=2;k=floor(a*b/2)+1;[M,N]=size(X);uint8 Y=zeros(M,N);funBox=zeros(a,b);temp=zeros(a*b);
for i=1:M-a
for j=1:N-b
funBox=X(i:i+a,j:j+b);
temp=funBox(:);
tempSort=sort(temp);
Y(i,j)=tempSort(k);
end;end;figure, imshow(Y);title('滤波图像')
六,利用Matlab的图像处理工具箱中提供的函数实现图像的傅立叶变换和反变换: 源程序:
A=imread('onion.png');f=rgb2gray(A);subplot(131),imshow(f),title('原图');F=fft2(f);% 快速傅立叶变换
subplot(132),imshow(F),title('傅里叶变换')Fabs=abs(F);% 求幅频绝对值 Fc=fftshift(Fabs);% 中心移位 SFc=log(1+Fc);% 对数变换
iFc1=ifftshift(Fc);% 中心移位的逆变换,绝对值 iF2=ifft2(iFc1);% 快速傅立叶变换的逆变换
subplot(133),imshow(iF2),title('快速傅立叶变换的逆变换')
七,低通滤波器程序:
I=imread('testpat1.png');subplot(221),imshow(I);title('原始图像')J1=imnoise(I,'gaussian',0.02);% 叠加高斯白噪声
subplot(222),imshow(J1);title('添加高斯白噪声的图像')f=double(J1);
% 数据类型转换 g=fft2(f);
% 傅立叶变换 g=fftshift(g);
[M,N]=size(g);nn=2;
% 二阶巴特沃斯(Butterworth)低通滤波器 d0=50;
% 设置截止频率 m=fix(M/2);n=fix(N/2);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));% 计算低通滤波器传递函数
result(i,j)=h*g(i,j);end end result=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));subplot(223),imshow(J3);title('低通滤波后图像')
心得体会
1,进一步熟悉了Matlab软件、编程以及图像处理工具箱 2,学会利用自带函数对图像做简单的处理,例如:均值化等。3,熟练了一些基本函数的运用,例如fspecial,imfilter等。4,加深了对MATLAB编程的理解。
5,对于试验中的出现的一些问题,懂得怎样去处理。6,通过实际操作,增强了自己的动手能力,把理论用于实践。
参考文献:数字图像处理第二版
MATLAB教程