第一篇:深度学习方法在图像处理中的应用与研究(总结)
深度学习方法在图像处理中的应用与研究
1.概述和背景........................................................................................................1 2.人脑视觉机理......................................................................................................3 3.深度学习的基本思想..........................................................................................6 4.深度学习的常用方法..........................................................................................7 5.总结与展望.......................................................................................................9
深度学习方法在图像处理中的应用与研究
1.概述和背景
Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生“自我”的意识。是的,在人类和大量现成数据的帮助下,电脑可以表现的十分强大,但是离开了这两者,它甚至都不能分辨一个喵星人和一个汪星人。
图灵(图灵,大家都知道吧。计算机和人工智能的鼻祖,分别对应于其著名的“图灵机”和“图灵测试”)在 1950 年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。这无疑给计算机,尤其是人工智能,预设了一个很高的期望值。但是半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘首以待的人们,心灰意冷,认为人工智能是忽悠,相关领域是“伪科学”。
但是自 2006 年以来,机器学习领域,取得了突破性的进展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是,Deep Learning。借助于 Deep Learning 算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。
在实际应用中,例如对象分类问题如对象的分类(对象可是文档、图像、音频等),我们不得不面对的一个是问题是如何用数据来表示这个对象,当然这里的数据并非初始的像素或者文字,也就是这些数据是比初始数据具有更为高层的含义,这里的数据往往指的就是对象的特征。例如人们常常将文档、网页等数据用词的集合来表示,根据文档的词集合表示到一个词组短语的向量空间(vector space model, VSM模型)中,然后才能根抓不同的学习方法设计出适用的分类器来对目标对象进行分类;又如在图像处理中,像素强度的集合的表示方法可以最初浅的表示一幅图像,这也是我们视觉意义上的图像,一可是由于各种原因人们提出了更高层的语义的特征,如SIFT为经典的几何特征、以LBP为经典的纹理特征、以特征脸为经典的统计特征等,像SIFT,特征在很多图像处理的应用中突显出其优越性,因此特征选取得好坏对于实际应用的影响是很深刻的。因此,选取什么特征或者用什么特征来表示某一对象对于解决一个实际问题非常的重要。然而,人为地选取特征的时间代价是非常昂贵,另外劳动成本也高,而所谓的启发式的算法得到的结果往往不稳定,结果好坏经常是依靠经验和运气。既然如此,人们自然考虑到自动学习来完成特征抽取这一任务。Deep Learning的产生就是缘于此任务,它又被称为无监督的特征学习(Unsupervised Feature Learning),一显然从这个名称就可以知道这是一个没有人为参与的特征选取方法。
深度学习(Deep Learning)的概念是2006年左右由 Geoffrey Hinton等人在《science》上发表的一篇文章((Reducing the dimensionality of data with neural networks》》提出来的,主要通过神经网络(Neural Network NN)来模拟人的大脑 的学习过程,希望借鉴人脑的多层抽象机制来实现对现实对象或数抓(图像、语音及文木等)的抽象表达,整合特征抽取和分类器到一个学习框架下,特征的抽取过程中应该尽量少地减少人为的干预。
深度学习是通过大量的简单神经元组成,每层的神经元接收更低层的神经元的输入,通过输入与输出之间的非线性关系,将低层特征组合成更高层的抽象表示,并发现观测数据的分布式特征。通过自下而上的学习形成多层的抽象表示,并多层次的特征学习是大连理卜大学硕十学位论文一个自动地无人工干预的过程。根据学习到的网络结构,系统将输入的样本数据映射到各种层次的特征,并利用分类器或者匹配算法对顶层的输出单元进行分类识别等。
2.人脑视觉机理
研究表明,哺乳动物的大脑皮层,处理输入信息时是采用了一种分层机制,信息从感知器官输入后,经过多层的神经元,在经过每一层神经元时,神经元会将能够体现对象本质的特征抽取出来,然后将这些特征继续传递到下一层神经元上,同样地,后继的各层神经元都是以类似的方式处理和传递信息,最后传至大脑。深层的人工神经网络的诞生很大程度上受这一发现的启示,即构建一种包含多层结点,并且使得信息、得以逐层处理抽象的神经网络。
换言之,哺乳动物的大脑是以深度方式组织的,这一类深层的结构组织里的每一层会对于输入进行不同层次的信息处理或者抽象表示,因此,实际生活中,层次化的方法经常被用于表示一些抽象的语义概念。与哺乳动物一样,人类的大脑处理信矛息时也是采用逐层传输和表达的方式,人脑的初级视觉系统,首先利用某些神经元探测物体边界、元形状,然后又利用其他的神经元组织,逐步向上处理形成更复杂的视觉形状。人脑识别物体的原理是:外部世界中的物体先在视网膜上进行投影,然后大脑的视皮层对于聚集在视网膜上的投影进行分解处理,最后利用这些分解处理后的信息进行物体识别。因此视皮层的功能不是仅限于简单的重现视网膜图像,而是提取和计算感知信号。
视觉系统的输入数据量在人类感知系统的层次结构进行了维数减约,并剔除了与物体个性无关的信息;例如对于处理潜在结构是复杂的丰富数据(如图像、视频、主意等),深度学习应该与人类视觉系统一样可以精准地获取对象的本质特征。深度学习的构想是借鉴大脑的分层组织方式,通过由下向上、由简单到高级的逐层抽象的特征学习,研究者们期望深度网络结构能通过模拟大脑来解决复杂的模式识别难题。因此,深层的人工神经网络是一种人工定义用于模拟人脑组织形式的多层神经网络。
从文本来说,一个doc表示什么意思?我们描述一件事情,用什么来表示比较合适?用一个一个字嘛,我看不是,字就是像素级别了,起码应该是term,换句话说每个doc都由term构成,但这样表示概念的能力就够了嘛,可能也不够,需要再上一步,达到topic级,有了topic,再到doc就合理。但每个层次的数量差距很大,比如doc表示的概念->topic(千-万量级)->term(10万量级)->word(百万量级)。
一个人在看一个doc的时候,眼睛看到的是word,由这些word在大脑里自动切词形成term,在按照概念组织的方式,先验的学习,得到topic,然后再进行高层次的learning。
那我们需要有多少个特征呢?我们知道需要层次的特征构建,由浅入深,但每一层该有多少个特征呢?
任何一种方法,特征越多,给出的参考信息就越多,准确性会得到提升。但特征多意味着计算复杂,探索的空间大,可以用来训练的数据在每个特征上就会稀疏,都会带来各种问题,并不一定特征越多越好。
一些浅层的算法(指仅含一个隐层的神经网络、核回归、支撑向量机等),当
给定有限数量的样本和计算单元时,浅层结构难以有效地表示复杂函数,并且对于复杂分类问题表现性能及泛化能力针均有明显的不足,尤其当目标对象具有丰富的含义。深度学习通过大量的简单神经元组成的网络,利用输入与输出之间的非线性关系,对复杂函数进行近似,对观测样本进行拟合,并在学习输入样本本质特征的抽取上体现了强大的能力。有文献中就列举出一系列无法使用浅层网络表示的函数,这些研究成果揭示了浅层网络的局限性,从而也激发了人们探寻深度网络在一些复杂函数表示和复杂分类的应用前景。指出深度学习结构在对于复杂函数的表示问题上具有非常高的效率及效果,而一个不适用的结构模型否(如浅层网络)对数据建模时可能需要数目非常大的计算单元。
3.深度学习的基本思想
假设一个系统S,它是一个n层(S1,„,Sn)的结构,I是系统的输入,O是系统输出,形象地表示为:I =>S1=>S2=>...=>Sn=>O,如果输出O等于输入I,物理意义也就是表明在经过系统变化之后,输入I的信息量没有任何损失,和原始的输入保持了不变,这表明了输入I经过每一层S;均没有丢失任何信息,,即在任何一层S;,它都是输入I也就是原始信息的另外一种表示。简单说,深度学习的精髓也就是,在一个n层的神经网络中,任何一层的输入I和输出O是“相等.’的。学习过程中,我们希望它是不需要人为干预的,它能够自动地学习对象的特征。在给定一组原始的输入I(可以理解为是一堆图像或者文本、一段语音之类),经过一个包含n层的系统S时,我们通过调整系统中参数,使得输出与输出相等,即输出O仍然是输入I,这样,我们就获取了输入I(原始数据)的一系列的层次特征,记为S,...Sn。
另外,前面是假设输出严格地等于输入,即这个地方“相等”有两个含义在里面:第一个是说O和I不是在绝对形式上的相等,而是在抽象意义上的相等;另外一点指的是限制的约束的程度,比如说是不会造成歧义的完全“相等”还是有适当宽松条件的“相等”。而绝对意义上的“相等”这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会形成另外一类不同的深度学习的方法。举个不太恰当的例子,比如说对“交通工具”这个概念上,I是“可以驾驶的四个轮子”,O是“车”,这样虽然对两者的描述不一致,但是我们都一可以理解为“交通工具”了。上述就是深度学习的基本思想,而上述中的两个思想也对应了深度学习中的两个经典的方法AutoEncoder和Sparse Coding,还有一个很常用的方法就是受限玻尔兹曼机(Restrict Boltzmann Machine,RBM)。
4.深度学习的常用方法
4.1AutoEncoder自动编码器
最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重,自然地,我们就得到了输入I的儿种不同表示(每一层是输入的一种表示),这些表示就是特征,在研究中可以发现,如果在原有的特征中加入这些自动学习得到的特t正可以大大提高精确度,甚至在分类问题中比}」前址好的分类算法效果还要好,这种方法称为自动编码(AutoEncoder)。
4.2、Sparse Coding稀疏编码
如果我们把输出必须和输入相等的限制放松,同时利用线性代数中基的概念,即O=Wx B, +砚x B, +...+W,x B, , B是基,W;是系数,我们可以得到这样一个优化问题:Min 11一Olo 通过求解这个最优化式子,我们可以求得系数W和基B;,这些系数和基础就是输入的另外一种近似表达,因此,它们可以被当成特征来表达输入I,这个过程也是自动学习得到的。如果我们在上述式子上加上L1的Regularity限制,得到:
Min}I一O}+u*(IW卜}砚I+„+}W,})。(2.1)种方法被称为Sparse Coding,它是一种对对象的简洁表征的方法,这种方法可以自动地学习到隐藏在对象数据潜在的基函数。
4.3、Restricted Boltzmann Machine(RBM)限制波尔兹曼机
假设有一个二部图,每一个相同层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐层(h),如果假设所有的节点都是二值变量节点(只能取0或者1值),同时假设联合概率分布p(v, h)满足Boltzmann分布,我们称这个模型是受限玻尔兹曼机(RBM)。下面我们来看看为什么它是Deep Learning方法。首先,这个模型因为是二部图,所以在己知v的情况下,所有的隐藏节点之间是条件独立的,即p(hIv卜p(h, I 1,)...p(h-I v)。同理,在己知隐藏层h的情况下,所有的可视节点都是条件独立的,同时又由于所有的v和h满足Boltzmann分布,因此,当输入v的时候,通过p(hlv)可以得到隐藏层h,而得到隐藏层h之后,通过p(vlh)又能重构可视层,通过调整参数,我们就是要使得从隐藏层得到的可视层VI与原来的可视层v如果一样,那么得到的隐藏层就是可视层的另外一种表达,因此隐藏层可以作为可视层输入数据的特征,所以它就是一种Dcep Learning方法。文献X32]从理论一上证明,当隐层节点足够多时,深度网络就可以表示任意离散分布;文献[33]指出受限玻尔兹曼机中的隐层节点与可视节点可以为任意的指数族单元(即给定隐单元(可见单元),可见单元(隐单元)的分布的
形式一可以为任意的指数族分布),如高斯单元、softmax单元、泊松单元等等。
4.4、Deep BeliefNetworks深信度网络
DBNs是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。对于在深度神经网络应用传统的BP算法的时候,DBNs遇到了以下问题:
(1)需要为训练提供一个有标签的样本集;(2)学习过程较慢;
(3)不适当的参数选择会导致学习收敛于局部最优解。
目前,和DBNs有关的研究包括堆叠自动编码器,它是通过用堆叠自动编码器来替换传统DBNs里面的RBMs。这就使得可以通过同样的规则来训练产生深度多层神经网络架构,但它缺少层的参数化的严格要求。与DBNs不同,自动编码器使用判别模型,这样这个结构就很难采样输入采样空间,这就使得网络更难捕捉它的内部表达。但是,降噪自动编码器却能很好的避免这个问题,并且比传统的DBNs更优。它通过在训练过程添加随机的污染并堆叠产生场泛化性能。训练单一的降噪自动编码器的过程和RBMs训练生成模型的过程一样。
4.5 Networks卷积神经网络
卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
CNNs是受早期的延时神经网络(TDNN)的影响。延时神经网络通过在时间维度上共享权值降低学习复杂度,适用于语音和时间序列信号的处理。
CNNs是第一个真正成功训练多层网络结构的学习算法。它利用空间关系减少需要学习的参数数目以提高一般前向BP算法的训练性能。CNNs作为一个深度学习架构提出是为了最小化数据的预处理要求。在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。
5.总结与展望
1)Deep learning总结
深度学习是关于自动学习要建模的数据的潜在(隐含)分布的多层(复杂)表达的算法。换句话来说,深度学习算法自动的提取分类需要的低层次或者高层次特征。高层次特征,一是指该特征可以分级(层次)地依赖其他特征,例如:对于机器视觉,深度学习算法从原始图像去学习得到它的一个低层次表达,例如边缘检测器,小波滤波器等,然后在这些低层次表达的基础上再建立表达,例如这些低层次表达的线性或者非线性组合,然后重复这个过程,最后得到一个高层次的表达。
Deep learning能够得到更好地表示数据的feature,同时由于模型的层次、参数很多,capacity足够,因此,模型有能力表示大规模数据,所以对于图像、语音这种特征不明显(需要手工设计且很多没有直观物理含义)的问题,能够在大规模训练数据上取得更好的效果。此外,从模式识别特征和分类器的角度,deep learning框架将feature和分类器结合到一个框架中,用数据去学习feature,在使用中减少了手工设计feature的巨大工作量(这是目前工业界工程师付出努力最多的方面),因此,不仅仅效果可以更好,而且,使用起来也有很多方便之处,因此,是十分值得关注的一套框架,每个做ML的人都应该关注了解一下。
当然,deep learning本身也不是完美的,也不是解决世间任何ML问题的利器,不应该被放大到一个无所不能的程度。2)Deep learning未来
深度学习目前仍有大量工作需要研究。目前的关注点还是从机器学习的领域借鉴一些可以在深度学习使用的方法,特别是降维领域。例如:目前一个工作就是稀疏编码,通过压缩感知理论对高维数据进行降维,使得非常少的元素的向量就可以精确的代表原来的高维信号。另一个例子就是半监督流行学习,通过测量训练样本的相似性,将高维数据的这种相似性投影到低维空间。另外一个比较鼓舞人心的方向就是evolutionary programming approaches(遗传编程方法),它可以通过最小化工程能量去进行概念性自适应学习和改变核心架构。
Deep learning还有很多核心的问题需要解决:
(1)对于一个特定的框架,对于多少维的输入它可以表现得较优(如果是图像,可能是上百万维)?
(2)对捕捉短时或者长时间的时间依赖,哪种架构才是有效的?(3)如何对于一个给定的深度学习架构,融合多种感知的信息?
(4)有什么正确的机理可以去增强一个给定的深度学习架构,以改进其鲁棒性和对扭曲和数据丢失的不变性?
(5)模型方面是否有其他更为有效且有理论依据的深度模型学习算法?
探索新的特征提取模型是值得深入研究的内容。此外有效的可并行训练算法也是值得研究的一个方向。当前基于最小批处理的随机梯度优化算法很难在多计算机中进行并行训练。通常办法是利用图形处理单元加速学习过程。然而单个机器GPU对大规模数据识别或相似任务数据集并不适用。在深度学习应用拓展方面,如何合理充分利用深度学习在增强传统学习算法的性能仍是目前各领域的研究重点。
第二篇:PHOTOSHOP图像处理在刑事物证中的应用
摘 要:随着科技的不断进步,数字技术得到广泛的发展和应用,现实生活中的很多信息都可以以数字形式的数据进行处理和储存,数字图像就是这种以数字形式进行储存和处理的图像。
关键词:物证检验;应用
随着科技的不断进步,数字技术得到广泛的发展和应用,现实生活中的很多信息都可以以数字形式的数据进行处理和储存,数字图像就是这种以数字形式进行储存和处理的图像。利用photoshop 等图像处理软件可以对数码案件照片进行后期的编排和处理,轻松地将数码痕迹图像处理为所需用比例物证检验照片;将数码照相技术与指纹自动识别系统相连接,可使数码指纹照片直接进入指纹自动识别系统中进行校验比对,迅速锁定作案嫌疑人。大大减轻了刑事技术人员的工作量和工作时间,为侦查破案争取了宝贵的时间。
数字图像在近几年发展以及在公安工作中的应用
数字图像是在刑事物证中是一种视听资料,在1997年的刑事诉讼法修改后,视听资料被列为一种独立的证据使用。在下文中所指的数字图像是指借助现代化精密仪器(如数字相机、数字摄像机、计算机)所提供的信息资料,它与视听资料中的录像资料相比较,其表现形式只是单幅图像和多幅连续图像之别,两者只是表现形式不同,其本质是一样的。作为现在化公安工作的发展,数字图像在公安的基层办公中越来越多地被应用。其优点在于对用数码相机拍摄犯罪现场照片,在拍摄时可以边拍摄边察看,不满意的照片可以当场删除进行修改。还方便与保存、记录以及日后的分析案情等等。在物证中,而使用数码技术可随时察看影像质量,根据需要改变拍照条件并及时做出调整,大大缩短了照片的制作周期,使痕迹物证得到及时地检验和鉴定。利用数字技术还可以为痕迹物证照相设定拍照比例,在计算机上测定痕迹物证的大小、深浅以及特征点之间的方位、距离,把得到的数据与样本进行比较,做出科学的鉴定结论。并且能对照片质量进行优化,模糊的经过处理可提高清晰度,反差小的经过影调调整可提高反差,有彩色背景的痕迹可以改变背景的颜色使痕迹清晰可见,达到分色照相的目的。对于刑事物证中由于客观的因素,导致的物证、人犯、痕迹的模糊变形,造成图像不容易辨认、认定时,还可以利用数字技术进行修改阻碍辨认的像素,是照片带到相应的要求。说到数字技术,现在应用较为广泛的就是photoshop软件了。
photoshop软件在刑事物证中的应用实例
photoshop软件是abode公司开发的图像处理软件,在我们日常的图像处理中应用非常的广泛,其对图像的处理功能非常的强大,可以处理各种图像问题。适应于公安刑事技术工作图像的各个方面。本文所用到的photoshop版本photoshop cs3。
在日常文检工作中,对痕迹特征、文件材料的检验,一般是借助尺子、放大镜或者一些专业的辅助工具进行检验对比,这些工具无疑给我们的检验工作带来了很多的不方便,并且也存在许多不足之处:1)传统的用眼观察、手工测量不够精确;2)用放大镜、显微镜观察时,眼睛容易疲劳且只能观察到很小的局部;3)检验时所观察到的情况固定困难(照相);4)传统检验方法比较单一。运用photoshop借助电脑和扫描仪检验印刷品和印文既操作方便、准确、直观,又便于对放大、处理过的材料打印固定,而且对检材不会造成丝毫磨损、破坏。在应用了photoshop软件后,我们可以对痕迹特征、文件材料的检材进行局部的放大、将其中某一颜色图案分离出来、进行重叠比对检验、增加图文同底色(背景的)反差来提高所检部位的清晰度、精确测量检材的搭配比例特征。(文中所有的图片格式为.psd 注:psd 文件为photoshop 的缺省文件格式,它可以将所编辑图像的所有有关图层、通道等信息记录下来。)
选择“图像”,“模式”,再选中“cmyk 颜色”,然后点击“通道”,鼠标右击“洋红”通道,选择“删除通道”,接着鼠标右击“黄色”通道,选择“删除通道”命令,便可以达到去朱存墨的效果了。(如图1 所示)选择“图像”,“模式”,再选中“lab 颜色”,然后点击“通道”,鼠标右击“明度”通道,选择“删除通道”命令,接着鼠标右击“b”通道,选择“删除通道”命令,便可以达到去墨存朱的效果了。(如图2 所示)
我们在检验指纹特征、文件材料中有时某个部位(局部)因为拍摄或者其他的客观原因造成图文不够清晰时,我们可以在软件中执行“图像/ 调整、曲线”命令,打开“曲线”对话框,根据文件的模式,选择“通道”类型,通过调整曲线使图像中某个部位反差增大,使整个图文更加清晰。这种功能是一些专业比对仪所无法达到的。我们还可以通过调整色彩的平衡,使所选颜色的图案更加突出。操作时,执行“图像\\调整\\色彩平衡”命令,在“色彩平衡”对话框中,选择“暗调”、“中间调”或“高光”中的一个着重进行色调范围的更改,通过调整标注红、绿、蓝的颜色条上的三角形滑块的位置调整色彩平衡,从而达到增强某一(几)种颜色,减少“颜色轮”中相对应的几
(一)种颜色,使图文同底色反差加大,使某种颜色的图文更加清晰可见。如在检验时出现印文同文字交叉情况,我们可用此方法隐去印文或文字,使文字或印文更清晰。
我们在痕迹检验中,有时候会对检材与样本是否同一进行利用重影也对接技术进行比对。进行比对时,大都需要用一些专用的痕迹比对仪器,这些仪器不是每一个公安部门所能拥有的,但是,利用了photoshop技术,可以处理一些简单数字图像。下面我那痕迹检验中的文件检验来举例:
重影比对。打开样本的图像后,选中“图层”调板,鼠标右键单击“背景”图层,选择“复制图层”命令,将新图层命名为“样本一”图层,保存文件,建立重影比对工作文件。打开检材文件,选择“选择(菜单)”、“全选(选项)”、将样本印文图像全部选中。选择“移动工具”,将样本印文选区拖至样本图像窗口,成为图层1,关闭检材文件窗口(释放内存)。将图层1 重命名为“检材”图层,并将“模式选项”设为“正片叠底(模式)”。选择“编辑、菜单”、“变换(选项)”、选中“旋转(子选项)”。即可拖动并旋转检材印文与样本印文进行重影比对检验了(如图4 所示)。比对完后别忘了保存文件。
第三篇:图像处理在足球机器人方面的应用
数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。机器人视觉作为智能机器人的重要感觉器官,主要进行三维景物理解和失败,是目前处于研究中的开放课题。机器视觉主要用于军事侦察、危险环境的自主机器人,邮政、医院和家庭服务的智能机器人,装配线工件识别,定位太空机器人的自动操作等。下面一篇论文是关于图像处理在足球机器人方面的应用说明: 图像处理在足球机器人系统中的应用
蒙 梅(北京交通大学计算机与信息技术学院 北京 100044)
【摘要】机器人是目前综合科学研究领域的前沿课题,足球机器人比赛是实现这一科学研究的有效方式,其中图像处理是足球机器人的首要研究课题。在足球机器人比赛中,要保证及时迅速地为决策系统提供有效信息,对图像处理的实时性有较高要求。本文将阐述如何把BMP图像的游程编码(RLE)压缩格式应用于足球机器人的图像处理数据结构中,并以实验证明:游程编码适用于足球机器人,能够使图像处理的运行效率和效果满足足球机器人系统协调工作的要求。
【关键词】图像处理 足球机器人 游程编码(RLE)引言
随着科学技术日新月异的发展,智能机器人研究及应用已经成为人工智能研究的热点。足球机器人是国际上广泛开展的一项高科技对抗活动,比赛中机器人可以自动地踢足球。要在有各种干扰的环境下解决好足球机器人的协作,必须解决实时图像识别处理、人工智能协作控制、实时动态策略、轨迹规划和无限通信等一系列问题。毫无疑问,智能机器人的眼睛是其重要的“感知”来源,只有得到正确的信息,才有可能进行正确的决策处理,进而进行正确的操作。因此,图像识别处理是智能机器人首先要解决的问题。图像处理原理
数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。常用的图像处理研究方向有图像变换、图像编码压缩、图像增强和复原、图像分割和图像识别、图像描述、图像分类(识别)等。在足球机器人的图像处理中,主要应用的研究领域为图像分割和图像编码压缩。
2.1 图像分割
图像分割就是将图像划为一些区域,在同一区域内,图像的特征相近;而不同的区域,图像特征相差较远。图像特征可以是图像本身的特征,如像素的灰度、边缘轮廓和纹理等。图像的作用是从图像中提取有用的信息。在图像分析过程中,一般首先要对所给的图像进行分割,再对分割的区域作适当描述,然后才能对图像作某种分析。可见,图象分割是图象分析前的一个重要处理步骤。
图像分割是图像处理的基础,虽然人们提出了很多种图像分割方法,但没有任何一种图像分割方法能够适用于所有的图像。如何选择分割方法,主要是根据实际的应用环境和具体目标而定。
阈值化方法因其简单、计算量小、性能较稳定而成为图像分割中应用最广泛的分割技术。对于图像的直方图呈现明显的两块或若干块不同形状分布时,阈值可以选择在两分布的交界处。所以说,阈值法主要适用于目标和背景差别较大的图像区域划分。
2.2 图像编码压缩
图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输和处理时间,减少存储容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
有些图像,尤其是计算机生成的图形往往有许多颜色相同的图块。在这些图块中,许多连续的扫描行都具有同一种颜色,在这种情况下就可以不需要存储每一个像素的颜色值,而仅仅存储一个像素值以及具有相同颜色的像素数目。这种编码称为行程编码,或称游程编码,常用RLE(Run-Length Encoding)表示。游程编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效。
对于足球机器人系统,是通过摄像机或摄像头获取图像,并且图形的颜色也是有限的,根据游程编码的原理,在足球机器人系统中应用RLE能有效压缩图像数据。
2.3 图像处理在足球机器人系统中的应用要求
在足球机器人系统中,比赛的特定规则:在摄像机所获取的比赛场地范围内,颜色是有限的,绿色(场地)、橙色(球)、蓝或黄色(队标)、粉红或紫色(判断位置和方向)。也就是说,每次采集卡所获得的图像中,只要明确这六种颜色的位置方向,为下一步人工智能协作模块做准备。
根据比赛的实际,系统的图像处理要实现的目标是:摄像头或摄像机在比赛进行中,在一定间隔内获取比赛场地图像,通过采集卡初步处理后,返回此时刻的比赛场地上的图像,将图像进行处理最终产生一个表,任何一个颜色,通过查询这个表,可获知这个颜色在图像中的位置。
因此,根据系统的实际要求,采用改进的阈值分割法和游程编码压缩进行图像处理是有效并可实现的。图像处理如何在足球机器人比赛中实现
足球机器人的视觉系统在实时性、抗干扰性方面有较高的要求,需要快速、稳定的图像处理方法,而图像处理的实现等于处理算法和相应的数据结构。一个图像的数据结构可有多种,既要尽量地减少图像所占的内存,也不能使图像数据丢失,更不能影响处理速度。以下将分析在足球机器人中如何利用由阈值分割和游程编码获得的数据结构,如何进行图像处理,并以实验进行了论证。
3.1 阈值化初步图像分割
由于比赛场地的光线原因,由同种图像分割算法得到的颜色阈值也不尽相同,因此,比赛前均需要实地进行颜色采样,以形成此时比赛所需的颜色阈值表。方法:将比赛规定的每一种颜色设定一代表数值,在摄像机下进行分别采样,通过图形像素域值化算法,形成并保存对以上这6种颜色较为精确的阈值范围,其他的颜色均属于“未知颜色”。将所有颜色的阈值得到一个三维数组:
YUVClass [256][COLORNUMBER][3]
256 代表阈值所能达到的范围
COLORNUMBER 为采样的颜色总数(包括未知颜色)记录每个像素的Y,U,V信息
也就是说,通过这个YUVClass表,可以判断从摄像头获取的图像的某个像素点,其颜色属于所采集颜色的哪一种,这样,图像实际上被分割为6种颜色的像素。
3.2 图像像素处理
比赛进行时,摄像头或摄像机在一定时间片内获取图片l*w,通过计算机的采集卡进行处理,获得的图像的数据是一字节数组,每一个像素的RGB值占据数组的3个单元,即一幅像素为l*w的图像,经采集卡转换数据后,l*w个像素信息以长度为l*w*3的字节数组来存储。为了方便对表YUVClass的查寻,需进行处理,即将格式为RGB的图像数组转换成格式为YUV的数组。其转换公式为:
Y=0.299*R+0.587G+0.144*B
U=(-0.167)*R+(-0.331)*G+0.500*B+127
V= 0.500*R+(-0.419)*G+(-0.081)*B+127
也就是说,对每个像素的Y/U/V值分别查询YUVClass表,如果这三个值在表中都为确定的,那么这个像素就为采集颜色的一种,否则就为“未知颜色”,这样,就将一幅长度为l*w*3的图像数据信息转换成长度为l*w的字节数组 m_colorimg[l*w],从而即获得了一幅多值图像,图像中的每个像素点的颜色值取自0~6。
根据实际的系统需求,我们并不需要存储图像每一个像素,只需要获得这6种颜色的位置。因此,利用游程编码的原理实质是,将获得的这个多值图像转换成由数据结构run[]为单元的一维数组存储的格式,其数据结构如下:
struct run{
public:
short x,y,width;// run结构中行像素的位置和宽度
cclass color;// run结构的颜色标志
int parent,next;// run在链表中的上下节点
};
这个数据结构实质是将连续的同种颜色的行像素点形成一个run结构。事实上,在足球机器人比赛中,由于比赛场地的颜色大多是连续性的,作为场地的绿色占了很大的比重,但是决策主要需要的是本方队员、对方队员、球和球门的位置。这个数据结构所需的图像信息量比起多值图像的存储方法,在没有减少主要有效信息量的情况下,存储量却能大大地减少。
对所得的这个run结构链表进行四连通操作,即将垂直、水平方向相联的同种颜色的run[]结构的父节点设为最早的一个。在图像逻辑上,就将图像进一步的分割为6种颜色区域。
3.3 图像有效信息的处理
run[]结构仅仅是对图像像素的整理,他只记录了采集的像素颜色信息,如果要作为足球机器人的位置判断,还需要与相关数据结合。为了易于下一步的处理,将已经生成的run[]结构再次转换为region[]结构,转换如下:
struct region{
int color;//颜色编号
int x1,y1,x2,y2;//横、纵坐标的最大值和最小值
float cen_x,cen_y;//一个region单元的横、纵坐标的质心(位置判断)
int area;//像素面积
int run_start;// 这个region结构的第一run结构
int iterator_id;// 唯一ID号
region *next;//链表中的下一个region结构
};
region结构最重要的一个数据是region单元的横、纵座标的质心,这个质心在满足一定的条件下,就是要所需要的球、本方队员、对方队员、球门的位置等信息。
每一个颜色就是一个region结构链表,在产生链表的同时,依面积由小到大的形成自己的链表。最后,将所有6种颜色的6个region结构链表,形成color_class_state表,把链表的头指针赋予颜色信息的数据结构color_class_state,如下:
struct color_class_state{//存储颜色信息的数据结构
region *list;//每种颜色的region链表的表头指针
int num;//每种颜色的region结构数
int min_area;// 一个region结构的最小像素面积数
rgb color;// 每种颜色的RGB值
char *name;// 颜色名 }
到此,由采集卡所获得的图像,进行数据处理完毕。任何一种已采样的颜色在图像中的位置,都可以从color_class_state表中迅速得到。比如球为桔色,通过其颜色名返回其region链表的头指针,那么就可以通过满足条件下的质心得到球的位置,再将位置信息传给决策系统,即可判断机器人下一刻要运动的方向和速度。就如足球赛场是时刻变化的,采集卡也是不断地将新的图像采集到图像缓冲区中,而图像处理过程是动态进行的,其数据结构的各个表也是在不断地更新中。
实验表明,将游程编码压缩格式和阈值化分割运用在足球机器人的图像处理系统中,不仅可以大大减少图像数据信息所占的内存,机器人也可以快速地识别各种要求的目标位置,并且将位置的信息及时传送给决策系统来分析判断,使整个足球机器人系统能够形成一个协和运作的多职能体系统。结束语
图像处理在现今的应用越来越广泛,其领域的研究和实现是多样的,任何一个原理的优越性无法一概而论,具体的需求,环境,程序下,不同的图像处理方法有其自己的特殊适用性。在足球机器人系统中,游程编码和阈值化分割的原理思想是贯穿于整个图像处理中,并且是相互作用的。本文在吸收了原理的实质基础上,根据比赛要求,改进了相应得图像处理算法和数据结构,希望对足球机器人的研究有一定帮助。
(收稿日期:2006-06-23;Email:onlymengmei@163
第四篇:MATLAB中GUI在图像处理应用中的设计(包括各种算法)
用MATLAB 进行图像处理算法的界面设计 /
目录
1.设计目的„„„„„„„„„„„„„„„„„„„3 2.题目分析„„„„„„„„„„„„„„„„„„„3 3.总体设计„„„„„„„„„„„„„„„„„„„3 4.具体设计„„„„„„„„„„„„„„„„„„„5 5.结果分析„„„„„„„„„„„„„„„„„„„34 6.心得体会„„„„„„„„„„„„„„„„„„„34 7.附录代码„„„„„„„„„„„„„„„„„„„36
/ 52
1、设计目的:综合运用MATLAB工具箱实现图像处理的GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop。
2、题目分析
利用matlab的GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能: 1)图像的读取和保存。
2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。
3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。
4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。
5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。
6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。7)额外功能。
3、总体设计
/ 52 图一
软件的总体设计界面布局如上图所示,主要分为2个部分:显示区域与操作区域。显示区域:显示载入原图,以及通过处理后的图像。操作区域:通过功能键实现对图像的各种处理。
在截图中可见,左部为一系列功能按键如“还原”、“撤销”、“截图”等等 ;界面正中部分为图片显示部分,界面中下方为系列功能切换选择组。设计完成后运行的软件界面如下:
图二
与图一先比,运行后的界面更为简洁。利用“编辑”菜单可调出相应的功能键。例如:
/ 52
4、具体设计
现介绍各个功能模块的功能与实现。4.1菜单栏的设计。通过Menu Editor
创建如下菜单,通过以下菜单来控制显示或隐藏功能按键
以“编辑”菜单中“图像变形”中的“图像翻转”为例说明实现用户界面功能键“图像翻转”的显示与隐藏。实现该功能的程序段如下:
function tuxiangfanzhuan_Callback(hObject, eventdata, handles)% hObject handle to tuxiangfanzhuan(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像');if isequal(filename,0)|isequal(pathname,0)errordlg('没有选中文件','出错');return;else
file=[pathname,filename];global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file;x=imread(file);set(handles.axes1,'HandleVisibility','ON');axes(handles.axes1);imshow(x);set(handles.axes1,'HandleVisibility','OFF');axes(handles.axes2);imshow(x);handles.img=x;guidata(hObject,handles);end
程序关键部分:
通过[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像')选择相应路径打开的图像;通过file=[pathname,filename];x=imread(file);读取选中的图像;最后,通过imshow(x)在显示区域上显示图像。
/ 52
(2)图像保存。
利用“uiputfile”、“imwrite”函数实现图像文件的保存。
function save_Callback(hObject, eventdata, handles)% hObject handle to save(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)clc;close all;close(gcf);clear;
4.3对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。
运行程序后,通过“编辑”菜单中的“常用处理”选中“亮度调节”
在显示出相应的功能键后,通过载入读取图像,比并进行处理,效果如下: 亮度处理前:
/ 52
亮度处理后:
实现程序段如下:
%---Executes on button press in radiobutton12.function radiobutton12_Callback(hObject, eventdata, handles)% hObject handle to radiobutton12(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T str=get(hObject,'string');axes(handles.axes2);
switch str case'增强' T=getimage;prompt={'输入参数:'};defans={'1'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=immultiply(handles.img,p1);imshow(f);handles.img=f;guidata(hObject,handles);case'减弱' T=getimage;prompt={'输入参数:'};defans={'1'};12 / 52 p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imdivide(handles.img,p1);imshow(f);handles.img=f;guidata(hObject,handles);end
该程序段主要通过 f=immultiply(handles.img,p1);p=inputdlg(prompt,'input',1,defans);分别实现图像对比度的增强与减弱。
4.4 用鼠标选取图像感兴趣区域,显示和保存该选择区域。
通过imcrop(x)函数来实现对图片某一区域的截取,截取的图片在右框中显示。结合“保存为„”,可把截图处理后的图片保存在指定路径。
实现程序段如下:
%---Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
% Hint: get(hObject,'Value')returns toggle state of radiobutton16
global T axes(handles.axes2);14 / 52 T=getimage;x=rgb2gray(handles.img);%RGBͼÏñת»»Îª»Ò¶ÈͼÏñ imshow(x);handles.img=x;guidata(hObject,handles);
4.6对图像进行放大和缩小整数倍的操作。
通过imresize(X,n,mode)函数对图像X进行放大或者缩小。N放大缩小倍数,mode为采用的方式。
通过处理后可发现保存的图片的比原图放大了(缩小了)。实现的程序段如下:
function uipanel9_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel9(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T axes(handles.axes2);T=getimage;h=histeq(handles.img);imshow(h);handles.img=h;guidata(hObject,handles);关键部分:通过 h=histeq(handles.img)进行直方图均衡(2)直方图统计。通过利用imhist(X)函数来实现直方图统计。
/ 52
%---Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T str=get(hObject,'string');axes(handles.axes2);switch str case '椒盐噪声' T=getimage;prompt={'数日椒盐噪声参数1:'};defans={'0.02'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imnoise(handles.img,'salt & pepper',p1);imshow(f);handles.img=f;guidata(hObject,handles);case '¸高斯噪声' T=getimage;prompt={'输入高斯噪声1:','输入高斯噪声2'};defans={'0','0.02'};21 / 52 p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});p2=str2num(p{2});f=imnoise(handles.img,'gaussian',p1,p2);imshow(f);handles.img=f;guidata(hObject,handles);case '乘性噪声' T=getimage;prompt={'输入乘性噪声1:'};defans={'0.02'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imnoise(handles.img,'speckle',p1);imshow(f);handles.img=f;guidata(hObject,handles);end
(2)滤除噪声(椒盐噪声)。滤波前
中值滤波后
/ 52
线性滤波后
自适应滤波后
实现程序段如下:
function uipanel5_SelectionChangeFcn(hObject, eventdata, handles)%图像滤波
% hObject handle to uipanel5(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
axes(handles.axes2);y1=handles.img;f=double(y1);% 数据类型转换,matlab不支持图像的无符号整型的计算 g=fft2(f);% 傅里叶变换 g=fftshift(g);% 转换数据矩阵 [M,N]=size(g);nn=2;%二阶巴特沃斯低通滤波器 d0=50;%截止频率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
/ 52 end
result=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2));imshow(y3);% 显示处理后的图像
%---Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% hObject handle to pushbutton15(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
global S %还原 axes(handles.axes2);y=imread(S);f=imshow(y);handles.img=y;guidata(hObject,handles);4.10 撤销。
撤销上一步的操作。通过另设一个全局变量T保存是上一次操作后的图像。
/ 52 实现程序段如下:
---Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)str=get(hObject,'string');axes(handles.axes2);global T switch str case '左右翻转' T=handles.img;f=fliplr(handles.img);imshow(f);handles.img=f;guidata(hObject,handles);case '上下翻转' T=handles.img;f=flipud(handles.img);imshow(f);handles.img=f;guidata(hObject,handles);29 / 52 end
程序关键部分:通过f=fliplr(handles.img);f=flipud(handles.img);分别实现左右镜像翻转与上下镜像翻转。
(2)图像旋转。
实现图像的逆时针旋转任意角度。
实现程序段如下:
function pushbutton3_Callback(hObject, eventdata, handles)%图像爱那个旋转
% hObject handle to pushbutton3(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T axes(handles.axes2);T=getimage;f=imcomplement(handles.img);%图像取反´
/ 52 imshow(f);handles.img=f;guidata(hObject,handles);
程序段关键部分:通过f=imcomplement(handles.img);实现图像取反,形成底片效果。
(2)边缘信息。采取图像的边缘信息。
实现程序段如下:
%---Executes on button press in pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton16(see GCBO)
% eventdata reservedDO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @tuxiangchuli_OpeningFcn,...'gui_OutputFcn', @tuxiangchuli_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else
gui_mainfcn(gui_State, varargin{:});end
% End initialization codeto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)% varargin command line arguments to tuxiangchuli(see VARARGIN)
% Choose default command line output for tuxiangchuli handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes tuxiangchuli wait for user response(see UIRESUME)% uiwait(handles.figure1);
%---Outputs from this function are returned to the command line.function varargout = tuxiangchuli_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args(see VARARGOUT);% hObject handle to figure
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function exit_Callback(hObject, eventdata, handles)% hObject handle to exit(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'ÔØÈëͼÏñ');if isequal(filename,0)|isequal(pathname,0)errordlg('ûÓÐÑ¡ÖÐÎļþ','³ö´í');
return;else
file=[pathname,filename];
global S %ÉèÖÃÒ»¸öÈ«¾ÖªäÁ¿S£¬ª£´æ³õʼͼÏñ«¾¶£¬ÒÔªãÖ®ºóµÄ»¹Ô-²Ù¬ô S=file;
x=imread(file);
set(handles.axes1,'HandleVisibility','ON');axes(handles.axes1);imshow(x);
set(handles.axes1,'HandleVisibility','OFF');axes(handles.axes2);imshow(x);handles.img=x;
guidata(hObject,handles);end
%------function about_Callback(hObject, eventdata, handles)% hObject handle to about(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function save_Callback(hObject, eventdata, handles)% hObject handle to save(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
% Hint: get(hObject,'Value')returns toggle state of radiobutton12 global T
axes(handles.axes2);T=getimage;prompt={'µôÕûª¶Êý'};defans={'1'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
y=imadjust(handles.img,[ ], [ ],p1);%ÔöÁÁͼÏñ imshow(y);handles.img=y;
guidata(hObject,handles);
%------function uipanel4_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel4(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
% Hint: get(hObject,'Value')returns toggle state of radiobutton16
global T
axes(handles.axes2);T=getimage;
x=rgb2gray(handles.img);%RGBͼÏñ¬ª»»Îª»Ò¶ÈͼÏñ imshow(x);handles.img=x;
guidata(hObject,handles);
/ 52 %---Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T
axes(handles.axes2);T=getimage;prompt={'Ðý¬ª½Ç¶È:'};defans={'0'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
f=imrotate(handles.img,p1,'bilinear','crop');imshow(f);handles.img=f;
guidata(hObject,handles);
% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end
/ 52
%------function uipanel5_SelectionChangeFcn(hObject, eventdata, handles)%ͼÏñÂ˲¨ % hObject handle to uipanel5(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)str=get(hObject,'string');
/ 52 axes(handles.axes2);global T switch str
case '¬óÓÒ«-¬ª'
T=handles.img;
f=fliplr(handles.img);imshow(f);handles.img=f;
guidata(hObject,handles);
case 'ÉÏÏ«-¬ª' T=handles.img;
f=flipud(handles.img);imshow(f);handles.img=f;
guidata(hObject,handles);end
%---Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)axes(handles.axes2);
x=imhist(handles.img);%Öª«½Í¼Í³¼Æ x1=x(1:10:256);horz=1:10:256;bar(horz,x1);
axis([0 255 0 15000]);
set(handles.axes2,'xtick',0:50:255);set(handles.axes2,'ytick',0:2000:15000);
/ 52
%------function uipanel9_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel9(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
global S %»¹Ô-¹¦ÄÜ axes(handles.axes2);y=imread(S);f=imshow(y);handles.img=y;
guidata(hObject,handles);
/ 52
%---Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T
str=get(hObject,'string');axes(handles.axes2);
switch str
case'ÔöÇ¿'
T=getimage;prompt={'ÊäÈë²ÎÊý:'};defans={'1'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
f=immultiply(handles.img,p1);imshow(f);handles.img=f;
guidata(hObject,handles);
case'¼õÈõ' T=getimage;prompt={'ÊäÈë²ÎÊý:'};defans={'1'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
f=imdivide(handles.img,p1);imshow(f);handles.img=f;
guidata(hObject,handles);end
/ 52 %---Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
axes(handles.axes2);y1=handles.img;
f=double(y1);% Êý¾ÝÀÐͬª»»£¬MATLAB²»Ö§³ÖͼÏñµÄÎÞ«ûºÅÕûÐ͵ļÆËã g=fft2(f);% ¸µÁ¢Ò¶ªä»» g=fftshift(g);% ¬ª»»Êý¾Ý¾ØÕó [M,N]=size(g);
nn=2;% ¶þ½¬©ÍÌØÎÖ˹(Butterworth)µÍͨÂ˲¨Æô d0=50;%½ØֹƵÂÊΪ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);y2=ifft2(result);y3=uint8(real(y2));
imshow(y3);% ÏÔʾÂ˲¨´¦ÀíºóµÄͼÏñ
/ 52 %---Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% hObject handle to pushbutton15(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T
axes(handles.axes2);T=getimage;
f=edge(handles.img,'canny');imshow(f);handles.img=f;
guidata(hObject,handles);
/ 52
%------function edit_Callback(hObject, eventdata, handles)% hObject handle to edit(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function tianjiazaosheng_Callback(hObject, eventdata, handles)% hObject handle to tianjiazaosheng(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function changyongchuli_Callback(hObject, eventdata, handles)% hObject handle to changyongchuli(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function tuxiangfanzhuan_Callback(hObject, eventdata, handles)% hObject handle to tuxiangfanzhuan(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.pushbutton3,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.pushbutton3,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.pushbutton3,'Visible','off');else
set(gcbo, 'Checked', 'on');end
%------function ditonglvbochuli_Callback(hObject, eventdata, handles)% hObject handle to ditonglvbochuli(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.pushbutton15,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.pushbutton15,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.pushbutton15,'Visible','off');else
set(gcbo, 'Checked', 'on');end
%------function tuxianglvbo_Callback(hObject, eventdata, handles)% hObject handle to tuxianglvbo(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.radiobutton12,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.radiobutton12,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.radiobutton12,'Visible','off');else
set(gcbo, 'Checked', 'on');end
/ 52
%------function huidutxiang_Callback(hObject, eventdata, handles)% hObject handle to huidutxiang(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.uipanel10,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.uipanel10,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.uipanel10,'Visible','off');else
set(gcbo, 'Checked', 'on');end
%------function zhifangtujunheng_Callback(hObject, eventdata, handles)% hObject handle to zhifangtujunheng(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.pushbutton8,'Visible','on');
/ 52
第五篇:PowerPoint2003在教学中的深度应用
《PowerPoint2003在教学中的深度应用》
张民生
随着计算机的普及和信息技术环境的逐步优化,常用软件如Word,Excel,PowerPoint,已经成为广大教师教学中不可或缺的工具。但通过调查,我们了解到,这些软件的功能远远没有被开发、被利用。多数教师只会应用这些软件的一些基本功能,比如PowerPoint仅仅起到一个电子黑板的作用,动画,插图、Flash和影音文件的插入等很多功能还不能运用;Word也只会进行简单的打字,连基本的排版功能都没有掌握;Excel功能非常强大,但是我们的绝大部分教师甚至连它的基本运算功能都没有掌握,更不用说把它运用到教育管理和课堂教学中去了;其他复杂的可用于教学的软件有很多,但是广大一线教师没有时间学习,更不用说熟练掌握了,这些都制约了信息技术在教育教学中的应用。
七宝中学物理特级教师马九克老师,近几年对Office中的常用软件及多媒体技术进行潜心研究,如利用Power Point制作出具有动画效果的课件,他在制作过程中的创新思维具有独到之处,运用非常规的思维方法将PowerPoint的功能灵活运用,让你看到了你所没有见过的PPT课件。同时他还研究和总结了Word和Excel中的一些方法和技巧,能够极大的提高教师教学工作和班主任工作的效率。简单实用的一些网络软件的应用技术,可以解决你教学工作中的一些难题。目前马老师的研究成果得到了上海交大、华东师大、上海师大、中国教育技术协会及全国多位信息技术专家的高度肯定,普遍认为马老师的研究成果有以下三个特点:
易学性。该研究是基于我们广大教师目前已普遍应用的常用软件,进行了深度应用,最大特点是简单易学,教师只要有使用这些软件的初步基础,就能很顺利地学习和应用。
实用性。可以充分发挥常用软件的功能,用于课堂教学,提高课堂教学效率,同时也能够提高教师工作的效率和广大教师的信息技术素养。
创新性。马老师对Office在教育教学中应用的系统研究到目前为止,国内还没有类似的研究成果,因此这一深度应用研究具有一定的创新性。
马九克老师的系列研究丛书的出版,为教师的教育技术的学习提供了良好的教材,它将促进课堂教学,进一步体现教育改革的精神,使课改先进的教育理念得以实践。该系列丛书可以作为在职教师信息技术培训教材使用,如果教师学习的时候只是套用,那只能是机械的学习,我们希望学习者在学习过程中能够像作者马老师一样,拥有创新意识,这样就能在学习和应用中提升创新能力和产生创新成果。教师要利用信息技术创设适宜的教学环境,教育的环境,本质上是一种有助于启动和启发思维的酵母,通过环境的创设,可以激发学生学习的兴趣,使学生入情入境,获得学习的快乐感与幸福感。
教育信息化促进教育现代化已经成为教育发展的大趋势。希望大家够认清这一教育发展大势,努力使信息技术成为提高教与学效能的工具与资源,成为促进师生成长的不可或缺的有效环境与资源,以持续提升教学效能。
(张民生:原上海市教委副主任,现任中国教育学会副会长,上海市教委特邀总督学,上海市教育学会会长)