第一篇:基于OPENCV实践项目的数字图像处理教学方法探索(精选)
基于OpenCV实践项目的数字图像处理教学方法探索 文/张帆 摘要:“数字图像处理”是电子信息类专业的一门重要专业课,针对数字图像处理课程理论性较强的特点,除了在课堂完成必须的基础知识教学外,将OPENCV实践项目与数字图像的主要理论联系起来,激发学生的学习兴趣,让学生进一步了解数字图像处理的具体项目应用,在丰富学生实践工程经验的同时提高学生的理论水平。关键词:实践项目;数字图像;项目应用;理论水平
中图分类号:G642文献标志码:A文章编号:2095-9214(2015)08-0133-01 《数字图像处理》 是信息科学中发展最快的热点研究方向是模式识别、计算机视觉、图像通讯、多媒体技术等学科的基础是一门涉及多领域叉学科是诸多工科类专业开设的主干课程之一,是一门理论与实践、原理与应用结合紧密的课程。然而,由于数字图像处理技术涉及知识面广,理论隐晦深奥,内容更新速度极快,如何在打牢学生理论知识的同时提升学生的学习兴趣,丰富学生的实践工程经验成为值得教师思考的问题[1]。
一、本科数字图像处理课程教学现状 相对于其它本科课程而言,数字图像处理作为信息类专业的专业基础课,其有如下几个特点:课程涉及知识面较广,图像处理理论对数字要求较高,实验教学不系统,全面掌握数字图像处理的知识点难度大。除此之外,学生在学习该门课程时,需要掌握的基础知识点也很多,其中包括在研究方面对图像成像的理解,在图像处理方面对图像金字塔模型、图像直方图均衡化、图像跟踪、检测、识别、形态学图像处理等常规处理技术。除此之外,在课程后半段,为了为其它高阶课程打基础,往往也会介绍一些关于计算机视觉、机器学习等高阶课程的内容。对于数字图像处理这门课程来说,课程有一定的理论深度,且相关教材也多侧重于介绍理论知识,鲜有相应的配套实验和实际应用项目,学生在学习中往往会产生学习过于抽象,对于具体的图像处理算法理解不深刻,不能工程化相关的图像处理技术,学习零散不系统,达不到课程教育的目的。除此之外,很多专业任课教师也因为缺乏实践经验,对于一些比较难掌握的知识点不能很好地讲授,使学生在大量数学公式面前却步并且逐渐丧失对于该门课堂的学习兴趣。
鉴于此,高校数字图像处理专业课教师应该转变观念,以学生学习效果为出发点,探索一种利于本科学生学习的课程教学新模式,让学生在传统的课程学习方法上,结合实际的应用项目和实验,探索出一种学生想学的,爱学的,敢于探究和实践的学习新模式[2]。为了达到上述教学目标,笔者在教学过程中总结了一套基于实践项目的教育方法,该方法可以通过分析和解决数字图像处理领取中的实际问题,培养学生学习本课程的主动性,从而做到抽象理论与实际应用的融会贯通,在实际应用中有较好的教学效果。
二、基于OPENCV的项目教学法探析
OpenCV是一个开源的、跨平台、的计算机视觉库,它提供了丰富的函数调用接口,不仅涵盖了绝大部分数字图像处理的经典算法,同时也包含了许多高阶的图像处理算法。该库现在已经更新到3.0版本,不过目前广泛地应用于工业界的还是2.4.9版本,该版本提供了丰富的接口函数,可以很好地支持IOS,Android、Python等平台的开发。项目教学法[3-4]是在长期的教学实践过程中逐渐形成的独具特色的教学方法。在本课程中,为了提高学生的学习兴趣,让学生了解图像处理技术在实践工程应用中的作用,采用了上述教学法。笔者在设计此教学方法时,期望学生可以利用在课上学习到的理论知识,通过项目承载,培训工程化的思维能力,提高学生解决实际工程问题的能力。在实际运用中,此法不公提高学生的学习热情,还让学生深刻掌握相关的理论和方法,使学生在项目实践中深刻理解相关的理论,同时通过几轮与老师的交流,让学生利用OpenCV搭建一个相对完整的,可以解决一般工程问题的数字图像处理系统。因为数字图像处理教学内容丰富,一个项目往往只能覆盖部分知识点和算法。根据分层的数字图像处理教学体系,我们选用3个实际项目:
1、基于特征图像的自动计数系统:该系统包括图像预处理(图像灰度化)、目标物体识别、轮廓提取、特征计数四部分。内容涉及特征识别,图像均衡化、图像分割、区域特征与图像形态学处理等内容,几乎涵盖了数字图像处理基础知识、图像处理方法和形态学方法等内容。该课题可作为案例应用于层次教学内容的总结,或作为课程设计的选题。
2、JEPG图像的编码与解码。图像编解码技术应用广泛,在现代图像信号传输与处理中有着较为重要的作用。此项目主要涉及的内容有图像变换和图像编码。作为数字图像处理课程的重要内容,学生可以通过该项目学习到诸如图像变换、图像编码、图像增强频域方法、图像复原等方法,是理论教学的良好延伸。
3、基于车牌识别的数字图像处理系统。该项技术已经有了很多成熟的运用,是一项较为成熟的图像处理技术。对于本科阶段的学生,我们不要求学生完成可以应用到实际工程场景的技术,但我们要求学生建立一个相对完整的车牌识别系统。具体来说,在实现车牌识别之前,需要对图像进行大量的预处理工作,其中包括图像去噪、图像增强、特征提取、图像分割等。学生可通过此项目对数字图像处理基本算法有一个比较全面的掌握。
三、结语
基于OpenCV项目教学法是基于数字图像处理这一课程的具体特点提出的一种以实践为导向,提高学生自主学习的教学方法。采用该方法的好处是任课教师可以以实际项目引导学生思考,并以学生为学习的主线,以实际项目作为驱动,充分调动学生的自主学习热情,以团队合作为基础,提高学生的协同合作能力。另外,通过此种方法,还可以提高学生分析问题,解决问题,总结问题的能力,使学生全面、深刻地掌握数字图像处理的理论知识,从而提高教学质量,促进学生更好、更快地适应社会发展的需要。
第二篇:数字图像处理课程教学方法探讨
数字图像处理课程教学方法探讨
摘要:针对《数字图像处理》这门课程具有学科跨度大、理论性强、实用性广的特点,并结合学生的实际情况,对课程的教学模式进行了探讨。首先,根据选用教材内章节之间的联系,把各章的知识点结合在一起,实现对教学内容的有效整合。其次,针对教材理论性强的特点,在讲授时通过与实际的案例进行结合,激发学生的学习兴趣。最后,通过实践加深对理论知识的理解,同时也培养了学生的独立思考能力和创新能力。
关键词:数字图像处理;教学内容;教学模式;教学效果
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2014)13-3060-04
Discussion on Teaching Method for Digital Image Processing
QIN Hua-feng1,WANG Xing-qiong2,KANG Qiu-hong1
(1.School of Computer Science and Information Engineering,Chongqing Technology and Business University,Chongqing 400067,China; 2.Chongqing Banan Middle School,Chongqing 400054,China)
Abstract: As the digital image processing has the large discipline span,strong theory,wide application,this paper discusses the teaching method based on the actual situation of students.Firstly,the knowledge is combining based on the relation among different chapters,which can integrate the teaching contents effectively.Then the students’ interest is aroused in the teaching process using actual case.Finally,the student can understand the theory clearly.At the same time,theirs independent thinking and innovation ability can be improved.Key words: Digital image processing; Teaching content; Teaching mode; Teaching effect
概述
数字图像处理诞生于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。直到20世纪60年代初期数字图像处理才发展成为一门学科。美国喷气推进实验室首次将数字图像处理实际成功应用到对几千张月球照片的处理,并利用计算机对处理后的图像进行分析,成功地绘制出月球表面地图。数字图像处理取得的另一个巨大成就是在医学上获得的成果。当前图像处理技术在工业自动化、工业检测、医学、遥感探测等各个方面都发挥着十分重要的作用[1]。
《数字图像处理》[2,3]是集成计算机科学、电子学、信息论、光学、数学等学科的一门综合性学科。本课程是空间信息工程系、摄影测量与遥感系开设的必修的专业基础课之一。它的起点高、难度大,理论性很强。学生在学习时,普遍感到数字图像处理的概念抽象,对其中的分析方法与基本理论不能很好地理解与掌握。如何提高学生对数字图像处理技术的学习兴趣,以及学生的图像处理技术的应用能力,是数字图像处理课程建设、课程改革的重要内容。现就接合自身在数字图像处理领域多年的研究经历以及教学经验,并根据学生的反馈信息,对该课程的教学模式进行了探索,希望有助于提高教学效果和教学水平;知识点的整合
数字图像处理涉及到的知识点繁琐,但是通过有效的整合可以使得教学体系前后连贯,教学内容较为紧凑,同时使得学生理解起来更为容易,思路更加清晰。如以清华大学出版社的出版的《数值图像处理和分析》为例,全书一共11章。根据教材内容的前后联系和学生的知识背景,对教学内容进行了整合,如表1所示。前面的第一、二章是介绍数值图像处理的概念,这部分可以引导学生自学。原书第三、五、六章主要利用各种变换来图像质量的改善。第四章是图像的编码与压缩,主要是实现对图像的存储和传输。七、八、九章的内容主要是图像的特征的提取和分类。最后两章是数值图像处理在数字水印和车牌识别方面的应用,可以利用两个专题讲座的形式来进行授课。经过整合,把所有的内容分成了三个教学模块,使得教学更加紧凑,条理清晰,学生理解起来也更容易。
表1 教学内容的整合[整合前内容\&整合后内容
章节的调整 整合\&绪论\&绪论\&引导学生自学\&数字图像的表述与处理\&数字图像的表述与处理\&图像增强\&图像增强\&图像质量的改善
\&
数字图像处理的方法\&图像的编码与压缩\&图像复原\&图像复原\&图像重建\&图像重建\&图像的编码与压缩\&图像的存储和传输。\&图像分割技术\&图像分割技术\&图像特征的提取与分类\&图像的特征提取与分析\&图像的特征提取与分析\&图像的匹配与识别\&图像的匹配与识别\&基于MATLAB数字水印系统设计\&基于MATLAB数字水印系统设计\&专题讲座\&车辆牌照识别系统设计\&车辆牌照识别系统设计\&] 基础理论知识
3.1 案例教学
案例教学是通过一个具体教育方式来实现场景的重现,引导学生对这些特殊情景进行讨论和分析,加深学生对知识点的理解,培养学生积极学习兴趣和创新力的一种教学方法[3]。数值图像处理涉及到微积分、偏微分、小波分析、矩阵论、信息论预编码等数学知识。因此,需要学生有一定的数学基础,然而工科的学生的数学基础普遍较差,单从理论方面来进行讲解学生很难理解和掌握。幸运的是,虽然这门课程设计的数学知识面广,但是这些知识都具有较强的应用背景,如果在授课的过程中能够结合实际的例子来进行分析能,就可以使得复杂的数学知识变得简单易懂,学生掌握起来也更加轻松。例如,信号可以按它的频率分为高频信号和低频信号。那么什么是信号的频率以及怎么判断高频信号和低频信号,在授课过程中应给以详细的解释,最后举一个例子如给出如下一幅雷娜图像。图中的帽子上纹理灰度值变化较快,所以就是高频部分[4]。而脸部灰度值比较平滑(变化较慢),所以是低频部分。
图1 雷娜图像
3.2 内容的适度延伸
在当今的世界,知识的更新是很快的。目前大部分知识的载体是书籍、报刊、杂志。在这几种重要载体中书籍的知识更新度是最慢的,然而现在上课用的课本基本上都是以书籍的呈现形式。因此如何把书本上经典而滞后的知识和该领域最新的研究成果联系起来是非常关键的。一方面,可以使得知识具有连贯性,使得学生更容易系统的掌握;另一方面,以拓宽知识面和提高学习的积极性。所以尝试性的要求学生查阅相关资料,了解本领域的研究进展是有必要的。
在教学过程中,除了常规的讲解书本上的理论知识外,将其中部分内容适当整理后,以课堂讲座形式开展,并对相关知识作适当的补充和延伸[5],使知识更系统化,立体化。例如,在讲授图像质量的改善方法的内容时,会经常用到各种图像变换的方法,如傅立叶变换[6]、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理[7]。其优点在于不仅可减少计算量,而且可获得更有效的处理。当学生掌握了各种基本变换方法后,可以引入小波变换方法,并介绍小波变换原理以及与经典变换方法的相似性。然后,给出小波变换的优势即在时域和频域中都具有良好的局部化特性。如果学生有兴趣的话,可以介绍在小波变换的基础上进一步发展得到的脊波变换,并通过一些图像例子来加深理解,如图
2、图3和图4所示。这样的讲授不仅可以让学生更系统的理解各种变换理论而且通过研究整个理论体系的发展可以激发学生的兴趣和创造性。实践教学
实践教学是教学课程的重要组成部分,它是巩固理论知识和加深对理论认识的有效途径,是培养具有创新意识的高素质工程技术人员的重要环节,是理论联系实际、培养学生的独立思考和创新能力的重要平台[8]。相对于理论教学而言,实践教学是教学过程中最薄弱的环节。为了有效提高实践教学,根据学生的实际情况对相关的实验内容的选取进行了相应的改革。
4.1实验准备
考虑到电子信息专业的同学不同于计算机专业,没有开设VC 课程,但开设了MATLAB 课程,已经掌握了MATLAB 的一些基本编程能力,另外,MATLAB 软件为数字图像处理提供了功能丰富的图像处理工具箱。它集成了一系列支持图像处理操作的函数。涵盖了图像处理的几乎所有的技术方法,是学习和研究图像处理的人员的宝贵资料和加工工具。因此,选取计算能力强的MATLAB软件作为教学软件是必要的。此外,还需要准备实验所需的图像。
4.2 实验内容
实验内容的选取也是相当关键的。根据学生掌握知识的能力以及知识的前后衔接关系,选择图像变换、增强、分割、特征提取和识别等作为实验内容。然后根据知识点的难易程度分为基本实验、开放型实验和演示实验。这样具有一定的层次感,使得学生接受起来较为容易。例如,对于傅里叶变换的实验,首先要求学生能够对图像进行傅里叶变换,并分析变换后的图像以及其逆变换后重构图像;当在这个试验中掌握了傅里叶变换后,再安排图像频域增强等实验。
4.3 实验内容拓展
通过理论知识的讲解以及基本实验的实施,学生能够较好的理解所学的知识,且能够将所学的知识应用于处理一幅具体图像。为了进一步培养学生独立思考和创新的能力,需要为一些有兴趣的学生提供一些参与教师科研项目的机会。例如通过课程设计的形式来为他们积累一些实践经验以及培养他们的创新能力。通过学生的积极参与,一方面,加深了对所学专业知识的理解,另一方面培养学生的学习兴趣和创新能力。结论
本文针对计算机、影像各专业对图像处理的要求和数字图像处理本身的特点,充分结合我校学生的实际情况,对《数字图像处理》课程的教学进行的尝试性的改革和探索。通过对教学内容的整合,使得教学内容更紧凑和调理更清楚。在理论知识的传授方面,结合了案例教学法和教学内容延伸法来进一步提高学生的学习兴趣和能力。最后,利用教学实践来巩固所学知识,增强学生的创造力。随着时代的发展以及知识的快速更新,对教学提出了新的要求。作为教学主体的教师,需要不断的地学习新的知识,总结教学经验,不断地探索和尝试新的教学方法才能与时俱进。
参考文献:
[1] 冈萨雷斯.(阮秋琦,阮宇智等)数字图像处理(第二版)[M].北京:电子工业出版社,2003.[2] 章毓章.图象处理和分析[M].清华大学出版社,2002.[3] 黄果,秦红英,许黎,等.浅谈数字图像处理课程教学改革[J].计算机光盘软件与应用,2013,3(7):280-281.[4] 王旭初,潘银松.《数字图像处理》实验的课题驱动式教学探索[J].电脑知识与技术,2010,34(6):9810-9811,9818.[5] 王雪.图像处理教学中如何培养学生的行业素质[J].长春教育学院学报,2013,29(1):145,157
[6] 朱明轩.数字图像压缩中的域变换技术[J].电脑知识与技术,2008,4(7):1745-1746.[7] 潘振赣,龚声蓉.浅谈数字图像处理技术的基本原理[J].电脑知识与技术,2010,6(6):1452-1453,1460.[8] 刘二林.医学图像处理课程教学模式探索[J].计算机光盘软件与应用,2012,21(2):19-21.
第三篇:数字图像处理
中南大学
数字图像处理实验 实验名称:空间滤波和频域滤波
班级:电子信息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教程
第四篇:《数字图像处理》
实验五 图像的几何变换
一.实验目的及要求
掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其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.写出本实验的心得体会及意见。
第五篇:数字图像处理实验报告
数字图像处理
实验报告
目录
1.数字图像处理简介
2.实验目的3.实验内容
4.实验结果及代码展示
5.算法综述
6.Matlab优势
7.总结
8.存在问题
一、数字图像处理简介
图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的处理方法依然占有重要的地位。
图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。
传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。
二、实验目的
巩固所学知识,提高所学能力
三、实验内容
利用matlab的GUI程序设计一个简单的图像处理程序,并含有如下基本功能: 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题 2.对给定图像进行旋转
3.对给定的图像添加噪声(椒盐噪声、高斯噪声)
四、实验结果及代码展示
1.软件设计界面
2.各模块功能展示以及程序代码
(1)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题
效果展示:
代码:
a = imread('C:Documents and SettingsAdministrator桌面数字图像舞美.JPG');
i = rgb2gray(a);I = im2bw(a,0.5);
subplot(3,1,1);imshow(a);title('源图像')subplot(3,1,2);imshow(i);title('灰度图像')subplot(3,1,3);imshow(I);title('二值图像')
(2)图像旋转 原图
效果展示:
代码:
clc;clear all;close all;
Img=imread('D:My DocumentsMy Pictures5.JPG');Img=double(Img);[h w]=size(Img);alpha=pi/4;
wnew=w*cos(alpha)+h*sin(alpha);hnew=w*sin(alpha)+h*cos(alpha);wnew=ceil(wnew);
hnew=ceil(hnew);u0=w*sin(alpha);
T=[cos(alpha),sin(alpha);-sin(alpha),cos(alpha)];Imgnew2=zeros(hnew,wnew);Imgnew1=zeros(hnew,wnew);for u=1:hnew
for v=1:wnew
tem=T*([u;v]-[u0;0]);x=tem(1);y=tem(2);if x>=1&&x<=h&&y>=1&&y<=w x_low=floor(x);x_up=ceil(x);y_low=floor(y);y_up=ceil(y);if(x-x_low)<=(x_up-x)x=x_low;
else
x=x_up;
end
if(y-y_low)<=(y_up-y)y=y_low;
else
y=y_up;
end
p1=Img(x_low,y_low);p2=Img(x_up,y_low);p3=Img(x_low,y_low);p4=Img(x_up,y_up);s=x-x_low;t=y-y_low;Imgnew1(u,v)=Img(x,y);
Imgnew2(u,v)=(1-s)*(1-t)*p1+(1-s)*t*p3+(1-t)*s*p2+s*t*p4;end
end end
figure;imshow(Imgnew2,[]);B=imrotate(Img,alpha/pi*180);figure;imshow(B,[]);
(3)对给定的图像添加噪声(斑点噪声、高斯噪声)效果展示:
代码:
I= imread('D:My DocumentsMy Pictures5.JPG');figure,subplot(211);imshow(I);title('原图');J1=imnoise(I,'gaussian',0,0.02);
subplot(223);imshow(J);title('添加高斯噪声');J=imnoise(I,'speckle',0.04);
subplot(224);imshow(J);title('添加斑点噪声');
五、算法综述 灰度图像:
一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。红色、绿色、蓝色三个通道的缩览图都是以灰度显示的。用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。
通道是整个Photoshop显示图像的基础。色彩的变动,实际上就是间接在对通道灰度图进行调整。通道是Photoshop处理图像的核心部分,所有的色彩调整工具都是围绕在这个核心周围使用的。
在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像。灰度图像经常是在单个电磁波频谱如可见光内测量每个像素的亮度得到的。
用于显示的灰度图像通常用每个采样像素 8 位的非线性尺度来保存,这样可以有 256 级灰度。这种精度刚刚能够避免可见的条带失真,并且非常易于编程。在医学图像与遥感图像这些技术应用中经常采用更多的级数以充分利用每个采样 10 或 12 位的传感器精度,并且避免计算时的近似误差。在这样的应用领域每个采样 16 位即 65536 级得到流行。
二值图像:
是指每个像素不是黑就是白,其灰度值没有中间过渡的图像。二值图像一般用来描述文字或者图形,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能描述其轮廓,不能描述细节。这时候要用更高的灰度级。
二值图像是每个像素只有两个可能值的数字图像。人们经常用黑白、B&W、单色图像表示二值图像,但是也可以用来表示每个像素只有一个采样值的任何图像,例如灰度图像等。
二值图像中所有的像素只能从0和1这两个值中取,因此在MATLAB中,二值图像用一个由0和1组成的二维矩阵表示。这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。以这种方式来操作图像可以更容易识别出图像的结构特征。二值图像操作只返回与二值图像的形式或结构有关的信息,如果希望对其他类型的图像进行同样的操作,则首先要将其转换为二进制的图像格式,可以通过调用MATLAB提供的im2bw()来实现。
二值图像经常出现在数字图像处理中作为图像掩码或者在图像分割、二值化和dithering的结果中出现。一些输入输出设备,如激光打印机、传真机、单色计算机显示器等都可以处理二值图像。
二值图像经常使用位图格式存储。
二值图像可以解释为二维整数格Z,图像变形处理领域很大程度上就是受到这个观点启发。
图像旋转:
图像旋转是指图像以某一点为中心旋转一定的角度,形成一幅新的图像的过程。当然这个点通常就是图像的中心。既然是按照中心旋转,自然会有这样一个属性:旋转前和旋转后的点离中心的位置不变.根据这个属性,我们可以得到旋转后的点的坐标与原坐标的对应关系。由于原图像的坐标是以左上角为原点的,所以我们先把坐标转换为以图像中心为原点。假设原图像的宽为w,高为h,(x0,y0)为原坐标内的一点,转换坐标后的点为(x1,y1)。那么不难得到: x1 = x0-w/2;y1 =-y0 + h/2;在新的坐标系下,假设(x0,y0)距离原点的距离为r,点与原点之间的连线与x轴的夹角为b,旋转的角度为a,旋转后的点为(x1,y1)
噪声:
是电路或系统中不含信息量的电压或电流。在工业与自然界中,存在着各种干扰源(噪声源),如大功率电力电子器件的接入、大功率用电设备的开启与断开、雷击闪电等都会使空间电场和磁场产生有序或无序的变化,这些都是干扰源(或噪声源)。这些源产生的电磁波或尖峰脉冲通过磁、电耦合或是通过电源线等路径进入放大电路,各种电气设备,形成各种形式的干扰。
斑点噪声:
斑点噪声是SAR成像系统的一大特色,源自基本分辨单元内地物的随机散射,在图像上表现为信号相关(如在空间上相关)的小斑点,它既降低了图像的画面质量,又严重影响图像的自动分割、分类、目标检测以及其它定量专题信息的提取。
SAR图像斑点噪声的去除一方面要抑制图像均匀区域斑点噪声,另一方面要保持图像边缘和纹理细节信息。SAR斑点噪声的抑制可通过非相干多视处理,也可使用空间域滤波实现。非相干多视处理会降低图像的地面分辨率。因此,涌现出了一系列空间域滤波方法,如均值滤波、中值滤波、Lee滤波、Kuan滤波、Frost滤波、Sigma滤波以及Gamma Map滤波等。但这类算法存在自身无法克服的矛盾:一方面为增强斑点去噪效果需选较大的滤波窗口,另一方面为保持图像的实际分辨率要求所选的窗口较小。
高斯噪声:
所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯白噪声包括热噪声和散粒噪声。
实验中是通过MATLAB自带的函数产生噪声,各函数如下: J1=imnoise(I,'salt & pepper',0.05);%添加椒盐噪声
J2=imnoise(I,'gaussian',0,0.03);
%添加均值为0,方差为0.03的高斯噪声。
六、Matlab优势
MATLAB是一个包含大量算法的集合。其可以快捷的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和差错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。图形处理功能
图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足
模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
七、总结
运用matlab软件对图像进行处理,让我巩固了之前所学的知识,同时也在这次作业中更加了解到matlab语言在生活中的运用环境和掌握这门语言的重要性
八、存在问题
1.在进行图像增强时要不要讲图像先进行平滑处理? 2.如何增加这个算法的准确度
3.在此次作业中,为何添加椒盐噪声时无法显示