精华内容
下载资源
问答
  • 很多小白学习平面设计就是为了能够找到一份高薪的工作,那么问题来了,平面设计的发展前景,平面设计未来发展的趋势,我们一起来看一看吧。 我们要学习平面设计,那么首先就要明白平面设计到底是什么?平面设计主要...

    很多小白学习平面设计就是为了能够找到一份高薪的工作,那么问题来了,平面设计的发展前景,平面设计未来发展的趋势,我们一起来看一看吧。
    我们要学习平面设计,那么首先就要明白平面设计到底是什么?平面设计主要是指以艺术和专业发方式把商业或者设计表现出来的一种方式。
    在这里插入图片描述
    我们做平面设计会通过一些符号、文字等来作为视觉设计的表现。比较简单来说就是将设计师的思想通过图片来表达出来,需要用到不同的图形和手绘创作,按照设计师的思想组合成的图案。
    平面设计的发展前景,前面也已经说到平面设计是大部分设计的鼻祖,而且设计行业也是有想通之处,而且现再在这个互联网告诉发展的时代,越来越多公司是需要平面设计的专才去做设计,至于要想清楚设计行业前景,自己也可以去网络查一下,相信你查了之后也会知道,平面设计行业前景也是可以的,重点在于你怎么去看待了。
    在这里插入图片描述
    平面设计未来发展的趋势,平面设计与商业活动紧密结合,在国内的就业范围非常广泛,与各行业密切相关,同时也是其它各设计门类(诸如:网页设计、展览展示设计、三维设计、影视动画等)的基石。平面设计师的薪金待遇处位于国内高收入职位的前十名之列。国家扶持:设计服务业是我国重点发展的服务业,目前列入「国家发展重点计画」,目政府也已研拟出「设计服务业发展纲领及行动方案」、提出「推动台湾风格设计」的主轴措施,希望能协助国内产业运用设计发展品牌,促进设计服务之输出,扩大市场需求,并可发扬台湾丰富多元之文化特色。自设工作室:由於平面设计师是一个极具个人风格表现的创意工作,许多平面设计师在累积了一定经验后,便离开组织、成立个人工作室接案。再加上为符合目前为客户量身打造的客制化市场需求,越来越多广告、出版或设计公司在接案后,将案子发包给不同设计风格的平面设计师来做。自设工作室最好要有稳定的客户及案源,才能保持一定的收入。
    以上内容就是对平面设计的发展前景,平面设计未来发展的趋势的介绍了,总的来说平面设计发展前景和趋势还是不错的,因为有广告的地方就要用到平面设计,比如你做个网页设计、展览展示设计、三维设计、影视动画这些也都是要用到平面设计的。

    展开全文
  • 校园网需求分析.doc

    2020-06-17 16:42:57
    1.背景 为了实现现代化教学,提高教学水平,通过计算机系统提高学校日常管理的效率...校园网需求分析包括:用户业务需求分析,网络性能需求分析, 流量需求分析,网络扩张需求分析,网络安全需求分析,网络管理求求分析等等。
  • 一、是的,作为设计师的你,需要关心硬件。 设计师小伙伴们,不知道你们有没有...用高昂的价格买来在设计中用不到的功能,或买到根本不适合自己所从事设计工作的应用需求的电脑硬件,岂不是事倍功半了。 所以,为什么

    一、是的,作为设计师的你,需要关心硬件。

    设计师小伙伴们,不知道你们有没有这样的问题:当你想组装一台机器,询问电脑硬件经销商:“请问我用C4D软件,OC渲染器,想配个渲染快的电脑,有什么推荐的?”大多情况下,经销商会说:“稍等,我们帮你问一下专业人士。”这就尴尬了…

    如果你向电脑硬件发烧友问同样的问题,他们会说:“记住一句话,只买贵的,不买对的!”这样的回答又缺少性价比的考虑。用高昂的价格买来在设计中用不到的功能,或买到根本不适合自己所从事设计工作的应用需求的电脑硬件,岂不是事倍功半了。

    所以,为什么设计师需要关心硬件产品,因为它实实在在的影响你的设计创作的效率!

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    现在很多年轻的90或者95后设计师是完全不懂硬件的。我们以过来人的身份告诉你,如果设计师不足够了解自己的硬件设备,今后的工作会受到很多限制。作为从事3D游戏建模多年的老司机,整理了不少学习资料,每天晚上都会开设游戏建模直播课,课程会讲到3D Max以及Zbrush软件的使用以及机械、道具、人物、怪物等模型的制作,想正儿八经学习技术的小伙伴,可以添加到我的3D建模学习教程扣群:302521268

    因此我们呼吁年轻设计师多了解硬件设备及组装方面的知识,多与经销商、硬件发烧友交流。根据**设计师的行业、工种,由此去选择合适的产品配置,**才能最大程度解放你的创造力。

    我们今天主要带领大家从设计师的角度,了解我们所处的行业,根据工作中的实际情况来为大家提出一些选用硬件产品的建议

    二、处理器,设计硬件中的发动机。

    在影响到设计工作效率的众多硬件中,显然处理器是最关键的硬件之一,而你所用的电脑的处理器直接决定了你设计中许多阶段是瞬间完成还是漫长等待。不同的设计工作者可能会因设计工作差异使用着不同的输入设备、输出显示设备、印制生成等各种不同的外围设计硬件,但所有设计师共通的是,他们的设计工作都需要处理器来进行运算合成、生成输出,所以处理器就是所有设计师硬件中的那个输出核心动力的发动机,是最重要的部件之一。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    为什么是AMD?因为我们关注的核心是作为设计师如何能以更低价格获得要求的设计性能需求,或以同样的预算获得更高的设计性能需求。而AMD处理器具备的高性价比的特点显然匹配这个需求。

    关于AMD,从2017年2月22日的第一代Ryzen发布之后,首先是线程撕裂者1950x 强大的16核32线程以及3.4GHz的劲爆性能干翻 i9 7900x树立起高端形象。随后通过性价比优势对第七代、第八代intel处理器步步紧逼,让“牙膏厂”不得不提前布局,推出新的产品仓促应对。而第三代锐龙处理器更是被网友称为“十年来最优秀的一代AMD处理器”,因为它采用了全新的Zen 2架构,AMD在架构层面的大幅度改进使其IPC提升近15%,虽然看起来第三代 Ryzen 是第二代的续作,但实际上是推倒重来,在多核多线程、浮点运算性能、缓存带宽等方面都有提升。在专业软件方面,第三代Ryzen也有不俗的表现,让艺术创作者在CPU方面有了更多的选择。

    处理器型号众多,有的核心多,有的缓存大,有的频率高,对不同的设计工作类型、设计软件应用来说带来的效果是完全不同的,我们就聊聊AMD的锐龙CPU和各个设计行业之间的关系,以及它在各个设计软件中的使用方面有哪些优势,同样也给大家小小的推荐几款配置。

    三、设计师,你是哪一种?处理器,你要哪一种?

    设计师,看似简单的定义却是一个庞大的群体,其中不同的细类工作千差万别。首先大家要了解整个设计师行业分类,按照不同的工种,可以分为:平面设计师、园林园艺设计师、空间设计师、建筑设计师、工业产品设计师、游戏设计师、影视视频设计师、互动艺术设计师。不同的设计师又隶属于不同的行业。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    其实虽然各种设计师行业的工作完全不同,但在使用的工具上却有一定的共通性,一般使用的设计软件都可以归为三大类别:平面绘制设计类软件;3维构建设计类软件;视频动画等动态媒体设计类软件

    1. 平面绘制设计类软件。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    Photoshop、illustrator恐怕是平面绘制设计类软件中最通用普及的软件,它们广泛应用于几乎所有的图像设计领域,包括作为核心平面绘制设计工具或者作为更高级设计工作的辅助设计工具。

    Photoshop、illustrator平面绘制设计软件,里面大量的设计工作是操作性的,也就是设计师会对设计稿件进行多层元素的累加层叠匹配和绘制工作,这些操作的计算量不大,而其中计算量最集中的工作在于复杂滤镜、样式、混合运算等合成效果,对于现在的处理器来说不构成挑战,对处理器的级别要求并不高。

    因为往往要付诸印刷制作,设计师的平面设计档的数据量可能会比较大,在设计运算过程中会需要更大的缓存空间来缓冲解压缩的图形数据,所以锐龙处理器的“大缓存”特点非常满足这一点需求

    同时,设计师对于电脑的瞬间快速响应能力要求较高,毕竟设计师们都想打开电脑启动软件就立刻进入工作状态,而不想在等待中浪费掉时间,锐龙处理器的“基频高”的特点恰好能让电脑拥有超快速的响应能力,从而满足设计师的需要。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    AMD 锐龙5 3500X处理器,拥有6个真物理核心以及35MB的大缓存,基频3.6GHz;AMD锐龙5 3600X处理器,拥有6核心12线程以及35MB大缓存,基频3.8GHz。这两个处理器缓存大基频高,都很适合平面绘制类软件。搭配上合适的内存与显卡,就是一台响应飞快的设计电脑

    3维构建设计类软件。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    3维构建类设计软件

    园林设计、建筑家装设计、工业产品设计等众多设计行业领域,都会用到3维构建类设计软件,Maya、C4D、3DS MAX等都是非常普遍的3维建构设计软件,而其中3DS MAX是在工作应用中最普及的3D构建类设计软件之一。

    以3Ds Max为例,可以用在工业模型、装潢设计、动画CG等非常多的领域中。3Ds Max最后的渲染阶段是非常耗费时间的,过去渲染一张效果图用几个小时,甚至更长时间是经常有的事情。所以如果能加快渲染速度,对设计师工作效率的提升是非常有帮助的。就目前Vray渲染来讲,渲染速度还是很大程度上依靠CPU的,这与3DS MAX软件渲染的运算类型有关,在建模工作和添加材质、光源阶段会需要用到显卡,但在渲染出图的时候则几乎完全依赖CPU的算力, 这也就硬性取决于是否有一款好的CPU来顶上了。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    3Ds Max渲染输出运算,CPU全部核心满负荷计算

    在渲染出图的时候我们可以看到3DS MAX的CPU占用率几乎达到100%,从资源监视器中也可以看到处理器的多核心多线程都是完全满负荷运算中,3Ds Max这种3维软件,特别是场景中有大量的反射和几何体的时候,渲染起来真的是吃CPU性能的。

    所以,一定要有颗强劲的多核锐龙处理器才能缩短设计师等待的时间。AMD 锐龙7 3700X处理器,拥有8个真物理核心16个线程,同时拥有36MB的大缓存;AMD 锐龙9 3900X处理器,拥有12个真物理核心24个线程,同时拥有超过70MB的大缓存,这些高性能锐龙处理器都很适用于3Ds Max这样的3维构建设计软件,特别是它们的多核心和大缓存,在渲染出图的时候极大提升了计算速度并缩短了时间,你作为设计师如果不想百无聊赖的等待机器出结果,选择它们准没问题。作为从事3D游戏建模多年的老司机,整理了不少学习资料,每天晚上都会开设游戏建模直播课,课程会讲到3D Max以及Zbrush软件的使用以及机械、道具、人物、怪物等模型的制作,想正儿八经学习技术的小伙伴,可以添加到我的3D建模学习教程扣群:302521268

    视频动画等动态媒体设计类软件

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    广告广播行业以及影视、媒体传播行业是设计行业中的一大分支,它们都会应用到视频特效制作、后期制作等软件。例如,After Effects用于特效制作,达芬奇用于视频调色,Premiere Pro用于剪辑合成,它们都是行业中应用最广泛的软件之一。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    After Effects

    (1)经常玩AE的设计师们都知道,这位内存大户,可谓是“有多少吃多少,貌似永远吃不饱”。这里有一个比较关键的地方,CPU的好坏在一方面决定了内存的利用率,也可以说CPU的好坏直接决定了AE的运行速度。

    CPU的频率和核心数以及缓存会很大程度上决定了AE的工作运行速度和输出速度。因为首先频率高内存利用率会高,那么AE工作速度就会更快,特别是体现在预览和渲染方面。其次,AE这种特效合成制作软件是以分层实现效果的工作原理,工程项目中呈现多层、多合成的工程形态,有时候一个合成就有几十个甚至上百个层合成叠加,这些在预览和输出时需要同时进行运算,所以处理器的多个核心在这时候会起到巨大作用。而缓存是速度最快的数据缓冲区,同系统内存协同工作,处理器内的大缓存自然也会带来更快的处理速度。

    AMD 锐龙处理器的核心多、缓存大、基频高的特点与AE这样的软件需求匹配的非常完美。AMD 锐龙7 3800X处理器,拥有8个真物理核心16个线程,同时拥有36MB的大缓存;AMD 锐龙9 3900X处理器,拥有12个真物理核心24个线程,拥有超过70MB的大缓存,完美匹配After Effects这样的特效制作软件,把预览流畅度和渲染输出速度都大大提高了

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    达芬奇

    (2)达芬奇,“一个已经基本实现全流程的调色软件”,除了调色师,相信有很多的媒体人都在用,但如果你电脑的CPU不够强大的话,在剪辑、调色时也会面临无法直接使用高分辨素材、画面卡顿的难题。

    这时很多人会问:达芬奇主要用的难道不是GPU吗?

    其实不然,达芬奇的一些常规性操作,包括一级调色、二级调色以及渲染、RAW文件解码都是CPU和GPU相互配合完成,而在调色中使用到的一些插件以及降噪功能才会对GPU的依赖更高。特别是当处理高压缩编码过的文件时因为需要反解码而使用GPU参与运算,但随着摄影设备的发展,当今影视工业为了取得最佳的宽容度以及最大的后期调整空间,使用RAW文件已经渐渐成为行业标准,而在处理Raw文件时,不需要进行高压缩编码的反解码,所以面对数据量极大的原始数据更加需要的是CPU的高速计算力

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    达芬奇中直接处理超高分辨率影视文件

    影视拍摄的6K RAW源数据文件, 1分钟的影片就可以达到10G以上甚至更大,而高端三代锐龙处理器,凭借多核心、大缓存带来的超级强劲的计算能力,可以直接实现6K Raw格式文件顺滑的剪辑、无延迟卡顿的调色预览,这让设计师再也不用像以前一样转低数据量的代理文件处理、套底回批那样复杂繁琐的工作流程。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    传统繁琐的工作流程

    AMD 锐龙7 3700X处理器,拥有8个真物理核心16个线程,同时拥有36MB的大缓存;AMD 锐龙9 3900X处理器,拥有12个真物理核心24个线程,拥有超过70MB的大缓存,都很适用于达芬奇这样的影视后期制作

    随着fusion 被集成到达芬奇中,如果你也需要在达芬奇中使用Fusion 的话,你最好使用高频率的CPU。而在这方面 AMD Ryzen 9 3900X可以轻松的战胜同等价位的Intel X系列。怎么样,是不是很香呢。

    四、推荐配置。

    我们以最常见的设计师领域为例,根据不同的行业归属和具体工种中最常使用的软件工具,给出最适合的推荐配置,力求让你以最合适的预算最大程度满足设计需求。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    (1)平面视觉行业主要制作各种广告kv、UI、VI设计、利用三维软件制作三维元素,需要的硬件配置不用太高,性价比优先,钱该省还是要省,

    我们推荐的配置如下:

    CPU;AMD锐龙5 3500X

    GPU: P620 2GB

    主板:B450系列

    内存:金士顿DRR4 3200 16*2

    SSD;希捷酷玩520 PCIE4 5GB/秒 500GB**(系统和安装软件)**

    HD:希捷酷狼 4TB (HD用于存储)

    电源:美商海盗船550w

    散热器:原装

    鼠标:可一键切换DPI/轨迹球鼠标**(灵活切换,提高设计师工作效率)**

    键盘:常规

    配件:UPS电源**(在断电5或10分钟分钟内保存工程文件,可以救命的,一定要入手)**

    (2)短视频行业主要涉及剪辑及简单的后期包装技术,短视频主要利用随身设备采集素材,再进行剪辑、转场设计、文案包装,配合背景音乐来完成。对视频的处理肯定比平面行业要求高一些

    我们推荐的配置如下:

    CPU;AMD锐龙5 3600X**(线程的提升可以提高实时预览的效率)**

    GPU: AMD5600XT

    主板:X570系列

    内存:金士顿DRR4 3200 16*2

    SSD;希捷酷玩520 PCIE4 5GB/秒 500GB

    HD:希捷酷狼 4TB

    电源:美商海盗船550w

    散热器:原装

    鼠标:可一键切换DPI

    键盘:常规

    配件:UPS电源

    (3)广告视频行业属于相对较高端的行业,具备非常完整系统的工作流程:分镜设计—三维建模、动画、特效、实时预览—后期动画、特效、合成、实时预览—2K或4K剪辑、音乐合成—达芬奇分级分层调色—音乐编曲、混音、音乐特效。

    我们推荐的配置如下:

    CPU;AMD锐龙9 3900X系列

    GPU:AMD5700XT或AMD RADEON系列**(RADEON系列可进行软硬件底层优化)**

    主板:X570系列

    内存:金士顿DRR4 3200 16*2

    SSD;希捷酷玩520 PCIE4 5GB/秒 1TB

    HD:希捷酷狼PRO 4TBX2 RAID0/1**(存储更安全,效率更高)**

    电源:美商海盗船650w

    散热器:水冷一体

    鼠标:可一键切换DPI/轨迹球鼠标

    键盘:机械键盘

    配件:UPS电源

    (4)会展视频行业的**工作节奏非常快,项目周期通常在1个月之内,素材都是超大分辨率。需要较高配置的硬件,**我们推荐的配置如下:

    CPU;AMD锐龙7 3700X

    GPU:AMD5700XT或AMD RADEON PRO

    主板:X570系列

    内存:金士顿DRR4 3200 16*4

    SSD;希捷酷玩520 PCIE4 5GB/秒 1TB

    HD:希捷酷狼PRO 4TBX2 RAID0/1

    电源:美商海盗船650w

    散热器:恩佐水冷一体

    鼠标:可一键切换DPI/轨迹球鼠标

    键盘:机械键盘

    配件:UPS电源

    (5)顶尖的电影行业具备**和会展行业相似的完善工作流程,除了大分辨率素材外还涉及IMAX素材剪辑,需要比前面行业更高的渲染、调色要求,最高端的产业要匹配最高级的设备,**我们推荐的配置如下:

    CPU;AMD锐龙Threadripper(线程撕裂者) 3990X或AMD线程撕裂者系列产品**(不吹不黑,这是全球量产级最强的CPU)**

    GPU:AMD RADEON PRO WX9100(专业显卡与多个电影级别软件有深层次的软硬件优化)

    主板:TRX40系列

    内存:金士顿DRR4 3200 16*8

    SSD;希捷酷玩520 PCIE4 5GB/秒 2TB

    HD:希捷酷狼PRO 4TBX4 RAID0/1/5

    电源:美商海盗船1000w**(电源稳定性极其重要!)**

    散热器:恩佐水冷一体**(保证稳定性、温度、降噪音)**

    鼠标:可一键切换DPI

    键盘:机械键盘

    配件:UPS电源

    五、性能实战验证。

    到底前面我们推荐的配置好不好用呢?说得再多也不如实操检验来得重要!

    我们用Intel 9900K对比AMD锐龙3900X,同样的工程文件,设置相同,渲染一帧画面,AMD3900X比Intel 9900K**节约13分钟。**别小看这个时间,放到一支90秒的影片里就可节省:20天!这对一家企业来说可以大幅提高工作效率,也为设计师赢得更多进行创意设计的时间,毕竟谁都不想把宝贵的时间浪费在等待渲染上面。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    AMD3990X处理器是目前的王者,我们没有同级别设备可以对比,就拿之前3900x的测试案例演示,看看有多大的提升:渲染一帧画面仅用6分33秒!

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    设计师们,时间就是金钱!3个月可以多做多少项目,大家都心中有数吧?

    接下来我们从设计师的实际工作流程看一下硬件配置会产生什么影响

    建模:你的处理器性能越好,模型的面数越多,精度也就越高

    渲染:我们选取三种代表性材质:无反射无折射材质(岩石)、带反射材质、既带反射又带折射的材质(冰、水),来看一下不同材质对渲染的影响

    无反射无折射材质(岩石)4秒完成渲染;

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    带反射材质17秒完成渲染;

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    既带反射又带折射的材质(冰、水)12秒完成渲染。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    大场景高面数模型(城市场景)5分55秒可完成渲染

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    由此看出AMD3990X处理器在渲染速度这方面,表现良好,可以给到8分以上。

    打镜头,制作动画:考验的是实时预览能力:你的CPU三级缓存、显存、核心运行得越快,就可以在同样时间内给客户预览更多的时长。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    后期合成:对三维软件输出的序列帧进行整体的合成与制作,将不同的效果逐层叠加,进行美感上的优化,最后渲染。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    剪辑:将三维与后期的渲染出的素材,配合音频进行剪辑制作,就可以输出成片了。

    2020年平面设计师、游戏建模师电脑配置推荐,史上最全的配置单

    最后我们希望年轻设计师们燃起对硬件配置的热情,多参与交流活动,全面深入地了解自己“吃饭的家伙”,才能有目的性地选择适合自己的硬件配置,不花冤枉钱,能够真正提高工作效率,早日走上人生巅峰!


    作者:海棠依旧黄小鸭
    链接:https://www.imooc.com/article/308242
    来源:慕课网

    展开全文
  • matlab人脸识别论文

    万次阅读 多人点赞 2019-10-11 17:41:51
    本文设计了一种基于BP神经网络的人脸识别系统,并对其进行了性能分析。该系统首先利用离散小波变换获取包含人脸图像大部分原始信息的低频分量,对图像数据进行降维;再由PCA算法对人脸图像进行主成分特征提取,进--步...

    摘 要

     本文设计了一种基于BP神经网络的人脸识别系统,并对其进行了性能分析。该系统首先利用离散小波变换获取包含人脸图像大部分原始信息的低频分量,对图像数据进行降维;再由PCA算法对人脸图像进行主成分特征提取,进--步降低图像数据的处理量;最后使用经过训练后的BP神经网络对待测人脸进行分类识别。详细介绍了离散小波变换PCA特征提取以及BP神经网络分类设计。通过系统仿真实验与分析发现:人脸特征的提取是该系统的关键;同时,由于人脸灰度信息的统计特征与有监督训练BP神经网络分类器,使该系统只在固定类别,并且光照均匀的人脸识别应用场景中具有较高的识别准确率。因此,很难在复杂环境中应用。
    

    关键词:人脸识别;人工神经网络;离散小波变换; PCA; BP神经网络
    Abstract
    In this paper, a face recognition system based on BP neural network is designed and its performance is analyzed. The system first uses discrete wavelet transform to obtain the low-frequency components which contain most of the original information of the face image, and then uses PCA algorithm to extract the principal component features of the face image, progressively reducing the processing capacity of the image data. Finally, the trained BP neural network is used to classify and recognize the tested face. Discrete wavelet transform PCA feature extraction and BP neural network classification design are introduced in detail. Through the system simulation experiment and analysis, it is found that the extraction of facial features is the key of the system. At the same time, because of the statistical features of gray information and the supervised training of BP neural network classifier, the system only has a high recognition accuracy in fixed categories and uniform illumination of face recognition application scenarios. Therefore, it is difficult to apply in complex environment.

    Key words: face recognition; artificial neural network; discrete wavelet transform; PCA; BP neural network
    1绪论

      人脸识别是模式识别研究的一个热点,它在身份鉴别、信用卡识别,护照的核对及监控系统等方面有着I泛的应用。人脸图像由于受光照、表情以及姿态等因索的影响,使得同一个人的脸像矩阵差异也比较大。因此,进行人脸识别时,所选取的特征必须对上述因素具备-一定的稳定性和不变性。主元分析(PCA)方法是一种有效的特征提取方法,将人脸图像表示成一一个列向量,经过PCA变换后,不仅可以有效地降低其维数,同时又能保留所需要的识别信息,这些信息对光照、表情以及姿态具有一定的不敏感性。 在获得有效的特征向量后,关键问题是设计具有良好分类能力和鲁棒性的分类器、支持向量机(SVI )模式识别方法,兼顾调练误差和泛化能力,在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势。
    

    1.1人脸识别技术的细节

    一般来说,人脸识别系统包括图像提取、人脸定位、图形预处理、以及人脸识别(身份确认或者身份查找)。系统输入一般是一张或者一系列含有未确定身份的人脸图像,以及人脸数据库中的若干已知身份的人脸图像或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。
    1.2人脸识别技术的广泛应用

    一项技术的问世和发展与人类的迫切需求是密切相关的,快速发展的社会经济和科学技术使得人类对安全(包括人身安全、隐私保护等)得认识越来越重视。人脸识别得一个重要应用就是人类的身份识别。一-般来说, 人类得身份识别方式分为三类:
    1.特征物品,包括各种证件和凭证,如身份证、驾驶证、房门钥匙、印章等;
    2.特殊知识,包括各种密码、口令和暗号等;

    3.人类生物特征,包括各种人类得生理和行为特征,如人脸、指纹、手形、掌纹、虹膜. DNA、签名、语音等。前两类识别方式属于传统的身份识别技术,其特点是方便、快捷,但致命的缺点是安全性差、易伪造、易窃取。特殊物品可能会丢失、偷盗和复制,特殊知识可以被遗忘、混淆和泄漏。相比较而言,由于生物特征使人的内在属性,具有很强的自身稳定性和个体差异性,因此生物特征是身份识别的最理想依据。基于以上相对独特的生物特征,结合计算机技术,发展了众多的基于人类生物特征的身份识别技术,如DNA识别技术、指纹识别技术、虹膜识别技术、语音识别技术和人脸识别技术等。生物识别技术在上个世纪已经有了- -定得发展,其中指纹识别技术已经趋近成熟,但人脸识别技术的研究还处于起步阶段。指纹、虹膜、掌纹等识别技术都需要被识别者的配合,有的识别技术还需要添置复杂昂贵的设备。人脸识别可以利用已有的照片或是摄像头远距离捕捉图像,无需特殊的采集设备,系统的成本低。并且自动人脸识别可以在当事人毫无觉察的情况下完成身份确认识别工作,这对反恐怖活动有非常重要的意义。基于人脸识别技术具有如此多的优势,因此它的应用前最非常广阔,已成为最具潜力的生物特征识别技术之一
    1.3人脸识别技术的难点

      虽然人类可以毫不困难地根据人脸来辨别一个人,但是利用计算机进行完全自动的人脸识别仍然有许多困难。人脸模式差异性使得人脸识别成为-个非常困难的问题,表现在以下方面:
    
      1.人脸表情复杂,人脸具有多样的变化能力,人的脸上分布着Ii十多块面部肌肉,这些肌肉的运动导致不同面部表情的出现,会造成人脸特征的显著改变。
    
      2.随着年龄而改变,随着年龄的增长,皱纹的出现和面部肌肉的松驰使得人脸的结构和纹理都将发生改变。
    
      3.人脸有易变化的附加物,例如改变发型,留胡须,戴帽子或眼镜等饰物。4.人脸特征遮掩,人脸全部、部分遮掩将会造成错误识别。
    
      5.人脸图像的畸变,由于光照、视角、摄取角度不同,可能造成图像的灰度。
    

    1.4国内外研究状况

    人脸识别是人类视觉最杰出的能力之-。 它的研究涉及模式识别、图像处理、生物学、心理学、认知科学,与基于其它生物特征的身份鉴别方法以及计算机人机感知交互领域都有密切联系。人脸识别早在六七十年代就引起了研究者的强烈兴趣。20世纪60年代,Bledsoe 提出了人脸识别的半自动系统模式与特征提取方法。70年代,美、英等发达国家开始重视人脸识别的研究工作并取得进展。1972 年,Harmon 用交互人脸识别方法在理论上与实践上进行了详细的论述。同年,Sakai 设计了人脸图像自动识别系统。80年代初
    T. Minami 研究出了优于Sakai的人脸图像自动识别系统。但早期的人脸识别一般都需要人的某些先验知识,无法摆脱人的干预。进入九十年代,由于各方面对人脸识别系统的迫切需求,人臉识别的研究变的非常热门。人脸识别的方法有了重大突破,进入了真正的机器自动识别阶段,如Kartbunen-Loeve变换等或新的神经网络技术。人脸识别研究

    得到了前所未有的重视,国际上发表有关人脸识别等方面的论文数量大幅度增加,仅从1990年到2000年之间,sCl 及EI可检索到的相关文献多达数千篇,这期间关于人脸识别的综述也屡屡可见。国外有许多学校在研究人脸识别技术,研究涉及的领域很广。这些研究受到军方、警方及大公司的高度重视和资助,国内的一些知名院校也开始从事人脸识别的研究。

      人脸识别是当前模式识别领域的一个前沿课题,但目前人脸识别尚处于研究课题阶段,尚不是实用化领域的活跃课题。虽然人类可以毫不困难地由人脸辨别一个人,但利用计算机进行完全自动的人脸识别存在许多困难,其表现在:人脸是非刚体,存在表情变化:人脸随年龄增长面变化:发型、眼镜等装饰对人脸造成遮挡:人脸所成图像受光照、成像角度、成像距离等影响。人脸识别的困难还在于图像包括大量的数据,输入的像素可能成百上千,每个像素都含有各自不同的灰度级,由此带来的计算的复杂度将会增加。现有的识别方法中,通过从人脸图像中提取出特征信息,来对数据库进行检索的方法速度快,而利用拓扑属性图匹配来确定匹配度的方法则相对较快。
    

    1.5人脸识别的研究内容

    人脸识别技术(AFR)就是利用计算机技术,根据数据库的人脸图像,分析提取出有效的识别信息,用来“辨认”身份的技术。人脸识别技术的研究始于六十年代末七十年代初,其研究领城涉及图像处理、计算机视觉、模式识别、计算机智能等领城,是伴随着现代化计算机技术、数据库技术发展起来的综合交叉学科。
    1.5.1人脸识别研究内容

      人脸识别的研究范围广义上来讲大致包括以下hi个方面的内容。
    
      1.人脸定位和检测(Face Detection) :即从动态的场景与复杂的背景中检测出人臉的存在并且确定其位置,最后分离出来。这一任务主要受到光照、噪声、面部倾斜以及各种各样遮挡的影响。
    
      2.人脸表征(Face Representation) (也称人脸特征提取) :即采用某种表示方法来表示检测出人脸与数据库中的已知人脸。通常的表示方法包括几何特征(如欧氏距离、曲率、角度)、代数特征(如矩阵特征向量)、固定特征模板等。
    
      3.人脸识别(Face Recogni tion) :即将待识别的人脸与数据库中已知人脸比较,得出相关信息。这一过程的核心是选择适当的人脸表征方法与匹配策略。
    
      4.表情姿态分析(Expression/Gesture Analysis) :即对待识别人脸的表情或姿态信息进行分析,并对其加以归类。
    
    
      5.生理分类(Physical Classi fication) :即对待识别人脸的生理特征进行分析,得出其年龄、性别等相关信息,或者从几幅相关的图像推导出希望得到的人脸图像,如从父母图像推导出孩子脸部图像和基于年龄增长的人脸图像估算等。
    
      人臉识别的研究内容,从生物特征技术的应用前景来分类,包括以下两个方面:人脸验证与人脸识别。
    
      1.人脸验证((Face Veri ficat ion/Authenticat ion):即是回答“是不是某人?"的问题.它是给定一幅待识别人脸图像,判断它是否是某人的问题,属于一对一的两类模式分类问题,主要用于安全系统的身份验证。
    
      2.人脸识别(Face 。Recognition) :即是回答“是谁”的问题。它是给定-幅待识别人脸图像,再已有的人脸数据库中,判断它的身份的问题。它是个“-对多”的多类模式分类问题,通常所说的人脸识别即指此类问题,这也是本文的主要研究内容。
    

    1.5.2人脸识别系统的组成

      在人脸识别技术发展的几十年中,研究者们提出了多种多样的人脸识别方法,但大部分的人脸识别系统主要由三部分组成:图像预处理、特征提取和人脸的分类识别。一个完整的自动人脸识别系统还包括人脸检测定位和数据库的组织等模块,如图1.1.其中人脸检测和人脸识别是整个自动人脸识别系统中非常重要的两个环节,并且相对独立。下面分别介绍这两个环节。
    

    人脸检测与定位,检测图像中是否由人脸,若有,将其从背景中分割出来,并确定其在图
    像中的位置。在某些可以控制拍摄条件的场合,如警察拍罪犯照片时将人脸限定在标尺内,此时人脸的定位很简单。证件照背景简单,定位比较容易。在另一些情况下,人脸在图像
    中的位置预先是未知的,比如在复杂背景下拍摄的照片,这时人脸的检测与定位将受以下因素的影响: :

      1.人脸在图像中的位置、角度、不固定尺寸以及光照的影响:
    
      2.发型、眼睛、胡须以及人脸的表情变化等,3.图像中的噪声等。
    
      特征提取与人脸识别,特征提取之前一般都要敌几何归一化和灰度归一化的工作。前者指根据人脸定位结果将图像中的人脸变化到同一位置和大小:后者是指对图像进行光照补偿等处理,以克服光照变化的影响,光照补偿能够一定程度的克服光照变化的影响而提高识别率。提取出待识别的人脸特征之后,即进行特征匹配。这个过程是一对多或者一对一的匹配过程,前者是确定输入图像为图象库中的哪一个人(即人脸识别),后者是验证输入图像的人的身份是否属实(人脸验证).  
    

    以上两个环节的独立性很强。在许多特定场合下人脸的检测与定位相对比较容易,因此“特征提取与人脸识别环节”得到了更广泛和深入的研究。近几年随着人们越来越关心各种复杂的情形下的人臉自动识别系统以及多功能感知研究的兴起,人脸检测与定位才作为一个独立的模式识别问题得到了较多的重视。本文主要研究人脸的特征提取与分类识别的问题。

    2基于bp神经网络的人脸识别算法

      虽然人脸识别方法的分类标准可能有所不同,但是8前的研究主要有两个方向,一类是从人脸图像整体(Holistic Approaches)出发,基于图像的总体信息进行分类识别,他重点考虑了模式的整体属性,其中较为著名的方法有:人工神经网络的方法、统计模式的方法等。另一类是基于提取人脸图像的几何特征参数(Feature-Based Approaches), 例如眼、嘴和鼻子的特征,再按照某种距离准则进行分类识别。这种方法非常有效,因为人脸不是刚体,有着复杂的表情,对其严格进行特征匹配会出现困难。面分别介绍- -些常 用的方法,前两种方法属于从图像的整体方面进行研究,后三种方法主要从提取图像的局部特征讲行研究。
    
    
      2.1基于特征脸的方法
    

    特征脸方法(cigenface)是从生元分析方法PCA c Principal ComponentAnalysis 导出的一种人脸分析识别方法,它根据一-组人脸图像构造主元子空间,由于主元具有人脸的形状也称作特征脸。识别时将测试图像投影到主元子空间上得到了-组投影系数,然后和各个已知人的人脸图像进行比较识别,取得了很好的识别效果。在此基础上出现了很多特征脸的改进算法。

      特征脸方法原理简单、易于实现,它把人脸作为一个整体来处理,大大降低了识别复杂度。但是特征脸方法忽视了人脸的个性差异,存在着一定的理论缺陷。研究表明:特征脸方法随光线角度及人脸尺寸的影响,识别率会有所下降。
    

    2.2基于bp神经网络的方法

    一、实验要求采用三层前馈BP神经网络实现标准人脸YALE数据库的识别,编程语言为C系列语言。
    二、BP神经网络的结构和学习算法实验中建议采用如下最简单的三层BP神经网络,输入层为,有n个神经元节点,输出层具有m个神经元,网络输出为,隐含层具有k个神经元,采用BP学习算法训练神经网络。BP神经网络的结构BP网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对BP网络加以训练,网络就具有输入输出对之间的映射能力。BP网络执行的是有教师训练,其样本集是由形如(输入向量,期望输出向量)的向量对构成的。在开始训练前,所有的权值和阈值都应该用一些不同的小随机数进行初始化。BP算法主要包括两个阶段:

    2.2.1向前传播阶段

    ①从样本集中取一个样本(Xp,Yp),将Xp输入网络,其中Xp为输入向量,Yp为期望输出向量。
    ②计算相应的实际输出Op。在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是下列运算:

    (2) 向后传播阶段
    ①计算实际输出Op与相应的理想输出Yp的差;
    ②按极小化误差的方法调整权矩阵。这两个阶段的工作一般应受到精度要求的控制

    (1)作为网络关于第p个样本的误差测度(误差函数)。

    (2)如前所述,之所以将此阶段称为向后传播阶段,是对应于输入信号的正常传播而言的,也称之为误差传播阶段。为了更清楚地说明本文所使用的BP网络的训练过程,首先假设输入层、中间层和输出层的单元数分别是N、L和M。X=(x0,x1,…,xN-1)是加到网络的输入矢量,H=(h0,h1,…,hL-1)是中间层输出矢量,Y=(y0,y1,…,yM-1)是网络的实际输出矢量,并且用D=(d0,d1,…,dM-1)来表示训练组中各模式的目标输出矢量。输出单元i到隐单元j的权值是Vij,而隐单元j到输出单元k的权值是Wjk。另外用θk和Φj来分别表示输出单元和隐单元的阈值。于是,中间层各单元的输出为:

    (3)而输出层各单元的输出是:

    其中f(*)是激励函数,采用S型函数:

    2.2.2在上述条件下,网络的训练过程如下:

    (1) 选定训练集。由相应的训练策略选择样本图像作为训练集。
    (2) 初始化各权值Vij,Wjk和阈值Φj,θk,将其设置为接近于0的随机值,并初始化精度控制参数ε和学习率α。
    (3) 从训练集中取一个输入向量X加到网络,并给定它的目标输出向量D。
    (4) 利用式(3)计算出一个中间层输出H,再用式(4)计算出网络的实际输出Y。
    (5) 将输出矢量中的元素yk与目标矢量中的元素dk进行比较,计算出M个输出

    误差项:

    对中间层的隐单元也计算出L个误差项:

    (6) 依次计算出各权值和阈值的调整量:

    (8) 当k每经历1至M后,判断指标是否满足精度要求:E≤ε,其中E是总误差函数。

    如果不满足,就返回(3),继续迭代。如果满足,就进入下一步。
    (9) 训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类器形成。再一次进行训练时,直接从文件导出权值和阈值进行训练,不需要进行初始化。

    YALE数据库是由耶鲁大学计算视觉与扼制中心创立,包括15位志愿者,每个人有11张不同姿势、光照和表情的图片,共计165张图片,图片均为80*100像素的BMP格式图像。我们将整个数据库分为两个部分,每个人的前5幅图片作为网络的训练使用,后6副图片作为测试使用。测试样例:

    输入输出:

      神经网络在人脸识别应用中有很长的历史。早期用于人脸识别的神经网络主要是Kohonen自联想映射神经网络,用于人脸的“回忆”。所谓“回忆”是指当输入图像上的人脸受噪声污染严重或部分缺损时,能用Kohonen网络恢复出原来完整的人脸。Intrator 等人用一个无监督/监督混合神经网络进行人脸识别。其输入是原始图像的梯度图像,以此可以去除光照的变化。监督学习目的是寻找类的特征,有监督学习的目的是减少训练样本被错分的比例。这种网络提取的特征明显,识别率高,如果用几个网络同时运算,求其平均,识别效果还会提高。
    
      与其他类型的方法相比,神经网络方法在人脸识别上有其独到的优势,它避免了复:杂的特征提取工作,可以通过学习的过程获得其他方法难以实现的关于人脸识别的规律和规则的隐性表达。此外,神经网络以时示方式处理信息,如果能用硬件实现,就能显著提高速度。神经网络方法除了用于人脸识别外,还适用于性别识别、种族识别等。
    

    2.3弹性图匹配法

    弹性图匹配方法是-种基于动态链接结构DLA C Dynamic Link Architecture的方法。它将人脸用格状的稀疏图表示,图中的节点用图像位置的Gabor小波分解得到的特征向量标记,图的边用连接节点的距离向量标记。匹配时,首先J找与输入图像最相似的模型图,再对图中的每个节点位置进行最佳匹配,这样产生-一个变形图,其节点逼近模型图的对应点的位置。弹性图匹配方法对光照、位移、旋转及尺度变化都敏感。此方法的主要缺点是对每个存储的人臉需计算其模型图,计算量大,存储量大。为此,Wiskott 在原有方法的基础上提出聚東图匹配,部分克服了这些缺点。在聚束图中,所有节点都已经定位在相应目标上。对于大量数据库,这样可以大大减少识别时间。另外,利用聚束图还能够匹配小同人的最相似特征,因此可以获得关于未知人的性别、胡须和眼镜等相关信息。
    2.4基于模板匹配的方法
    模板匹配法是一-种经典的模式识别方法,这种方法大多是用归一一化和互相关,直接计算两副图像之间的匹配程度。由于这种方法要求两副图像上的目标要有相同的尺度、取向和光照条件,所以预处理要做尺度归一化和灰度归一化的工作。最简单的人脸模板是将人脸看成-一个椭圆,检测人臉也就是检测图像中的椭圆。另一种方法是将人脸用一-组独立的小模板表示,如眼睛模板、嘴巴模板、鼻子模板、眉毛模板和下巴模板等。但这些模板的获得必须利用各个特征的轮廓,而传统的基于边缘提取的方法很难获得较高的连续边缘。即使获得了可靠度高的边缘,也很难从中自动提取所需的特征量。模板匹配方法在尺度、光照、旋转角度等各种条件稳定的状态下,它的识别的效果优于其它方法,但它对光照、旋转和表情变化比较敏感,影响了它的直接使用。2.5基于人脸特征的方法人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以作为人脸识别的重要特征。几何特征最早是用于人脸检测轮廓的描述与识别,首先根据检测轮廓曲线确定若干显著点,并由这些显著点导出- -组用于识别的特征度量如距离、角度等。采用儿何特征进行正面人脸识别一般是通过提取人眼、口、鼻等重要特征点的位置和眼睛等重要器官的几何形状作为分类特征。
    定位眼睛往往是提取人脸几何特征的第-步。由于眼睛的对称性以及眼珠呈现为低灰度值的圆形,因此在人脸图像清晰瑞正的时候,眼睛的提取是比较容易的。但是如果人脸图像模糊,或者噪声很多,则往往需要利用更多的信息(如眼睛和眉毛、鼻子的相对位置等),而且.这将使得眼睛的定位变得很复杂。而且实际图像中,部件未必轮廓分明,有时人用眼看也只是个大概,计算机提取就更成问题,因而导致描述同-一个人的不同人脸时,其模型参数可能相差很大,面失去识别意义。尽管如此,在正确提取部件以及表情变化微小的前提下,该方法依然奏效,因此在许多方面仍可应用,如对标准身份证照片的应用。

    2.5九个人脸库介绍

    1. FERET人脸数据库
      http://www.nist.gov/itl/iad/ig/colorferet.cfm
      由FERET项目创建,此图像集包含大量的人脸图像,并且每幅图中均只有一个人脸。该集中,同一个人的照片有不同表情、光照、姿态和年龄的变化。包含1万多张多姿态和光照的人脸图像,是人脸识别领域应用最广泛的人脸数据库之一。其中的多数人是西方人,每个人所包含的人脸图像的变化比较单一。

    2. CMU Multi-PIE人脸数据库
      http://www.flintbox.com/public/project/4742/
      由美国卡耐基梅隆大学建立。所谓“PIE”就是姿态(Pose),光照(Illumination)和表情(Expression)的缩写。CMU Multi-PIE人脸数据库是在CMU-PIE人脸数据库的基础上发展起来的。包含337位志愿者的75000多张多姿态,光照和表情的面部图像。其中的姿态和光照变化图像也是在严格控制的条件下采集的,目前已经逐渐成为人脸识别领域的一个重要的测试集合。

    3. YALE人脸数据库(美国,耶鲁大学)
      http://cvc.cs.yale.edu/cvc/projects/yalefaces/yalefaces.html
      由耶鲁大学计算视觉与控制中心创建,包含15位志愿者的165张图片,包含光照、表情和姿态的变化。
      Yale人脸数据库中一个采集志愿者的10张样本,相比较ORL人脸数据库Yale库中每个对象采集的样本包含更明显的光照、表情和姿态以及遮挡变化。

    4. YALE人脸数据库B
      https://computervisiononline.com/dataset/1105138686
      包含了10个人的5850幅在9种姿态,64种光照条件下的图像。其中的姿态和光照变化的图像都是在严格控制的条件下采集的,主要用于光照和姿态问题的建模与分析。由于采集人数较少,该数据库的进一步应用受到了比较大的限制。

    5. MIT人脸数据库
      由麻省理工大学媒体实验室创建,包含16位志愿者的2592张不同姿态(每人27张照片),光照和大小的面部图像。

    6. ORL人脸数据库
      https://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html
      由英国剑桥大学AT&T实验室创建,包含40人共400张面部图像,部分志愿者的图像包括了姿态,表情和面部饰物的变化。该人脸库在人脸识别研究的早期经常被人们采用,但由于变化模式较少,多数系统的识别率均可以达到90%以上,因此进一步利用的价值已经不大。
      ORL人脸数据库中一个采集对象的全部样本库中每个采集对象包含10幅经过归一化处理的灰度图像,图像尺寸均为92×112,图像背景为黑色。其中采集对象的面部表情和细节均有变化,例如笑与不笑、眼睛睁着或闭着以及戴或不戴眼镜等,不同人脸样本的姿态也有变化,其深度旋转和平面旋转可达20度。

    7. BioID人脸数据库
      https://www.bioid.com/facedb/
      包含在各种光照和复杂背景下的1521张灰度面部图像,眼睛位置已经被手工标注。

    8. UMIST图像集
      由英国曼彻斯特大学建立。包括20个人共564幅图像,每个人具有不同角度、不同姿态的多幅图像。

    9. 年龄识别数据集IMDB-WIKI
      https://data.vision.ee.ethz.ch/cvl/rrothe/imdb-wiki/
      包含524230张从IMDB和Wikipedia爬取的名人数据图片。应用了一个新颖的化回归为分类的年龄算法。本质就是在0-100之间的101类分类后,对于得到的分数和0-100相乘,并将最终结果求和,得到最终识别的年龄

    3matlab分析人脸方法介绍
    人脸识别之一:查找图片中的人脸并用方框圈出
    这种类似于智能手机拍照时,屏幕里那个框任务头部的红框。大致步骤为:获取RGB图片—>转换为灰度图像—>图像处理—>人脸识别。代码如下:clear all
    clc

    %获取原始图片
    i=imread(‘face.jpg’);
    I=rgb2gray(i);
    BW=im2bw(I); %利用阈值值变换法将灰度图像转换成二进制图像
    figure(1);
    imshow(BW);
    %最小化背景
    [n1 n2]=size(BW);
    r=floor(n1/10);
    c=floor(n2/10);
    x1=1;x2=r;
    s=r*c;

    for i=1:10
    y1=1;y2=c;
    for j=1:10
    if(y2<=c || y2>=9c) || (x11 || x2r10)
    loc=find(BW(x1:x2,y1:y2)==0);
    [o p]=size(loc);
    pr=o*100/s;
    if pr<=100
    BW(x1:x2,y1:y2)=0;
    r1=x1;r2=x2;s1=y1;s2=y2;
    pr1=0;
    end
    imshow(BW);
    end
    y1=y1+c;
    y2=y2+c;
    end
    x1=x1+r;
    x2=x2+c;
    end
    figure(2)
    subplot(1,2,1);
    imshow(BW)
    title(‘图像处理’);
    %人脸识别
    L=bwlabel(BW,8);
    BB=regionprops(L,‘BoundingBox’);
    BB1=struct2cell(BB);
    BB2=cell2mat(BB1);

    [s1 s2]=size(BB2);
    mx=0;
    for k=3:4:s2-1
    p=BB2(1,k)*BB2(1,k+1);
    if p>mx && (BB2(1,k)/BB2(1,k+1))<1.8
    mx=p;
    j=k;
    end
    end
    subplot(1,2,2);
    title(‘人脸识别’);
    imshow(I);
    hold on;
    rectangle(‘Position’,[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j)],‘EdgeColor’,‘r’)实验效果图:

             从实验效果图中,可以看出红框框出了人脸部分。
    

    人脸识别之二:由输入的人像识别出数据库中人像
    这种情况类似于手机人脸解锁,通过当前的人脸去和保存的人脸做比对来实现解锁等功能;从网上看了好多资料,由于个人能力有限大多都没仿真出来,最后通过学习PCA算法,了解到可通过PCA算法对输入矩阵降维,提取特征值和特征向量的方式来做人脸比对。具体的PCA的东西在这里不作介绍,主要介绍一下如何实现人脸比对。
    大致步骤:制作人脸数据样本—>PCA提取样本数据特征值—>人脸比对1.人脸样本
    从网上搜集了10张人脸图片,来制作成样本。

                         %读取转换10张图片,生成数据矩阵function ImgData = imgdata()  
    

    %导入图片
    picture1 = rgb2gray(imread(‘1.jpg’));
    picture2 = rgb2gray(imread(‘2.jpg’));
    picture3 = rgb2gray(imread(‘3.jpg’));
    picture4 = rgb2gray(imread(‘4.jpg’));
    picture5 = rgb2gray(imread(‘5.jpg’));
    picture6 = rgb2gray(imread(‘6.jpg’));
    picture7 = rgb2gray(imread(‘7.jpg’));
    picture8 = rgb2gray(imread(‘8.jpg’));
    picture9 = rgb2gray(imread(‘9.jpg’));
    picture10 = rgb2gray(imread(‘10.jpg’));
    [m,n] = size(picture1);
    picture_ten = {picture1,picture2,picture3,picture4,picture5,picture6,picture7,picture8,picture9,picture10};
    for i=1:10
    %把mn的矩阵变换成1(mn)的矩阵
    ImgData(i,:) = reshape(picture_ten{i},1,m
    n);
    end
    %数据范围缩小到0到1之间
    ImgData = double(ImgData)/255;

    PCA分析function Cell_ten = PCA(imgdata,k)
    [m,n] = size(imgdata);
    img_mean = mean(imgdata); %计算每列平均值
    img_mean_ten = repmat(img_mean,m,1); %复制m行平均值至矩阵img_mean_ten
    Z = imgdata - img_mean_ten;
    T = Z’Z;%协方差矩阵
    [V,D] = eigs(T,k); %计算T中最大的前k个特征值与特征向量
    img_new = imgdata
    V*D; %低维度下的各个人脸的数据
    Cell_ten = {img_new,V,D};3.通过输入测试人脸从数据库中找到相对应人脸function face= facefind(Cell_ten,testdata)%此函数代码借鉴于他人,还未征求其同意,这里就暂时略过这里testdata是测试图片的数据4.主程序调用img=imgdata(); %图片矩阵数据
    Cell_ten=PCA(img,2);% PCA
    face1=facefind(Cell_ten,imread(‘test.jpg’));%识别
    subplot(1,2,1)
    imshow(‘test.jpg’)
    title(‘测试图像’)
    subplot(1,2,2)
    imshow(strcat(num2str(face1),’.jpg’))
    title(‘数据库图像’)测试效果: 使用这个方式可以实现简单的人脸识别,但精确度不高;

    4 分析算法
    在人脸识别系统中有许多关键环节,其中最重要的莫过于特征提取。利用主成分分析法(PCA)进行特征提取是目前应用最多的提取方法。作为一种科学的统计方法,它在模式识别、信号处理、数字图像处理等等领域都有广泛涉猎。基于PCA中空间原始数据主要特征提取,减少数据冗余的思想,一些在低维特征空间的数据被处理,并合理保留了原始数据中有用的信息,数据空间中维数过高的问题也得以解决。
    4.1  主成分分析的基本原理

    实际上主成分分析就是一种数学降维演算方法,用若干个综合变量来代替原本更多的变量,让这些综合变量尽可能的实现对原有变量信息的取代,并保持彼此之间不存在关联。这种多变量化为少数相互无关的变量且信息量不变的统计分析方法就叫做主成分分析法。
      假设F1表示原变量的首个线性组合所组成的主要成分指标,就有F1=a11X1+a21X2+…ap1Xp。根据这个数学式可知,如果在每一个主成分中提取一个信息量,即可用方差(F1)进行度量,随着方差F1的增大,F1所包含的信息也就越多,同时它的线性组合选取也可表示为X1、X2…XP,它们都被称为方差F1中的第一主成分。如果第一主成分不足以代表原有的P个变量信息时,就可以考虑选取F2,即第二个线性组合,借由它来反映原本的有效信息。在F2中可以不显示第一主成分中已有的信息,以数学语言来表达要求的话即Cov(F1,F2)=0,其中F2为第二主成分。所以按照实际原变量的变化需求,就可以构造出多个主成分指标。
      4.2人脸识别的技术特点

    人脸识别是模式识别中的重要分支,它是指通过计算机系统来分析人脸图像,从中获取有价值的识别信息,从而辨识身份。所以说从技术特点上来看,人脸识别具有以下几个关键特色。
     1、PCA算法
    算法大致步骤:
    设有m条n维数据。
    1)将原始数据按列组成n行m列矩阵X;
    2)将X的每一行(这里是图片也就是一张图片变换到一行)进行零均值化,即减去这一行的均值(样本中心化和标准化);将所有的样本融合到一个矩阵里面特征向量就是变换空间的基向量U=[u1,u2,u3,u4,…],脑袋里面要想到一个样本投影变换就是该空间的一个点,然后对于许多点可以用KNN等不同的方法进行分类。
    3)求出协方差矩阵C=1mXXTC=1mXXT C=\frac {1 }{m } XX^TC=m1XXT;
    4)求出协方差矩阵的特征值及对应的特征向量;
    5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P;
    6)Y=PXY=PX Y=PXY=PX即为降维到kk kk维后的数据。
      对数据进行中心化预处理,这样做的目的是要增加基向量的正交性,便于高维度向低纬度的投影,即便于更好的描述数据。
      对数据标准化的目的是消除特征之间的差异性,当原始数据不同维度上的特征的尺度不一致时,需要标准化步骤对数据进行预处理,使得在训练神经网络的过程中,能够加速权重参数的收敛。
      过中心化和标准化,最后得到均值为0,标准差为1的服从标准正态分布的数据。
      求协方差矩阵的目的是为了计算各维度之间的相关性,而协方差矩阵的特征值大小就反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大(越有投影的必要,矩阵相乘的过程就是投影),故而选取合适的前k个能以及小的损失来大量的减少元数据的维度。

    2、PCA原理推导
    基于K-L展开的PCA特征提取:

    5.算法优化方法
    我用了三种方法对其进行优化
    1.采用动量梯度下降算法训练 BP 网络。
    训练样本定义如下:
    输入矢量为
    p =[-1 -2 3 1
    -1 1 5 -3]
    目标矢量为 t = [-1 -1 1 1]
    2. 采用贝叶斯正则化算法提高 BP 网络的推广能力。在本例中,我们采用两种训练方法,即 L-M 优化算法(trainlm)和贝叶斯正则化算法(trainbr),用以训练 BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采用如下MATLAB 语句生成:
    输入矢量:P = [-1:0.05:1];
    目标矢量:randn(’seed’,78341223);
    T = sin(2piP)+0.1randn(size§);
    3. 采用“提前停止”方法提高 BP 网络的推广能力。对于和例 2相同的问题,在本例中我们将采用训练函数 traingdx 和“提前停止”相结合的方法来训练 BP 网络,以提高 BP 网络的推广能力。在利用“提前停止”方法时,首先应分别定义训练样本、验证样本或测试样本,其中,验证样本是必不可少的。在本例中,我们只定义并使用验证样本,即有
    验证样本输入矢量:val.P = [-0.975:.05:0.975]
    验证样本目标矢量:val.T = sin(2
    pival.P)+0.1randn(size(val.P))
    值得注意的是,尽管“提前停止”方法可以和任何一种 BP 网络训练函数一起使用,但是不适合同训练速度过快的算法联合使用,比如 trainlm 函数,所以本例中我们采用训练速度相对较慢的变学习速率算法 traingdx 函数作为训练函数。
    参考文献

    [1] HongZiquan.AlgbricFeatureExcaciofmftfoReonino[JPatteo Recognition. 1991. 22 (1) :43~44.
    [2] Yuille A L Detcction Templates for Face Recognitio[JCognitive Neuroscience , 1991. 191-200
    [3]卢春雨张长水局城区城特征的快速人脸检测法[D北京:清华大学学报.1999.96 (1) ;4-6.
    [4]陈刚,减飞虎实用人脸识别系统的本征脸法实现[D]2001年5月230():45-46.
    [
    5]杜平,徐大为,刘重庆,基F整体特征的人脸识别方法的研究[12003年6月49 (3) ;382-383.
    [6] Chow G, Li X. Towards A System for Automatic Facial Feature Detctio[U] 1993. 2903)2-3.
    [7]杨变若,王煎法,杨未来人脸全局特iE识别研究[Z]1997年11月3(5):; 871-875.
    [8]边肇棋,张学工阎平凡等模式识别D]北京:清华大学出版社2000 302)16-17.

    致 谢

      从毕业设计的选题到论文的指导到最后定稿,期间遇到了无数的困难和阻碍,也曾想过对自己降低要求,也曾想过放弃最初想要坚持的设计,但是最后在孙老师和同学的鼓励和陪伴下,努力克服了所有的困难,独立完成了毕业设计和论文的书写。尤其是要感射我的论文指导老师孙老师,不厌其烦的对我的设计进行指导修改,耐心的帮助我改进设计帮助我搜集相关的资料,感谢孙老师如母亲--般的关怀,在孙老师身上不仅学习到了对学术严谨的态度,更被孙老师亲切无私的个人魅力所感染。
    
      还要感谢我的同学和其他所有的老师,他们严谨的学术态度,宽容待人严于律己的处世风范都使我受益良多。
    
    展开全文
  • 基于MATLAB的水果分级设计

    万次阅读 多人点赞 2018-06-14 14:19:35
    基于MATLAB的水果分级识别技术研究摘 要本次毕业设计介绍了基于MATLAB的水果分级自动识别,利用手机端获取苹果的样本图像,应用MATLAB软件编程实现了对样本图像的预处理,包括图像滤波、图像填充、图像灰度化、图像...

    基于MATLAB的水果分级识别技术研究

    摘 要

    本次毕业设计介绍了基于MATLAB的水果分级自动识别,利用手机端获取苹果的样本图像,应用MATLAB软件编程实现了对样本图像的预处理,包括图像滤波、图像填充、图像灰度化、图像二值化以及特征量提取等。

    水果分级自动识别我们通过四个不同方面来对基于MATLAB的苹果分级进行探索研究。

    主要工作如下:

    1. 在苹果大小识别方面,比较了不同的大小计算方法,选择了利用图像处理技术,找到苹果中心点,判断苹果图像实际半径长度,从而对苹果大小进行分级识别。

    2. 在苹果颜色识别方面,通过对不同的颜色模型进行研究,RGB模型主要适用于硬件设备,HIS模型更符合人类视觉特征,所以我们选择HIS模型来对苹果进行颜色分级识别。

    3. 在苹果缺陷识别方面,利用多种不同的算子对苹果图像进行处理,选择利用canny算子对图像进行处理。

    4. 在苹果形态识别方面,通过计算公式,得到图像的圆度数值。

    关键词: MATLAB  图像处理  水果分级

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Research on fruit classification and

    recognition technology based on the MATLAB

     

     

    ABSTRACT

    The fruit of this graduation design based on MATLAB was introduced automatic recognition and classification using mobile terminal access to apple's sample images, using MATLAB software programming realized the sample image preprocessing, including image filtering, image filling, grayscale image, image binarization and feature extraction, etc.

    The fruit grading automatically identifies us to explore the MATLAB based apple classification in three different aspects.

    The main work is as follows:

    1. In terms of apple size identification, compared the different calculation method, the size of the selected using image processing technology, find the center of apple, apple image actual length of the radius, which is used to identify the grading size for apple.

    2. In terms of color recognition of apple, through study of different color model, the RGB model is mainly suitable for hardware, ihs model more accord with human visual characteristic, so we choose HIS model is used to identify the color grading for apple.

    3. In the aspect of apple defect recognition, the apple image is processed with a variety of different operators, and the canny operator is selected to process the image.

    4. In the aspect of apple shape identification, the roundness value of the image is obtained through the calculation formula.

    Key words:  MATLAB  image processing  fruit grading

     

     

     

     

     

     

     

     

     

     

       

    1绪论 1

    1.1 研究的目的与意义 1

    1.2 国内外研究的现状 1

    1.2.1 国外情况 1

    1.2.2 国内情况 2

    1.3 研究内容 2

    1.4 技术路线 2

    1.5 本章小结 3

    2图像预处理方法研究 4

    2.1 引言 4

    2.2 图像的灰度化变换 4

    2.3 图像的平滑处理 5

    2.3.1 中值滤波法 5

    2.3.2 快速中值滤波 5

    2.3.3 邻域平均法 5

    2.4 图像的二值化 6

    2.5 本章小结 7

    3 苹果的大小检测 8

    3.1 引言 8

    3.2 大小检测分级研究 8

    3.3 苹果大小特征提取 10

    3.4 苹果大小分级试验与结果 12

    3.5 本章小结 12

    4 苹果的颜色检测 13

    4.1 引言 13

    4.2 颜色模型 13

    4.3苹果表面颜色特性分析 17

    4.4 苹果颜色着色度提取与等级划分 17

    4.5 本章小结 18

    5 水果的缺陷检测 19

    5.1 引言 19

    5.2 水果缺陷检测研究 19

    5.3 水果缺陷检测试验与结果 21

    5.4 本章小结 24

    6 水果的形态检测 25

    6.1 引言 25

    6.2 水果形态检测研究 25

    6.3 水果形态检测试验与结果 25

    6.4 本章小结 25

    水果分级的系统研究 26

    7.1引言 26

    7.2系统工作原理 26

    7.3本章小结 28

    29

    参考文献 30

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


    1绪论

    1.1 研究的目的与意义

    水果分级识别技术在如今一切以O2O”模式为经营理念的当下,具有重要的意义。

    水果分级识别技术是利用了计算机技术以及图像处理等许多学科知识综合起来,先通过对水果图像的大小与颜色进行检测,再对检测结果进行综合分析,继而对水果进行分类以及分级。这项技术只需要对水果进行拍照就可以进行比对识别,便于应用。

    现如今,许多国家都推出了无人便利店,在无人便利店里因为有部分商品是处于自动售货机内,不能被消费者挑挑拣拣的,这时就需要用到水果识别技术来帮助消费者区分水果质量,通过适合的价格购买到正确品质的水果,不让消费者产生多余的损耗。

    并且,在现在虚拟经济的时代,具有像亚马逊,京东这样的自营品牌大型电商,这种企业在大型城市里都具有自己的线下仓库,通过纪录片我了解到,他们的仓库里面基本已经实现了无人工作的模式,一切调度,提取货物,装箱发货都已经采用了机器人技术以及自动化技术,京东已经在部分城市实现了机器人派送货物,亚马逊更是已经实现了无人机派送货物,人力资源逐渐在被取代。在他们的仓库里面就需要用到水果识别技术,对水果进行分类与分级识别,继而由机器人进行分拣。

    在过去,水果分级都是人工分级,难免会产生矛盾,现在,应用计算机图像处理技术,进行随机取样,计算机通过随机取样图像可以计算出这个图像内水果的大中小、优良中差等个数及受损情况、所占比例,并做出综合质量判断,这种方法省时省力且客观公正。

    数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。

    1.2 国内外研究的现状

    1.2.1 国外情况

    日本拥有世界上最贵的西瓜(北海道黑皮西瓜),世界上最贵的苹果(青森县世界一苹果),世界上最贵的柑橘(凸脐柑),世界上最贵的蜜瓜,世界上最贵的草莓,世界上最贵的芒果,世界上最贵的葡萄等等。

    在日本,因为国土面积问题,农作物的价值非常高,日本消费者对水果的消费是非常挑剔的,其水果上市前都要经过分级包装。有些价值较高的水果,如冬季上市的西瓜要在标签上糖度数值。目前,在日本许多高新技术在水果检测领域得到应用。计算机技术、无损伤检测技术以及自动化控制技术的发展为现代分级检测技术提供了广阔的空间,使分级检测技术正在由半自动化向全自动化,复杂化向简单化转变。

    1.2.2 国内情况

    应以斌去除果梗并完成了边缘提取与细化的水果图像,求得水果形心坐标,根据线性回归法最终确定水果的大小特征。

    冯斌等通过水果图像边缘的像素求水果形心并确定水果大小的特征值。

    绕秀琴等分析了水果实际尺寸与测量值之间的半径误差。

    应以斌等研究了一种利用柑橘最小外接矩形求柑橘最大横径的方法。

    章程辉等通过形态学处理可见光图像的检测,其测量精度可大大提高。

    现如今,陕西的苹果,已经从国外引进了分级设备与技术,以利于更好地出口创汇。目前中国国内最主要的矛盾是:人民日益增长的物质文化需求与落后的社会生产之间的矛盾。我们国家地大物博,物产丰富。如果能够好好的利用这项技术,对于国内社会可以提高人民群众的生活品质,在国际社会也可以提高国际声誉,拉动中外友谊。这项技术必将对国家的发展产生有利的影响。

    1.3 研究内容

    本课题是基于计算机视觉的水果分级检测,以苹果(种类:红富士)为研究对象。在总结了国内外的研究成果的基础上,选用了运行速度快、可靠性高的方法。对苹果依次进行了图像采集、灰度化、二值化、图像分割、颜色模型转换。再通过苹果的分级特征对苹果进行分级。保证了分级结果的准确性和实用性。主要的研究内容包括:

    (1)通过采集到的苹果图像,经过一些处理后。提取出苹果大小的特征值建立分级模型。根据苹果检测出的结果作出判断,来定出水果的大小等级。

    (2)对苹果的表面颜色进行分析,建立分级模型,提取出颜色特征值,进而判定出水果颜色的等级。

    (3)对苹果进行灰度化,并选择适当的阀值对灰度化后的图像进行二值化,确定缺陷的区域。在通过计算缺陷面积得出缺陷的等级。

    1.4 技术路线

    水果本身是一种具有具体外形,独特颜色的物体,不同级别的水果通常会在外观上表现出明显的差异性,例如苹果,优良的苹果通常外表圆润饱满,色泽红润有光泽,而次一级的苹果通常表现不佳,外观上通常坑坑洼洼,甚至于有疤痕存在,色泽方面也会存在部分红润,部分透绿的情况。

    在计算机上,图像由像素逐点描述,每个像素点具有一个明确的位置和色彩数值。我们可以通过机器视觉对水果尺寸大小,形状,颜色来进行测量分级,利用MATLAB软件读取图像,以矩阵的形式存放图像数据,其扫描规则是从左到右,从上到下。为方便处理,我们把原始的彩色图像转换为灰度图像。根据水果与背景灰度值的差别选取阙值,对去噪、增强对比度后的图像进行二值化处理。分割出目标后,为了防止原始图像中灰度分布不均匀和光照等的影响,导致同一类水果中出现空洞或个别边缘处出现断裂情况等,因此要对图像进行边缘检测,重新填充图像中的洞。经过图像分割后,水果和背景很明显地被区分开来

    我们用物体所包含的像素数量来计算面积,当从左到右,从上到下地将整幅图像扫描完毕,即可得到水果的面积。

    我们通过分辨水果的色调,判别红色区域所占面积的大小,从而从颜色方面对水果进行分级。

    我们还可以通过图像中水果的不同大小的缺陷来对水果进行分级操作。

    1-1 苹果分级系统总体设计结构图

    1.5 本章小结

    本章介绍了水果自动识别在实际应用上的重要性,指出了水果识别在实际应用方面取代人工识别的利好方面,通过现如今的应用技术背景,国内外发展情况,完全可以实现水果自动识别的设计。

     

     

     

     

     

     

     

     

     

     

    2图像预处理方法研究

    2.1 引言

    图像预处理是对图像进行操作的必要环节,通过图像变换,图像增强,图像复原等一系列操作,使图像达到特征提取的基本层次,

    图像增强

    根据其处理的空间不同,可谓两大类:空域方法和频域方法。前者直接在图像所在像素空间进行处理;而后者是通过对图像进行傅里叶变换后在频域上间接进行的。在空域方法中,根据每次处理是针对单个像素还是小的子图像块(模板)又可分为两种:一种是基于像素的增强,也叫点处理,这种增强过程中对每个像素的处理与其他像素无关;另一种是基于模板的图像增强,也叫空域滤波,这种增强过程中的每次操作都是基于图像中的某个小的区域。

    图像复原

    对图像进行改进,改善输入图像的质量,尽可能恢复原图像的本来面目。也就是针对图像退化的原因设法进行补偿,把图像的退化过程模型化,并且采用相反的过程来恢复出原来的图像。

    点操作

    使用线性点操作来保证RGB图像在灰度级和彩色平衡方面都能适合。

    颜色空间变换

    RGB空间变换到HSI空间。

    2.2 图像的灰度化变换

    通过CCD采集到的图像是RGB的彩色图像,如果要进行后序的处理工作。那么必须在前期先对其进行灰度化变换。灰度化变换之后的图像就是我们平时所说的黑白图像。图像的灰度化方法有三种:

    最大值法

    这种方法就是根据图像的RGB分量来确定图像的灰度值。灰度化后的灰度值就是R,G,B三个分量中的最大的那一个分量。

    平均值法

    这种方法就是计算R,G,B三个分量的平均值,用这个值作为灰度化后的灰度值。

    权重值法

    这种方法就是用R,G,B分量分别乘以一个参数,这样得出的值作为灰度化后的值。

    本课题中对于图像的灰度化处理是通过一个函数实现的,这个函数就是rgb2gray.经过灰度化后的图像如下所示:

     

    2-1 灰度化后的苹果图像

     

    2.3 图像的平滑处理

    在图像的拍摄过程中由于受拍摄和传输设备的影响,总会产生使人厌恶的噪声,同样在图像的处理过程中也会产生。这些噪声会影响后续的处理工作和视觉效果。所以必须对图像提前进行平滑处理以减少噪声。噪声的消除有两种方法:频域法和空域法。频域法的原理是消除频域中高频成分,但是需要在处理过程中不断的在频域和时域之间转换,处理速度慢,不适合实际应用。实际应用中一般采用空域法,空域法中常用的有中值法、快速中值法、邻域平均法等。

    2.3.1 中值滤波法

    中值滤波是一种非线性平滑滤波,在一定的条件下可以克服线性滤波所带来的图像细节模糊问题,而且对过滤脉冲干扰及图像扫描噪声非常有效,但对某些细节多(点、线、尖等)的图像不宜采用中值滤波方法。

    他的方法是用一个有奇数点的滑动窗口,将窗口中心点的值用窗口各点的中值代替。其在matlab中用到的函数是medfilt2,其相应的语法是:

    B=medfilt2(A,[m,n])

    [m,n]为指定滤波模板的大小,默认值是3*3大小

    2.3.2 快速中值滤波

    快速中值滤波的方法稍微有点复杂,它要先求出原图像的直方图,然后通过直方图来求出中值。假设窗口的大小为m*n,从一个窗口的中值滤波输出到下一个中值滤波的输出。窗口将移动一列,新窗口的像素是原窗口的像素删去最左边的一列,然后再在他的右边加上另外一列。其余所有的像素点保持不变。然后对原来的直方图进行修正,利用直方图求新窗口的中值。

    2.3.3 邻域平均法

    由于图像受照相机、传输设备影响所产生的噪声都是随机的。可以把这些噪声看作是孤立的。所以可以用一个模块中所有像素的平均值来代替模板中间点的像素值。这样可以达到减少噪声的效果。但是图像的边缘可能就会因此而变得模糊了。因为图像的边缘本身变化就十分的剧烈。处理时可能会使图像边缘的细节变模糊。这也是邻域平均法的一个十分明显的缺点。

    在本课题中,由于要考虑到图像处理的速度问题,实现的简易度,和图像处理的准确度等一些问题,所以我选择了中值滤波法。图像滤波后如下图所示:

     

    2-2 中值滤波后的苹果图像

    2.4 图像的二值化

    图像的二值化就是把得到的灰度化图像,通过选定阀值,把其变成只有“0”和“1”两个值的图像。把超过阀值的灰度值,统一处理成1,把低于阀值的灰度值统一处理成0.

    本课题中对于阀值的选择,我选用了一个函数graythresh.通过graythresh函数选择出了阀值,然后用这个阀值作为参数进行如上所说的二值化。最后得出的二值化后的图像如下所示:

     

    2-3 二值化后的苹果图像

    2.5 本章小结

    本章通过比较不同的图像平滑化处理方法,最后采用了中值滤波法,既处理了噪声,还不会使图像变模糊,最主要的是使用起来十分的方便。另外还说明了图像预处理的其他方面内容,包括图像的灰度化和图像的二值化。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    3 图像的特征提取

    3.1 苹果的大小检测

     

    3.2 苹果的颜色检测

     

    3.3 苹果的缺陷检测

     

    3.4 苹果的形态检测

     

    3 苹果的大小检测

    3.1 引言

    本次水果识别技术研究需要获得苹果的面积大小。

    水果的大小是水果品质的一个十分重要的品质因素。因而对于大小的分级检测在整个课题中占有十分重要的位置。目前水果大小检测的方法很多,在这方面研究的也十分成熟了。对于这方面的研究:

    章文英等通过先对图像预处理,确定水果的轮廓,再通过水果的最小外切矩形,近似确定水果的大小,精确度不是很高。

    而冯斌等先边缘检测,后通过确定水果的轴向、形心,进而得出水果的大小,精确度很高。

    3.2 大小检测分级研究

    目前水果的大小识别方法主要有两个方面:通过水果的外接矩形等方法确定水果的的果径大小,进而通过果径的大小来确定水果的大小等级;通过对水果的边缘进行傅里叶变换,通过傅里叶系数来确定水果的大小、形状等一些特征值,以此来判定水果的大小。现有的水果大小识别方法有以下几种方式:

    最小外接矩形法

    其基本的方法是先确定水果的形心,然后将水果每绕形心旋转3度后就拍一照片,找出所有照片中苹果外接矩形最小的那一张。那么这张图片的最长的那条边的长度就是苹果的果径长度。进而通过果径的长度来判定水果的大小等级。

     

    3-1 外接矩形法

    最大果宽法

    水果的大小可以通过水果的直径来表示,所以可以用果宽来对苹果的大小进行分级。对于确定果宽大小,第一步要求出苹果的果轴,果轴就是花萼和花梗的连线。果轴的确定对于静态的图像来说非常容易。果宽就是垂直于果轴的直线与苹果边缘交线中最长的那一条长度。

     

    3-2 最大果宽法

    果径法

    这种方法把苹果看成是球体,通过边缘提取和细节处理后,计算出水果的形心,果梗与形心的连线就是果径,通过形心与果径垂直的线就是果宽。通过果宽的大小来确定出苹果的大小等级。

    投影面积法

    CCD摄像头拍摄的水果图像是二维的平面图,计算此投影面积S,根据大量试验找到一个合适系数K'使得K乘以S接近水果真实的表面积。最后用这个近似的表面积来表示水果大小,并用于分级。由于很难找到合适的K值使所有的苹果近似面积接近真实表面积,该方法稳定性差。准确率低,不宜用在在线苹果大小检测上。

    综上所述,最小外接矩形法计算量太大,不满足快速检测的要求.最大果宽法和果径法计算量小,但是根据得到的苹果图像不易找到果轴,因此算法难以实现。投影面积法对于一个苹果只拍摄一个图像,稳定性差,准确率低。

    3.3 苹果大小特征提取

    提取目标面积大小,求整体的像素数大小,

    使用公式:

    A1 = sum(sum(BW));

    A2 = bwarea(BW);

    由于判定水果的大小等级一般都是使用水果的直径来判别,所以要计算出水果的直径大小。

    在数字图像处理过程中,把苹果图像的每个像素分别看作每一个点时,通过链码表示周长,当链码个数由奇数个链码组成时,其链码长度是√2,若组成链码个数为偶数个时,其长度取为1,用下式计算周长。

    P = N1 + √2N0

    式中,N1——偶数步数;N0——奇数步数;P——周长。

    其中链码经常使用的是8方向和4方向,其方向定义如下图所示。

     

     

     

     

     

     

     

    a)8方向链码                         (b)4方向链码

    3-3 方向链码

     

    三幅苹果图像如下:

     

    3-4 苹果图像1

     

    3-5 苹果图像2

     

    3-6 苹果图像3

     

    3.4 苹果大小分级试验与结果

    GB10651—2008中对于大型果、中小型果的果径大小要求如下。本课题通过对水果的投影面积法,进而计算初水果的直径大小,再利用特定的阀值来对苹果的大小进行区分。

    3-1 苹果等级划分标准

    等级

    优等

    一等

    二等

    等外

    大型果

    >=70

    >=65

    >=60

    <60

    中型果

    >=65

    >=60

    >=55

    <55

    小型果

    >=60

    >=55

    >=50

    <50

     

    1 鲜苹果质量等级要求

    项目

    等               级

    优等品

    一等品

    二等品

    果径(最大横切面直径)/mm

    大型果

    >=70

    >=65

    中小型果

    >=60

    >=55

     

     

    苹果的分级模型可以表示为:

    If D>=th1         属于优等果

    Elseif D>=th2     属于一等果

    Elseif  D>=th3    属于二等果

    Else              属于等外果

    3.5 本章小结

    本章通过改进的投影面积法,来先计算出苹果三个侧面的面积,再计算相应的直径,求其平均值。来作为果径的大小,对苹果的大小进行等级区分。

     

     

     

     

     

     

     

     

     

     

     

    4 苹果的颜色检测

    4.1 引言

    苹果的颜色反映了苹果的品质与口感等一系列方面。品质好的苹果,其色泽、颜色的着色率都很好,而相反品质差的苹果其色泽、颜色的着色率一般都比较差。同时,含糖量多、口感好的一般来说也是着色率比较高的。这样来说,对于水果的颜色检测就显得十分的重要。目前在水果检测中,国外的技术受到硬件和算法的局限,所以技术的成熟度不高,而在我们国内,水果的分级一般都是采用机械分类的方法,其对颜色这方面的检测基本上都无法实现。

    4.2 颜色模型

    目前的颜色模型可以分为两种类型:一种是面向硬件设备的,比如RGB模型,他是面向打印机、显示器等设备的。另外一种是面向人的视觉感受的,HIS模型。而本课题中对于水果颜色的分级是基于人的视觉的,所以选用HIS模型,这种模型更利于我们对水果的特征进行提取。下面介绍几种颜色模型:

    RGB模型

    在多媒体计算机技术中,用得最多的是RGB模型。其采用RGB相加混色的原理,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红,绿、篮磷光材料发光而产生颜色。RGB是一个加色立方体模型,光源的亮度、色度、纯度混合在RGB三个参数中.RGB模型里面任意色光F都可以用RGB三色不同分量的相加混合而成:

    F=R+G+B

    RGB模型采用物理三基色表示,因而物理意义很清楚,适合彩色显象管工作,显示器和扫描仪都采用RGB模型。然而这一体制并不适应人的视觉特点。这种模型从感知来说是不均匀的,并依赖于硬件设备。RGB模型的缺点有:

    RGB模型用红、绿、蓝三原色的混合比例定义不同的色彩,使色彩难以用准确的数值来表示,并进行定量分析;

    RGB模型中,由于彩色合成图像通道之间相关性很高,使合成图像的饱和度偏低,色调变化不大,图像视觉效果差;

    人眼不能直接感觉红、绿、蓝三色的比例,而只能通过感知颜色的亮度、色调以及饱和度来区分物体,而色调和饱和度与红、绿、蓝的关系是非线性的,因此,难以在RGB模型中对图像进行直接处理.

    以下是实验中得出的RGB分量:

      

    4-1 RGB模型中R分量的图像

     

    4-2 RGB模型中G分量的图像

     

    4-3 RGB模型中B分量的图像

    YUV颜色模型

    YUV颜色模型也是使用比较多的颜色模型,由于人眼对于亮度的敏感度远远大于对于色度的敏感度,所以YUV这个模型中,相邻的像素间使用同样的色度值。这样的图像是用牺牲色度来达到压缩图像的目的。这个模型一般用于图像传输中对图像进行压缩处理。

    HIS颜色模型

    这一模型是面向彩色处理的最常用的模型。HIS模型是基于视觉原理的一个系统,定义了三个互不相关,容易预测的颜色属性,即色调(H),亮度(I)和饱和度(S)。其中,H是表面呈现近似红、黄,绿、蓝等颜色的一种或几种的目视感知属性;I是物体表面相对明暗特性;S是颜色具有白光的程度.它有两个特点:

    其一,I分量与图像的彩色信息无关,因此对彩色信息处理只需考虑两个分量。

    其二,HS分量与人感受颜色的方式非常相近。这些特点使HIS模型适合于视觉系统感受彩色特性的图像处理算法。

    由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,为了便于颜色处理和识别,人的视觉系统经常采用HIS颜色空间,它比RGB颜色空间更符合人的视觉特性。RGBHIS的相互关系分正反两种情况,这里只讨论从RGB转换到HIS的情况。对任何3个在【01】范围内的RGB三基色,其对应HIS模型中的HIS分量可由下面给出的公式计算:

    Temp1 =0.5*((r-g)+(r-b))                             4-1

    temp2 =sqrt((r-g).^2 + (r-b).*(g -b))                        4-2

    theta = arccos(temp1./temp2)                        4-3

    H=theta          G>=B                         4-4

    H=360-theta      G<=B                        4-5

    S=1-3*min(R,G,B)/(R+G+B)                        4-6

    I=(R+G+B)/3                              4-7

    以下是本课题实验中所得出的HIS三个分量的图像

     

    4-4  H分量的图像  

     

    4-5  V分量的图像

     

    4-6  S分量的图像

    4.3苹果表面颜色特性分析

    苹果的颜色等级划分包含的方面很多,但主要的方面有三个:红区比例,色度,苹果的着色均匀度

    红区的比例反映了苹果的红色区域的面积大小。红色区域面积越大,则苹果的含糖量越高,口感也越好。

    色度也是苹果颜色的一个方面,偏黄的苹果色度比偏绿的小。而偏黄的苹果品质要比偏绿的要好。

    苹果的着色均匀度也同样重要,着色越均匀的苹果,美观度高、口感好。

    4.4 苹果颜色着色度提取与等级划分

    由于红色区域亮度比较大,且和其他部分相差较大,因此,经过运算就将红色部分分割出来了。在进行rgb分割时也可以不借助hsv的分量进行处理,用rgb的最大亮度的scale倍作为分割点。

    苹果的着色度是苹果颜色分级中十分重要的方面,他反映了苹果的红区面积于苹果实际的面积的比。提取的方法是,先提取出苹果HIS模型中的H分量,然后选择合适的阀值对红区进行二值化处理,计算红区的面积。最后用红区面积与苹果的实际面积做比,进而就可以求出苹果的着色度。

    等级的划分可以以下表为依据:

    1 鲜苹果质量等级要求

    项目

    等               级

    优等品

    一等品

    二等品

    富士系

    红或条红90%以上

    红或条红80%以上

    红或条红55%以上

     

     

    4.5 本章小结

    苹果的颜色检测对于苹果的整体等级划分十分重要,本课题通过主要对HIS模型中色度的处理,得出红区的面积大小,进而与苹果的实际大小做比。按照着色度的等级划分标准对苹果品质进行区分

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    5 水果的缺陷检测

    5.1 引言

    水果的缺陷检测是检测中最重要的,也是复杂度很高的一个方面,目前的缺陷检测一般采用边缘检测求出缺陷的区域,进而对缺陷进行评估。这其中边缘检测是最重要的环节。

    李庆中等通过双金字塔数据形式的盒维数快速计算,得出五个分形维数作为可疑缺陷区的参数,再通过BP形网络结构的人工神经网络,最终实现对梗、萼和缺陷的准确判断。

    冯斌等先对水果进行图像的获取与分割,而对于梗萼和缺陷的判决,则通过观察可疑区是上凸的还是下凹来判定,因为如果是梗萼的话那么应在下凹区,而如果是缺陷区,那么大部分都是在上凸区的。这种方法准确度还是挺高的。

    5.2 水果缺陷检测研究

    图像的边缘对人的视觉具有重要意义,一般来说,当人看一个物体时,首先感觉到的就是边缘。边缘是一个区域的结束也是一个区域的开始。利用这一个特性可以分割图像,将缺陷区域从苹果图像中分割出来。目前边缘检测主要有roberts模板、sobel模板、prewitt模板、拉斯算子、canny边缘检测算子这5种方法检测。

     

    Roberts模板检测  

    -1

    0

    0

    1

    5-1 Roberts模板

     

     

     

     

     

    Sobel模板检测

     

    -1

    -2

    -1

    0

    0

    0

    1

    2

    1

     5-2 Sobel模板

      Prewitt模板检测

     

    -1

    -1

    -1

    0

    0

    0

    1

    1

    1

       5-3 prewitt模板

    LOG模板检测

      

    0

    1

    0

    1

    -4

    1

    0

    1

    0

     5-4 LOG模板

    Canny边缘检测算子

    在图像的边缘检测中,抑制噪声和边缘精确定位是无法同时满足的,边缘检测算法通过平滑滤波法去除图像噪声的同时,也增加了边缘定位的不确定性;反之,提高边缘检测算子对边缘的敏感性的同时,也提高了对噪声的敏感性,canny算子力图在抗噪声干扰和精确定位之间寻求最佳的折中方案。

    Canny算子检测图像边缘的步骤如下:

    平滑图像;

    计算滤波后的图像的梯度的幅值和方向;

    对梯度幅值应用非极大值抑制,其过程为找出图像梯度中的局部极大值   点,把其他非极大值点置零以得到细化边缘;

    用双阀值算法检测和连接边缘;

    对比各种算法,本课题我所选用的算法是Canny边缘检测算子进行的检测。效果比较好,可以明显的看出缺陷的区域。

    5.3 水果缺陷检测试验与结果

    MATLAB实现五种边缘检测

    一、原理

     常用的边缘检测算法有拉普拉斯边缘检测算法、Robert边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Canny边缘检测算子。

    % 'sobel', 'prewitt', 'laplacian',

     %'log', 'canny'

    BW5=edge(I,'Canny',0.35);
     subplot(2,3,6);
     imshow(BW5);

    title('Canny算子边缘检测');

    下面是对有缺陷的苹果进行的检测,分别用各种边缘检测算子检测出来的图像:

    roberts模板检测

     

    5-1 用Roberts检测后的图像

    sobel模板检测

     

    5-2 用Sobel检测后的图像

    prewitt算子检测

     

    5-3 用Prewitt算子检测后的图像

    log算子检测

     

    5-4 用log算子检测后的图像

    Canny算子检测

     

    5-5 用Canny检测后的图像

     

    1 鲜苹果质量等级要求

    项目

    等               级

    优等品

    一等品

    二等品

    果面

    缺陷

    无缺陷

    无缺陷

    允许下列对果肉无重大伤害的果皮损伤不超过4项

    5.4 本章小结

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    6 水果的形态检测

    6.1 水果形态检测研究

    水果形态我们根据水果的圆度来进行判断,

    通过公式我们可以得到圆度的计算公式:

    6.2 水果形态检测试验与结果

     

    1 鲜苹果质量等级要求

    项目

    等               级

    优等品

    一等品

    二等品

    果形

    具有本品种应有的特征

    允许果形有轻微缺点

    果形有缺点,但仍保持本品基本特征,不得有畸形果

     

    6.3 本章小结

    通过检测苹果的图像,我们根据得到的圆度对苹果进行了自动分级。

    6 GUI界面设计

    6.1 GUI概念

    GUI 即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到 GUI 在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事 GUI 的研究与设计,同业间也成立了若干机构,以互相交流 GUI 设计理论与经验为目的。随着中国 IT 产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。

    6.2 界面测试

    图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确。同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度。因为现在 GUI 设计和实现有了越来越多的类似,所以也就产生了一系列的测试标准。

    6.3 本章小结

    通过使用GUI我们设计了一个完美的界面,

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    水果分级的系统研究

    7.1引言

    对于水果的分级检测的研究,国外经过几十年的研究,技术发展的已经比较成熟了。但在国内由于这方面的起步比较晚,所以大部分的分级检测还是采用机械分级,不仅效率不高,最主要的是精度也不是很高。所以本课题的研究是十分具有应用价值的。本课题通过运用计算机技术、图像处理技术达到了对苹果的分级检测的目的。

    7.2系统工作原理

    水果分级检测的步骤如下:

    对采集到的图像Matlab软件对图像进行处理。

    对图像进行预处理,包括滤波、灰度化、二值化等。

    对苹果进行大小检测,通过果径大小进行等级划分。

    对苹果进行颜色检测,先将图像RGB模型转换为HIS模型。通过HIS模型中的H分量进行颜色分级。

    对苹果进行缺陷检测,使用canny边缘检测算子进行边缘检测,进而检测出苹果的缺陷部分。

    系统的流程如下图所示:

     

    6-1 系统流程图

    系统包括硬件部分和软件部分:

    硬件部分主要是图像的采集部分,包括手机摄像、数据传输设备、一台安装了Matlab软件的计算机。

    软件部分主要是图像的处理部分,Matlab编码对图像进行处理与仿真。具体到软件内部的工作流程情况如下所示:

     

    6-2 软件工作流程图

     

    7.3本章小结

    本章对水果分级系统进行了介绍,包括他的硬件系统、软件系统。软件设计通过用Matlab软件对采集到的图像进行预处理,然后分别进行大小检测、颜色检测、缺陷检测完成对苹果的分级检测。

     

     

     

     

     

    1、构建了苹果视觉分析系统,通过实验获取了视觉分级的样本图像。

    2、通过对样本图像的分析,编制了一套进行图像处理和特征量提取的MATLAB程序。

    3、参照苹果分级的国家标准GB1065-89,实现了苹果的自动分级。

    4、对视觉分级结果和人工分级结果进行比较分析,结果表明:视觉分级可以达到较高的分级精度,且分级速度快,不受人为因素的影响,便于实现自动化。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    参考文献

    [1]

     

    6总结展望1回顾(干了什么,什么结果)2展望(还可以做)

    5、构建了苹果视觉分析系统,通过实验获取了视觉分级的样本图像。

    6、通过对样本图像的分析,编制了一套进行图像处理和特征量提取的MATLAB程序。

    7、参照苹果分级的国家标准GB1065-89,实现了苹果的自动分级。

    8、对视觉分级结果和人工分级结果进行比较分析,结果表明:视觉分级可以达到较高的分级精度,且分级速度快,不受人为因素的影响,便于实现自动化。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    附录1

     

    function varargout = guidetemplate0(varargin)

    % GUIDETEMPLATE0 MATLAB code for guidetemplate0.fig

    %      GUIDETEMPLATE0, by itself, creates a new GUIDETEMPLATE0 or raises the existing

    %      singleton*.

    %

    %      H = GUIDETEMPLATE0 returns the handle to a new GUIDETEMPLATE0 or the handle to

    %      the existing singleton*.

    %

    %      GUIDETEMPLATE0('CALLBACK',hObject,eventData,handles,...) calls the local

    %      function named CALLBACK in GUIDETEMPLATE0.M with the given input arguments.

    %

    %      GUIDETEMPLATE0('Property','Value',...) creates a new GUIDETEMPLATE0 or raises the

    %      existing singleton*.  Starting from the left, property value pairs are

    %      applied to the GUI before guidetemplate0_OpeningFcn gets called.  An

    %      unrecognized property name or invalid value makes property application

    %      stop.  All inputs are passed to guidetemplate0_OpeningFcn via varargin.

    %

    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one

    %      instance to run (singleton)".

    %

    % See also: GUIDE, GUIDATA, GUIHANDLES

     

    % Copyright 2002-2006 The MathWorks, Inc.

     

    % Edit the above text to modify the response to help guidetemplate0

     

    % Last Modified by GUIDE v2.5 11-May-2018 13:11:57

     

    % Begin initialization code - DO NOT EDIT

    gui_Singleton = 1;

    gui_State = struct('gui_Name',       mfilename, ...

                       'gui_Singleton',  gui_Singleton, ...

                       'gui_OpeningFcn', @guidetemplate0_OpeningFcn, ...

                       'gui_OutputFcn',  @guidetemplate0_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 code - DO NOT EDIT

     

     

    % --- Executes just before guidetemplate0 is made visible.

    function guidetemplate0_OpeningFcn(hObject, eventdata, handles, varargin)

    % This function has no output args, see OutputFcn.

    % hObject    handle to figure

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % varargin   command line arguments to guidetemplate0 (see VARARGIN)

     

    im=imread('apple1.jpg');

    axes(handles.axes1);

    imshow(im);%在坐标axes1显示原图像

    title('原始水印');

     

    % Choose default command line output for guidetemplate0

    handles.output = hObject;

     

    % Update handles structure

    guidata(hObject, handles);

     

    % UIWAIT makes guidetemplate0 wait for user response (see UIRESUME)

    % uiwait(handles.figure1);

     

     

    % --- Outputs from this function are returned to the command line.

    function varargout = guidetemplate0_OutputFcn(hObject, eventdata, handles)

    % varargout  cell array for returning output args (see VARARGOUT);

    % hObject    handle to figure

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

     

    % Get default command line output from handles structure

    varargout{1} = handles.output;

     

     

    % --- Executes on button press in pushbutton1.

    function pushbutton1_Callback(hObject, eventdata, handles)

    % hObject    handle to pushbutton1 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

    axes(handles.axes2);

    imshow(~bw)

    title('面积图像');

    %handles.text1=uicontrol('style','edit','position',[70 70 300 220],'max',2);%一定要设成2

    strNC=['面积=   ',num2str(bwarea(~bw))];

    set(handles.text1,'string',strNC);

     

     

    strNC1=['一级品'];

    set(handles.text5,'string',strNC1);

     

     

    % --- Executes on button press in pushbutton2.

    function pushbutton2_Callback(hObject, eventdata, handles)

    % hObject    handle to pushbutton2 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    hv=rgb2hsv(x1);

    H=hv(:,:,1);

    S=hv(:,:,2);

    V=hv(:,:,3);

    axes(handles.axes2);

    imshow(H)

    title('H分量图像');

     

    apple=im2bw(x1);

    count=length(x1);

    for i=1:count

        red_ratio=length(find((H>0 & H<1/12) | H>11/12))/length(find(apple==1));

    end

    strNC=['红色比率=   ',num2str(red_ratio*100),'%'];

    set(handles.text2,'string',strNC);

     

    figure,subplot(1,3,1);imshow(H);title('H分量图像');

    subplot(1,3,2);imshow(S);title('S分量图像');

    subplot(1,3,3);imshow(V);title('V分量图像');

     

     

    strNC1=['一级品'];

    set(handles.text6,'string',strNC1);

     

     

    % --- Executes on button press in pushbutton3.

    function pushbutton3_Callback(hObject, eventdata, handles)

    % hObject    handle to pushbutton3 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

     

    X=imclearborder(bw,4); %去除图像与边界相连通,但更高亮的区域

     

    axes(handles.axes2);

    imshow(X)

    title('缺陷图像');

     

    strNC=['缺陷率=   ',num2str(bwarea(X)/bwarea(~bw)*100),'%'];

    set(handles.text3,'string',strNC);

     

     

    strNC1=['一级品'];

    set(handles.text7,'string',strNC1);

     

     

    % --- Executes on button press in pushbutton4.

    function pushbutton4_Callback(hObject, eventdata, handles)

    % hObject    handle to pushbutton4 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    I2=rgb2gray(x1);

    J=im2bw(I2,0.6);

    I=~J;

    axes(handles.axes2);

    imshow(I)

    title('圆度图像');

     

    [x,y]=size(I);

    BW = bwperim(I,8); % 检测目标的边缘跟踪,用于计算周长

    %检测垂直方向连读的周长像素点%

    P1=0;

    P2=0;

    Ny=0; % 记录垂直方向连续周长像素点的个数

    for i=1:x

       for j=1:y

         if (BW(i,j)>0)

           P2=j;

           if ((P2-P1)==1) % 判断是否为垂直方向连续的周长像素点

           Ny=Ny+1;

           end

         P1=P2;

         end

        end

    end

    %检测水平方向连读的周长像素点%

    P1=0;

    P2=0;

    Nx=0; % 记录水平方向连续周长像素点的个数

    for j=1:y

        for i=1:x

           if (BW(i,j)>0)

              P2=i;

             if ((P2-P1)==1) % 判断是否为水平方向连续的周长像素点

                Nx=Nx+1;

             end

             P1=P2;

           end

         end

    end 

     

    SN=sum(sum(BW)); % 计算周长像素点的总数

    Nd=SN-Nx-Ny; % 计算奇数码的链码数目

     

    H=max(sum(I)); % 计算目标的高度

    W=max(sum(I')); % 图象I经矩阵转置后,计算宽度

    L=sqrt(2)*Nd+Nx+Ny; % 计算周长

     

    %====形态特征值计算===%

    A=bwarea(I); % 计算目标的面积

    %L1=zhch(I);

    C=(4*pi*A)/(L*L); % 计算圆度

    R=A/(H*W); % 计算矩形度

    E=min(H,W)/max(H,W); % 计算伸长度

    % L为周长,A为面积,C为圆形度,R为矩形度,E为伸长度

    strNC=['圆形度=   ',num2str(C)];

    set(handles.text4,'string',strNC);

     

     

    strNC1=['一级品'];

    set(handles.text8,'string',strNC1);

     

     

    % --------------------------------------------------------------------

    function Untitled_1_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_1 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

     

     

    % --------------------------------------------------------------------

    function Untitled_2_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_2 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

     

     

    % --------------------------------------------------------------------

    function Untitled_3_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_3 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

     

     

    % --------------------------------------------------------------------

    function Untitled_4_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_4 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

     

     

    % --------------------------------------------------------------------

    function Untitled_5_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_5 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

     

     

    % --------------------------------------------------------------------

    function Untitled_6_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    close

     

     

    % --------------------------------------------------------------------

    function Untitled_7_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_7 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    [filename,pathname]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'},'选择图像');

    image=[pathname,filename];%合成路径+文件名

    im=imread(image);%读取图像

    im=im2double(im);

    axes(handles.axes1);

    imshow(im);%在坐标axes1显示原图像

    title('原始图像');

    handles.X1=im;

    guidata(hObject,handles);

     

     

    % --------------------------------------------------------------------

    function Untitled_8_Callback(hObject, ~, handles)

    % hObject    handle to Untitled_8 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    x2=rgb2gray(x1);

    axes(handles.axes2);

    imshow(x2);

    title('灰度化图像');

     

     

    % --------------------------------------------------------------------

    function Untitled_9_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_9 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    x2=rgb2gray(x1);

    x3=medfilt2(x2,[3,3]);

    axes(handles.axes2);

    imshow(x3);

    title('中值滤波图像');

     

     

    % --------------------------------------------------------------------

    function Untitled_10_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_10 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

    axes(handles.axes2);

    imshow(~bw)

    title('二值化图像');

     

     

    % --------------------------------------------------------------------

    function Untitled_11_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_11 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

    I3=imfill(bw,8,'holes');%对二值化后的图像填充肺实质

    I4=I3-bw;%得到肺实质的图像E

    I5=bwmorph(I4,'clean'); %图像边界

    I6=imfill(I5,8,'holes');%填充肺实质空洞

    I7=bwperim(I6);

    axes(handles.axes2);

    imshow(I7)

    title('边缘检测');

     

     

    % --------------------------------------------------------------------

    function Untitled_12_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_12 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    im=imread('greenapple.jpg');

    axes(handles.axes1);

    imshow(im);%在坐标axes1显示原图像

    title('绿色苹果');

     

     

    % --------------------------------------------------------------------

    function Untitled_13_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_13 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    im=imread('apple1.jpg');

    axes(handles.axes1);

    imshow(im);%在坐标axes1显示原图像

    title('红色苹果');

     

     

    % --------------------------------------------------------------------

    function Untitled_14_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_14 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

    axes(handles.axes2);

    imshow(~bw)

    title('面积图像');

    %handles.text1=uicontrol('style','edit','position',[70 70 300 220],'max',2);%一定要设成2

    strNC=['面积=   ',num2str(bwarea(~bw))];

    set(handles.text1,'string',strNC);

     

     

    % --------------------------------------------------------------------

    function Untitled_15_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_15 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    hv=rgb2hsv(x1);

    H=hv(:,:,1);

    S=hv(:,:,2);

    V=hv(:,:,3);

    axes(handles.axes2);

    imshow(H)

    title('H分量图像');

     

    apple=im2bw(x1);

    count=length(x1);

    for i=1:count

        red_ratio=length(find((H>0 & H<1/12) | H>11/12))/length(find(apple==1));

    end

    strNC=['红色比率=   ',num2str(red_ratio*100),'%'];

    set(handles.text2,'string',strNC);

     

     

    % --------------------------------------------------------------------

    function Untitled_16_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_16 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

     

    X=imclearborder(bw,4); %去除图像与边界相连通,但更高亮的区域

     

    axes(handles.axes2);

    imshow(X)

    title('缺陷图像');

     

    strNC=['缺陷率=   ',num2str(bwarea(X)/bwarea(~bw)*100),'%'];

    set(handles.text3,'string',strNC);

     

     

    % --------------------------------------------------------------------

    function Untitled_17_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_17 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    I2=rgb2gray(x1);

    J=im2bw(I2,0.6);

    I=~J;

    axes(handles.axes2);

    imshow(I)

    title('圆度图像');

     

    [x,y]=size(I);

    BW = bwperim(I,8); % 检测目标的边缘跟踪,用于计算周长

    %检测垂直方向连读的周长像素点%

    P1=0;

    P2=0;

    Ny=0; % 记录垂直方向连续周长像素点的个数

    for i=1:x

       for j=1:y

         if (BW(i,j)>0)

           P2=j;

           if ((P2-P1)==1) % 判断是否为垂直方向连续的周长像素点

           Ny=Ny+1;

           end

         P1=P2;

         end

        end

    end

    %检测水平方向连读的周长像素点%

    P1=0;

    P2=0;

    Nx=0; % 记录水平方向连续周长像素点的个数

    for j=1:y

        for i=1:x

           if (BW(i,j)>0)

              P2=i;

             if ((P2-P1)==1) % 判断是否为水平方向连续的周长像素点

                Nx=Nx+1;

             end

             P1=P2;

           end

         end

    end 

     

    SN=sum(sum(BW)); % 计算周长像素点的总数

    Nd=SN-Nx-Ny; % 计算奇数码的链码数目

     

    H=max(sum(I)); % 计算目标的高度

    W=max(sum(I')); % 图象I经矩阵转置后,计算宽度

    L=sqrt(2)*Nd+Nx+Ny; % 计算周长

     

    %====形态特征值计算===%

    A=bwarea(I); % 计算目标的面积

    %L1=zhch(I);

    C=(4*pi*A)/(L*L); % 计算圆度

    R=A/(H*W); % 计算矩形度

    E=min(H,W)/max(H,W); % 计算伸长度

    % L为周长,A为面积,C为圆形度,R为矩形度,E为伸长度

    strNC=['圆形度=   ',num2str(C)];

    set(handles.text4,'string',strNC);

     

     

    % --------------------------------------------------------------------

    function Untitled_18_Callback(hObject, eventdata, handles)

    % hObject    handle to Untitled_18 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    x1=handles.X1;

    w=rgb2gray(x1);

    L=medfilt2(w);

    level=graythresh(L);

    bw=im2bw(L,level);

    I3=imfill(bw,8,'holes');%对二值化后的图像填充肺实质

    I4=I3-bw;%得到肺实质的图像E

    I5=bwmorph(I4,'clean'); %图像边界

    I6=imfill(I5,8,'holes');%填充肺实质空洞

    axes(handles.axes2);

    imshow(I6)

    title('图像填充');

     

     


    展开全文
  • 离散数学在计算机科学中的应用

    万次阅读 多人点赞 2018-02-03 11:56:44
    图论对开关理论与逻辑设计、计算机制图、操作系统、程序设计语言的编译系统以及信息的组织与检索起重要作用,其平面图、树的研究对集成电路的布线、网络线路的铺设、网络信息流量的分析等的实用价值显而易见
  • 系统需求: Windows 10 *,8.1或Windows 7,32位或64位,都带有最新的更新和Service Pack 英特尔酷睿i3 / 5/7或AMD速龙64 2 GB RAM 2.5 GB硬盘空间 多点触摸屏,鼠标或平板电脑 1280 x 720屏幕分辨率为100%(96 dpi...
  • 起初用ps处理个小图,算是顺手完成需求。 因为boss指定了设计加上素材已经找好,算上文案参照图,没用多久就可以出了一套图。 第二天,boss决定把整套图交给我。嗯这件事情教导我们老板给的任务不要这么着急这么...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
     完全面向对象:不象C++语言,即支持面向过程程序设计,又支持面向对象程序设计,C#语言是完全面向对象的,在C#中不再存在全局函数、全局变量,所有的函数、变量和常量都必须定义在类中,避免了命名冲突。...
  • SDN

    千次阅读 多人点赞 2017-06-29 11:35:37
    SDN的本质定义就是软件定义网络,也就是说希望应用软件可以参与对网络的控制管理,满足上层业务需求,通过自动化业务部署简化网络运维。 1 SDN标准:ONF 网站:https://www.opennetworking.org/ 参考:...
  • 7个向设计师提需求的正确方法

    千次阅读 2017-08-11 12:22:05
    “提需求”,简简单单的三个字,却堪称“世界级难题”,困扰了一代又一代的甲方,引无数设计师竞折腰。设计师不好过,一边设计一边猜心,猜不对要改,改了还不对,不对继续改……甲方也不好过,我说A,你给我B,手一...
  • 需求文档

    千次阅读 多人点赞 2019-03-29 18:10:18
    2018年03月05日 22:11:21 zhangbijun1230 阅读数:40947 产品设计是一个由抽象的概念到具体形象化的处理过程...
  • 1 低频和高频RFID天线技术 在低频和高频频段,读写器和电子标签基本都采用线圈天线。线圈之间存在互感,使一个线圈的能量可以耦合到...本节所讨论的低频和高频RFID天线是基于近场耦合的概念进行设计的。 2.低频和...
  • 为保证大口径平面面形的高精度检测...对加工完成的Φ 300 mm 平面标准镜进行了集成装配,装配结果显示支撑引入的参考面面形变化约为1.294 nm[均方根(RMS)值],与仿真分析结果吻合,并且满足大口径平面检测的检测需求
  • 数据表设计原则

    千次阅读 2014-11-06 09:56:10
    不同组件间所对应的数据库之间的关联应尽可能减少,如果不同组件间的需要外键关联也尽量不要创建外键关联,而只是记录关联的一个主键,确保组件对应的之间的独立性,为系统或结构的重构提供可能性。...
  • 平面设计如何影响交互的未来

    千次阅读 2012-10-10 10:37:53
    所以,平面设计渐渐地印象着我们。 文章作者Mike Kruzeniski目前是Windows Phone设计工作室的创意总监,主要领导Windows Phone App team。该内容主要是其在2011年3月12日SXSW交互大会上的发言,PPT内
  • 无线传感器网络复习大纲

    千次阅读 多人点赞 2019-04-30 10:31:40
     ①、平面网络结构:无线传感器网络中最简单的一种拓扑结构,所有节点为对等结构,具有完全一致的功能特性 分及网络结构:分级网络结构分为上层和下层两个部分:上层为中心骨干节点;下层为一般传感器节点。...
  • 运用决策表设计测试用例

    千次阅读 2019-02-18 11:31:43
    利用决策能够设计出完整的测试用例集合。 决策能罗列出所有的情况,并清晰的指出相应的处理方式,用户不需要考虑其中的逻辑关系就能一眼看出其中什么样的动作对应什么样的情况,这比程序语言中层层嵌套的逻辑...
  • 机器视觉基础知识汇总

    千次阅读 多人点赞 2018-05-11 14:10:45
    失真:又称为畸变,指被摄物平面内的主轴直线,经光学系统成像后变为曲线,则此光学系统的成像误差称为畸变,畸变像差只影响影像的几何形状,而不影响影像的清晰度。 光圈与F值:光圈是一个用来控制镜头通光量的装置...
  • 每个 UI 设计师需要熟知的平面基础

    千次阅读 2020-05-19 10:46:27
    随着互联网的发展带动了UI设计的短暂刚需,经过3-5年的...本文将从平面设计认知、平面设计相关的专业基础、印刷须知与对接事项、设计师的职业路径和平面设计对UI设计的影响几个维度进行分析。希望通过本文的梳理带给...
  • A*算法

    千次阅读 多人点赞 2013-08-20 11:07:03
    在游戏设计中,经常要涉及到最短路径的搜索,现在一个比较好的方法就是用A*算法进行设  计。他的好处我们就不用管了,反正就是好!^_*        注意下面所说的都是以  ClassAstar  这个程序为蓝本,...
  • 基于JAVA的购物网站(毕业论文)

    万次阅读 多人点赞 2010-12-20 14:25:00
    XX 大 学   毕业设计(论文)         题目: 基于Java技术的网上交易系统的开发         学 院: 专 业: 班 级: ...
  • 产品读书《设计中的设计》-设计

    千次阅读 2018-12-25 22:14:12
     原研哉(KENYA HARA),日本中生代国际级平面设计大师,思想家。提出设计的本质是创造美好的生活。在设计中回到初始「白」的状态,注重人的触觉体验,并通过解析「环境」和「条件」,传递本真的情感。原研哉...
  • UI界面设计需求分析方法 本文摘自:WWW.51UI.CN 一种界面需求分析方法 1、引言软件界面是人与计算机之间的媒介。用户通过软件界面来与计算机进行信息交换。因此,软件界面的质量,直接关系到应用...
  • 中国平面设计指导价格

    万次阅读 2012-07-30 12:36:37
    为规范中国平面设计行业市场,促进设计行业的健康发展,给设计交易提供一个客观合理的收费标准。中国设计之窗、深圳市平面设计协会历时10个月,调查了全 国21个省、自治区48个城市的设计市场行情,对采集到的23755个...
  • 和计量SDN转发平面设计问题控制平面可扩展性SDN控制逻辑一致性参考文献: 研究背景 路由器逐渐承担越来越多的任务, 分组过滤,QOS, 流量工程等,臃肿不堪,而且只通过命令行接口对外开放少量功能,基于种种...
  • 图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的...
  • 数据平面、控制平面、管理平面

    万次阅读 2017-03-16 14:50:10
    交换机数据平面:交换机的基本任务是处理和转发交换机各不同端口上各种类型的数据, L2/L3/ACL/QOS/组播/安全防护等各种具体的数据处理转发过程,都属于交换机数据平面的任务范畴。  交换机控制平面:交换机的...
  • 一、需求: 1. 测量电压范围-100V~+100V 2. 元器件:越简单越好 3. 精度:待定。 二、设计电路结果: 分压电路+电压跟随器+加法器+分压电路得到0~3.3V间的电压,再通过STM32系列芯片的ADC进行采集 三、测量...
  • 1、ID(Industry Design)工业设计 包含外观、材质、手感、颜色配搭,主要界面的实现与及色彩等方面的设计。 2、MD(Mechanical Design)结构设计 以手机为例: 前壳、后壳、手机的摄像镜头位置的选择、固定的方式、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,673
精华内容 7,069
关键字:

平面设计需求表