图像校正与分割处理软件设计与实现模式识别与智能系统方案

合集下载

模式识别与智能系统简况

模式识别与智能系统简况

模式识别与智能系统简况模式识别与智能系统是二十世纪八十年代发展起来的新型交叉学科,该学科包含自动控制、模式识别、人工智能、模糊逻辑、仿生学和计算机科学等多种学科。

该学科以信息处理与模式识别的理论技术为核心,探索对各种信息进行处理、分类、理解,并在此基础上构造出具有某些智能特性的系统或装置的方法、途径与实现。

该学科在经济建设和国防建设具有广泛的实际背景,二十多年来,已引起了国内外有关学者的极大重视,被称其为面向二十一世纪的控制科学。

本学科点开始于我校省级重点学科计算机应用学科,从该学科人工智能方向发展而来。

最早的团队可以追溯到二十世纪八十年初,从承担航空基金立体仓库机器人开始。

经过近三十年的发展,该学科逐步形成了稳定的研究方向,于2003年从计算机应用学科独立出来,成为独立的学科,2005年获得“模式识别与智能系统”硕士学位授予权。

主要研究方向包括:神经网络与模式识别、图象处理与模式识别、智能机器人与人工智能和智能检测与智能控制等。

当前正在筹建“自主武器技术平台研究中心”,这是目前我省唯一一所高等院校首次建立的平台研究中心,中心下设6个实验室分别为飞行器仿真与模拟技术实验室、智能机器人与目标探测技术实验室、综合健康管理技术实验室、任务设备检测技术实验室、武器应用环境仿真实验室和导弹实验室,其中,导弹实验室近2-3年内投资200万多万元,购置了3枚导弹等,实验室已初具规模。

本学科主要关注与武器平台自主运行有关的技术,即主要关注:自主控制、环境感知、导航制导、保障与健康管理、电源、部分任务的关键技术研究和工程验证研究,逐步发展对平台总体设计、搭载任务武器等技术研究和工程验证。

本学科具有一定师资力量基础,现拥有双聘院士1人,博士生导师5人(外校兼职,本学科点没有博士授予权),硕士生导师9人,教授12人,副教授16名,其中,具有博士学位的教师有20名。

目前本学科点已培养硕士研究生10多名,学科梯队结构合理,整体实力强。

计算机视觉与图像处理、模式识别、机器学习学科之间的关系

计算机视觉与图像处理、模式识别、机器学习学科之间的关系

计算机视觉与图像处理、模式识别、机器学习学科(xuékē)之间的关系计算机视觉与图像处理、模式识别、机器学习(xuéxí)学科之间的关系在我的理解里,要实现计算机视觉必须有图像处理的帮助,而图像处理倚仗与模式识别的有效(yǒuxiào)运用,而模式识别是人工智能领域的一个重要分支,人工智能与机器学习密不可分。

纵观一切关系,发现计算机视觉的应用服务于机器学习。

各个环节缺一不可,相辅相成。

计算机视觉(shìjué)(computer vision),用计算机来模拟人的视觉机理获取和处理信息(xìnxī)的能力。

就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,用电脑处理成为更适合人眼观察或传送给仪器检测的图像。

计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息(xìnxī)’的人工智能系统。

计算机视觉的挑战是要为计算机和机器人开发具有与人类水平相当的视觉能力。

机器视觉需要图象信号,纹理和颜色建模,几何处理和推理,以及物体建模。

一个有能力的视觉系统应该把所有这些处理都紧密地集成在一起。

图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。

又称影像处理。

基本内容图像处理一般指数字图像处理。

数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。

图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。

常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等。

图像处理一般指数字图像处理。

模式识别(Pattern Recognition)是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分。

基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计摘要:车牌智能识别技术是智能交通系统中的重要组成部分,能够提高交通管理效率和安全性。

本文基于MATLAB平台,设计了一种车牌智能识别系统,通过图像处理和模式识别技术实现车牌号码的准确识别。

该系统能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,具有较高的准确性和稳定性,可以有效应用于停车场管理、交通违法抓拍等领域。

关键词:车牌智能识别;MATLAB;图像处理;模式识别一、引言随着汽车数量的快速增长,交通拥堵和交通管理成为社会发展中的一大难题。

为了提高交通管理效率和安全性,智能交通系统得到了广泛的关注和应用。

车牌智能识别技术作为智能交通系统中的重要组成部分,能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,为交通管理和监控提供了重要的支持。

二、相关技术及方法1. 图像处理技术图像处理技术是车牌智能识别系统中的核心技术之一,主要包括灰度化、二值化、边缘检测、形态学处理等操作。

灰度化是将彩色图像转换为灰度图像,简化了图像信息的处理;二值化将灰度图像转换为二值图像,方便进行特征提取和分割操作;边缘检测可以准确提取车牌的轮廓信息;形态学处理可以用于去除图像中的噪声点和填充孔洞,提高字符的连通性。

2. 字符分割与特征提取字符分割是指将车牌图像中的字符分离出来,是车牌识别的关键步骤之一。

在字符分割后,需要进行字符的特征提取,包括字符的大小、形状、像素点分布等特征。

这些特征可以用于字符的识别和分类,提高识别的准确性和鲁棒性。

3. 模式识别算法模式识别算法是车牌智能识别系统中的另一个核心技术,主要包括基于模板匹配的模式识别、基于统计学习的模式识别、基于深度学习的模式识别等方法。

这些算法能够对字符进行准确的识别和分类,为车牌智能识别系统提供了强大的分析和识别能力。

三、车牌智能识别系统设计基于MATLAB平台,设计的车牌智能识别系统主要包括图像预处理、字符分割与特征提取、模式识别和结果输出四个主要模块。

基于深度学习的图像识别与智能分类系统设计

基于深度学习的图像识别与智能分类系统设计

基于深度学习的图像识别与智能分类系统设计图像识别和智能分类技术是目前人工智能领域的重要研究方向之一。

随着深度学习的发展,深度学习在图像识别和智能分类任务中展现出了出色的表现。

本文将针对基于深度学习的图像识别与智能分类系统进行设计,并探讨相关的方法和技术。

一、引言图像识别和智能分类在人工智能应用中具有广泛的应用前景。

通过对图像进行深度学习算法的训练和优化,我们可以实现对图像中目标物体的准确识别和智能分类。

这将为各个行业,如医疗、安防、交通等领域,提供更加智能化、高效化的解决方案。

二、图像识别与智能分类系统设计的步骤1. 数据收集和预处理在设计图像识别与智能分类系统时,首先需要收集和准备大量的数据集。

合适的数据集对于系统的训练和模型的构建至关重要。

数据预处理包括对图像进行降噪、裁剪、旋转等操作,以提高数据的质量和准确性。

2. 模型选择和训练选择合适的深度学习模型是一个关键的步骤。

常用的深度学习模型包括卷积神经网络(CNN)和循环神经网络(RNN)。

CNN主要用于处理图像数据,而RNN主要用于处理序列数据。

根据具体的任务需求,选择适合的模型进行训练。

3. 特征提取和降维在训练完成后,我们需要进行特征提取和降维操作。

通过提取图像中的关键特征,可以降低数据维度,提高模型的泛化能力和分类效果。

4. 系统集成和优化将训练好的模型进行系统集成和优化,使其能够适应实际的应用场景。

系统集成主要包括搭建前端用户界面、后端服务器搭建、数据库管理等工作。

系统优化可以通过模型的参数调优、算法的改进等方式来提高系统的性能和效果。

三、基于深度学习的图像识别与智能分类系统设计的关键技术1. 卷积神经网络(CNN)卷积神经网络是一种基于深度学习的重要模型,特别适用于图像处理和分析任务。

通过卷积、池化等技术,可以有效地提取图像中的特征信息,并进行分类和识别。

2. 循环神经网络(RNN)循环神经网络能够对序列数据进行处理,适用于一些具有时序性的图像处理任务,如视频分析和动作识别。

图像校正与分割处理软件设计与实现模式识别与智能系统方案

图像校正与分割处理软件设计与实现模式识别与智能系统方案

图像校正及分割处理软件设计与实现《图像分析与模式识别》课程期末大作业报告课程名称:___________ 图像分析与模式识别_____________ 学院:_____________ 信息工程与自动化学院____________ 专业:_________________ 计算机技术 __________________ 年级:___________________ 2014级 ___________________ 学生姓名:_________________ 樊祥锰___________________ 学生学号:_____________ 2014704101 ______________ 扌旨导教师:______________ 刘辉_____________________2015-01-01昆明理工大学信息工程与自动化学院目录图像校正及分割处理软件设计与实现 (3)1 软件需求 (3)1.1 操作界面需求分析 (3)1.2 图像几何校正需求分析 (4)1.2 ISODATA 聚类算法的图像分割需求分析 (4)2 算法原理及流程图 (4)2.1 Hough 变换 (5)2.1.1 Hough 变换原理 (5)2.1.2 图像几何校正流程 (6)2.2 ISODATA 算法原理 (7)2.2.1 ISODATA 算法原理步骤 (7)2.2.1 ISODATA 算法流程图 (9)3 程序设计框图 (10)4 实验结果及分析 (11)4.1 图像几何 (11)4.1.1 支票图像几何校正结果 (11)4.1.1 支票图像几何校正结果分析 (12)4.2 图像分割 (12)4.2.1 图像分割结果 (12)4.2.1 图像分割结果分析 (15)附录: (16)附录一:图像几何校正代码 (16)附录一:ISODATA 聚类算法图像分割代码 (16)附录一:MATLAB 的GUI 操作界面代码 (22)图像校正及分割处理软件设计与实现摘要:设计一种图像几何校正及图像分割处理软件,实现对倾斜支票图像校正为水平,及对已给的图像进行分割。

基于图像处理的自动识别系统设计与实现

基于图像处理的自动识别系统设计与实现

基于图像处理的自动识别系统设计与实现摘要:自动识别系统是现代信息技术领域的重要研究方向之一,它基于图像处理技术实现对图像、视频中的目标进行快速准确的识别和分类。

本文将介绍一种基于图像处理的自动识别系统的设计与实现,包括图像获取、预处理、特征提取和目标识别等几个关键步骤,以及系统的整体架构和算法优化方法。

通过实验验证,该系统在目标识别的准确率和效率方面取得了显著的改善,具有较好的应用前景。

1. 引言自动识别系统是一种能够自动从图像或视频中提取出目标对象并进行准确识别的技术,广泛应用于安防监控、智能交通、人脸识别等领域。

图像处理技术是自动识别系统实现的基础,通过对图像进行预处理、特征提取和目标识别等步骤,可以高效地实现自动目标识别。

本文将介绍一种基于图像处理的自动识别系统的设计与实现,以期提供一种解决方案,用于改善目标识别的准确率和效率。

2. 系统设计与实现2.1 图像获取在自动识别系统中,图像获取是第一步,决定了后续处理的质量。

可以使用摄像机、监控设备或其他传感器获取图像或视频流,并传输到图像处理模块进行处理。

为了提高系统的适应性,本文采用了基于网络的图像获取方式,可通过局域网或互联网连接远程设备,并获取实时图像。

2.2 预处理预处理是自动识别系统中的关键步骤之一,旨在对获取到的图像进行去噪、增强和调整等处理,为后续的特征提取和目标识别提供更好的图像质量。

预处理的常用方法包括灰度化、平滑滤波、对比度增强和直方图均衡化等。

其中,平滑滤波可以减少图像中的噪声干扰,对比度增强能够提高图像的清晰度和辨识度。

2.3 特征提取特征提取是自动识别系统中的核心步骤,通过分析图像中的特征信息,提取出具有代表性的特征描述符,用于目标的类别判别。

常用的特征提取方法有颜色特征、纹理特征和形状特征等。

其中,颜色特征可通过对图像进行颜色空间转换,提取出颜色直方图或颜色矩等;纹理特征可通过对图像进行纹理分析,提取出纹理统计量等;形状特征可通过对图像进行边缘检测、细化和轮廓提取等,获取目标的形状信息。

模式识别课程设计

模式识别课程设计

模式识别课程设计聚类图像分割一.图像分割概述图像分割是一种重要的图像分析技术。

在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣。

这些部分常称为目标或前景(其他部分称为背景)。

它们一般对应图像中特定的、具有独特性质的区域。

为了辨识和分析图像中的目标,需要将它们从图像中分离提取出来,在此基础上才有可能进一步对目标进行测量,对图像进行利用。

图像分割就是把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。

现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。

近年来,研究人员不断改进原有的图像分割方法并把其它学科的一些新理论和新方法用于图像分割,提出了不少新的分割方法。

图象分割是图象处理、模式识别和人工智能等多个领域中一个十分重要且又十分困难的问题,是计算机视觉技术中首要的、重要的关键步骤。

图象分割应用在许多方面,例如在汽车车型自动识别系统中,从CCD摄像头获取的图象中除了汽车之外还有许多其他的物体和背景,为了进一步提取汽车特征,辨识车型,图象分割是必须的。

因此其应用从小到检查癌细胞、精密零件表面缺陷检测,大到处理卫星拍摄的地形地貌照片等。

在所有这些应用领域中,最终结果很大程度上依赖于图象分割的结果。

因此为了对物体进行特征的提取和识别,首先需要把待处理的物体(目标)从背景中划分出来,即图象分割。

但是,在一些复杂的问题中,例如金属材料内部结构特征的分割和识别,虽然图象分割方法已有上百种,但是现有的分割技术都不能得到令人满意的结果,原因在于计算机图象处理技术是对人类视觉的模拟,而人类的视觉系统是一种神奇的、高度自动化的生物图象处理系统。

目前,人类对于视觉系统生物物理过程的认识还很肤浅,计算机图象处理系统要完全实现人类视觉系统,形成计算机视觉,还有一个很长的过程。

因此从原理、应用和应用效果的评估上深入研究图象分割技术,对于提高计算机的视觉能力和理解人类的视觉系统都具有十分重要的意义。

模式识别与智能系统专业硕士研究生培养方案

模式识别与智能系统专业硕士研究生培养方案

模式识别与智能系统专业硕士研究生培养方案Power System and Automation(专业代码:081104 授工学学位)一、培养目标:培养德智体全面发展,具有坚实和系统的模式识别与智能系统理论知识和实践技能,了解模式识别与智能系统学科发展的前沿和动态,能够适应我国经济、科技、教育发展需要,面向二十一世纪的科学研究、工程技术和高等教育的高层次人才。

具备从事模式识别、图像处理、信号分析处理、网络化智能技术与系统、人工智能、智能控制、智能传感系统、智能信息系统等方面的独立工作能力。

注意理论联系实际,能够分析和解决现代经济建设和交叉学科中涌现出的新课题。

熟练掌握一门外语,能够在模式识别与智能系统学科及相关学科领域独立开展研究工作。

二、主要研究方向:1.信号分析处理与智能控制本研究方向涉及对各种确定、不确定性信息与数据进行分析处理,以及具有智能特征的控制算法与控制方案的研究。

主要从事智能控制基本原理、基本方法以及复杂信号提取与分析处理的研究,包括网络环境下智能控制理论与技术,神经网络、模糊逻辑理论,智能信息处理技术与应用等。

2.图像处理技术及应用本研究方向主要应用图像工程的有关原理与技术,对图像获取、处理、分析、理解与辨识等功能的实现进行深入研究,其中主要包括图像信息的检测与分析、图像信息的挖掘与识别、图像处理、模式识别或图像识别、景物分析、图像理解等。

此外,通过运用图像获取、抽取特征、比较和匹配等自动测量方法和融合技术,实现对人体特征的识别,进而达到认证个人身份的目的。

三、学习年限与学分全日制攻读硕士学位的学习年限为2.5年,鼓励优秀学生提前答辩。

总学分要求≥43学分,其中修课学分数要求≥28学分,研究环节要求≥15学分,具体学分分配如下图:四、课程设置模式识别与智能系统专业研究生课程设置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像校正及分割处理软件设计与实现《图像分析与模式识别》课程期末大作业报告课程名称:图像分析与模式识别目录图像校正及分割处理软件设计与实现 (1)1 软件需求 (1)1.1 操作界面需求分析 (1)1.2 图像几何校正需求分析 (1)1.2 ISODATA聚类算法的图像分割需求分析 (2)2 算法原理及流程图 (2)2.1 Hough变换 (2)2.1.1 Hough变换原理 (2)2.1.2 图像几何校正流程 (3)2.2 ISODATA算法原理 (3)2.2.1 ISODATA算法原理步骤 (3)2.2.1 ISODATA算法流程图 (5)3 程序设计框图 (6)4 实验结果及分析 (7)4.1 图像几何 (7)4.1.1 支票图像几何校正结果 (7)4.1.1 支票图像几何校正结果分析 (8)4.2 图像分割 (8)4.2.1图像分割结果 (8)4.2.1图像分割结果分析 (10)附录: (11)附录一:图像几何校正代码 (11)附录一:ISODATA聚类算法图像分割代码 (11)附录一:MATLAB的GUI操作界面代码 (17)图像校正及分割处理软件设计与实现摘要:设计一种图像几何校正及图像分割处理软件,实现对倾斜支票图像校正为水平,及对已给的图像进行分割。

图像几何校正主要通过边缘检测、Hough 变换、求倾斜角、图像旋转等算法实现;图像分割采用ISODATA聚类算法实现。

实验结果表明,实现了对倾斜支票图像几何校正和对图像的分割功能。

关键词:边沿检测;Hough变换、图像旋转、ISODATA算法;图像分割;1 软件需求需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括整个系统所要实现的功能。

根据题目,设计需要编写带有操作界面的图像处理软件,功能包含图像几何校和基于ISODATA聚类算法的图像分割。

开发工具使用MATLAB。

根据MATLAB的特点及需要实现的软件功能,软件需求分析如下:1.1 操作界面需求分析软件实现的功能是图像处理,因此操作界面中需要一个按钮,用于选择待处理的图像,称为“图像选择”按钮;选择的原始图像需要在操作界面中显示,因此需要一个用于显示原始图像的坐标控件;由于软件需要实现多功能,需要一个下拉框实现功能的选择;一个开始功能处理的按钮,称为“开始处理”按钮;一个用于显示图像处理结果的坐标控件。

最后需要一个退出操作界面的按钮,称为“退出”按钮。

1.2 图像几何校正需求分析原始图像在拍照时出现了倾斜,需要将图像校正,消除倾斜。

通过对图像的观察,图像是一支票,支票上存在表格。

因此想法是通过检测支票表格边框线的倾斜角,就是整图像的倾斜程度,然后根据这个倾斜角旋转,便可得到校正的水平图像。

要检测支票图像表格边框直线。

需要对图像的边缘进行检测,图像的边缘检测方法很多,如:sobel算子边缘检测,prewitt算子边缘检测,roberts 算子边缘检测,log算子边缘检测,canny算子边缘检测等,由于原图的噪声并不是很严重,因此上面这些边缘检测办法都能胜任,这里使用log算子进行边缘检测,为了适应其它边缘检测方法,本设计需要尽量在改变边缘检测方法时尽可能少地修改代码。

边缘检测后,采用Hough变换提取直线,然后在提取的直线上找两个点,计算出直线的倾斜角度。

最后根据这个倾斜角度对图像进行旋转。

1.2 ISODATA聚类算法的图像分割需求分析ISODATA聚类算法的图像分割功能,ISODATA比较复杂,因此主要是ISODATA 算法的实现。

设计的处理过程是,在操作界面选择了待处理的图像后,选择图像分割功能,点击开始处理按钮后,弹出图像,通过鼠标左键选择聚类中心点,然后按回车键或者单击鼠标右键确认后,调用ISODATA对图像进行分割。

2 算法原理及流程图设计的功能有图像几何和基于ISODATA聚类算法的图像分割。

图像几何校正功能中,采用Hough变换对支票表格边框直线进行检测;ISODATA聚类算法的图像分割功能和核心是ISODATA聚类算法。

对其原理及实现的流程图分析如下。

2.1 Hough变换哈夫变换是利用图像全局特性而直接检测目标轮廓,就可将边缘像素连接起来组成区域封闭边界的一种方法。

在预先知道区域形状的条件下,利用哈夫变换可以方便地得到边界曲线而将不连续的边缘像素点连接起来。

2.1.1 Hough变换原理哈夫变换的基本思想是点-线对偶性。

图像变换前在图像空间,变换后在参数空间。

在图像空间XY里,所有过点(x, y)的直线都满足方程:y=px+q写成:q=-px+y (1)可以认为代表参数空间PQ中过点(p,q)的一条直线。

YQq'p图1 图像空间图2 参数空间图像空间的点(xi, yi)和(xj, yj)对应参数空间两条直线,它们的交点(p’,q’)对应图像空间XY中过(xi, yi)和(xj, yj)的直线,这样,图像空间XY中过(xi, yi)和(xj,yj)的直线上的所有点都对应参数空间PQ里的一条直线,这些直线相交于点(p’, q’) 。

在图像空间中共线的点对应在参数空间中相交的线,反过来,在参数空间于同一个点的所有直线在图像空间中都有共线的点相对应,这就是点-线对偶性。

根据点-线对偶性,当给定图像空间的一些边缘点,就可以通过哈夫变换确定连接这些点的直线方程,哈夫变换把图像空间中的直线检测问题转换到参数空间里点检测的问题。

2.1.2 图像几何校正流程图像几何校正中使用的Hough变换算法采用MATLAB已经封装好的hough函数,这里不要详细阐述其流程,整个图像几何校正的流程如图3所示:图3 图像几何校正流程图2.2 ISODATA算法原理ISODATA算法的思想是,在每轮迭代过程中,样本重新调整类别之后计算类及类间有关参数,并和设定的门限比较,确定是两类合并为一类还是一类分裂为两类,不断地“自组织”,以达到在各参数满足设计要求条件下,使各模式到其类心的距离平方和最小。

2.2.1 ISODATA算法原理步骤⑴预置①设定聚类分析控制参数:c=预期的类数,N c =初始聚类中心个数(可以不等于c),θn =每一类中允许的最少模式数目,θs =类各分量分布的距离标准差上界,(分裂用)θD =两类中心间的最小距离下界,(合并用)L =在每次迭代中可以合并的类的最多对数,I =允许的最多迭代次数。

② 将待分类的模式特征矢量读入;③④ 选定初试聚类中心,可从待分类的模式特征矢量集中任选N c 个模式特征矢量作为初始聚类中心;(2)按最小距离原则将模式集中每一个模式分到某一类中;(3)依据每一类中允许的最少模式数目判断合并;(4)计算分类后的参数:分类中心,;类平均距离及中体平均距离;① 计算各类的中心∑∈=j i x i jj x n z ω 1),,2,1(c N j = (2) ② 计算各类中模式到类心的平均距离∑∈-=j i x j i j j z x n d ω1 ),,2,1(c N j = (3) ③ 计算各个模式到其类中心的总体平均距离 j cN j j d n N d ∑==11(4) (5)依据I p , N c 判断停止、分类或合并;(6)计算各类类距离的标准差矢量;),,,(21'=nj j j j σσσσ ),,2,1(c N j =),,2,1,,2,1()(1212c x kj ki j kj N j n k z x n j i ==⎥⎥⎦⎤⎢⎢⎣⎡-=∑∈ωσ (5)(7)对每一次聚类,求出类距离标准差矢量中的最大分量;(8)在(7)所得结果中对任一最大值大于类各分量分布的距离标准差上界则分裂;(9)计算各对聚类中心间的距离;(10)依据两类中心间的最小距离下界判断合并;(11)如果迭代次数I p 已达I 次或过程收敛,则结束,否则,I p =I p +1,若需要调整参数,则转(1),若不改变参数则转(2);2.2.1 ISODATA算法流程图图4 ISODATA聚类算法流程图3 程序设计框图根据需求分析,对整个操作界面及其中的函数调用等,对整个程序进行分析。

操作界面运行后,单击选择图像按钮选择待处理的图像。

然后选择要对图形进行处理的功能,单击开始处理按钮,调用相应的处理方法进行处理,整个程序的设计框图如图5所示:图5 程序设计框图设计好的操作界面如下图所示:图6 操作界面设计结果4 实验结果及分析4.1 图像几何4.1.1 支票图像几何校正结果图像几何校正功能中,对支票图像的校正如下图所示:图7 图像结合校正处理中图8 图像结合校正处理中4.1.1 支票图像几何校正结果分析通过支票图像几何校正结果可知,设计达到了预计的结果。

通过MATLAB运行提取计算斜率的坐标为 (1200,522)和(1540, 511)。

直线的斜率为slope = -0.0324,通过次斜率计算出的倾斜角度为angle = -1.8530。

根据人眼观测结果显示支票的请倾斜角也比较小,而且根据校正后的支票图像结果显示已经水平。

即达到了实验设计目的。

4.2 图像分割4.2.1图像分割结果在运行图像分割功能时,需要通过鼠标选择预期聚类,其中选择之一如图9所示:请选取预期聚类的中心点,完成后请按回车键或单击鼠标右键图9 选择预期的聚类中心图10 图像分割处理中最终对图像的分割结果如下图所示:图11 图像分割结果(a)图11 图像分割结果(b)图13 图像分割结果(c)图14 图像分割结果(d)4.2.1图像分割结果分析通过多次选择不同的预期聚类中心的实验结果表明,设计基本完成了所需的功能。

同时也证明了设计的合理性,以及ISODATA聚类算法在图像分割中的运用。

结果显示,把鸭子的眼睛分成了一类,把鸭子的嘴分成了一类,把鸭子的身体分成了一类,虽然有时分类结果不是非常好。

但选择预期聚类中心时有一定的影响。

总体来看,仍然达到了图像分割的目的。

本学期在《图像分析与模式识别》课程中学到很多,学到的不仅仅是课程相关的知识。

更重要的是学到了许多处理和解决问题的思想,相信对今后的学习会有很大的帮助。

这都是辉老师教导的结果,在此对辉老师表示衷心感!附录:附录一:图像几何校正代码function jiaozheng = jiaozheng(cheque)BW_laplace = edge(cheque,'log');% log算子边缘检测BW2 = bwmorph(BW_laplace, 'thin',Inf);%细化[H,T,R] = hough(BW2); %Hough变换P = houghpeaks(H,5); %提取Hough变换后参数平面上的峰值点lines = houghlines(BW2,T,R,P); %提取直线for k = 1:length(lines)xy = [lines(k).point1; lines(k).point2]; %提取坐标endslope=(xy(2,2)- xy(1,2))/(xy(2,1)-xy(1,1)); %求斜率radian=atan(slope);%求角度angle=radian*180/pi; %转化成角度jiaozheng=imrotate(cheque,angle); %图像校正imshow(jiaozheng);close ;附录一:ISODATA聚类算法图像分割代码function isodata=isodata_zsy(I)%%%%%%%%%%%%%%%%%1..样本点为所有的像素点%%%%%%%%%% %%%%%%%%%%%%%%% 2...聚类中心点的确定%%%%%%%%%%%%%%figure(1);imshow(I,[]),title('请选取预期聚类的中心点,完成后请按回车键或单击鼠标右键');[m,n]=size(I);k=4; % k 用来记录预期聚类的数目这里假定为4c=k; % c来记录实际分类时的数目hold on;[p,q]=getpts; %获取聚类中心,返回去类中心的坐标,p存放第一个坐标点,q存放第二个坐标点(数对)J=zeros(1,3*c); %?for i=1:cf=round(q(i)); %分为c类 J来记录各类的中心像素值...(坐标和像素值)d=round(p(i));J(i)=I(f,d);end%disp(J);%%%%%%%%%%%%%%%%%3...将样本点分到各个聚类中心去%%%%%%%%%%%%%max_gen=10; %max_gen最大迭代次数w=1;%while w<max_genA=zeros(m,n);for i=1:mfor j=1:ndis=[0,0,0,0]; %用来记录样本点与每个聚类中心的距离for x=1:4dis(1,x)=(I(i,j)-J(x))*(I(i,j)-J(x));end%disp(dis);[min1,temp]=min(dis);A(i,j)=J(temp);endend%disp(A);%%%%%%%%%%%4....依据一个类中的最小聚类数判断是否舍去聚类点%%%%%%%%%%sN=6; %sN一个聚类中至少含有的样本数目count=zeros(1,3*c); %count数组用来记录每个聚类中含有的样本数目for i=1:mfor j=1:nfor x=1:cif A(i,j)==J(x)count(x)=count(x)+1;endendendendfor x=1:c-1if count(x)<sNJ(x)=J(x+1);count(x)=count(x+1); %类的数目减少一个c=c-1;endendif count(x)<sNcount(x)=0;c=c-1;end%%%%%%%%%%%5...更新聚类中心%%%%%%%%%%%%%%%%%%%%%%%%%%%for x=1:csum=0;for i=1:mfor j=1:nif A(i,j)==J(x)sum=sum+I(i,j);endendendJ(x)=round(1.0/count(x)*sum*1.0); %更新中心end%%%%%%%%%%%%%%%6....各类的样本离开中心的平均距离%%%%%%%%%%%% meandis=zeros(1,c);for x=1:csum=0;for i=1:mfor j=1:nif A(i,j)==J(x)sum=sum+abs(I(i,j)-J(x));endendendmeandis(x)=1.0/count(x)*sum;end%%%%%%%%%%7...所有样本离开其相应的聚类中心的平均距离%%%%%%%%g_meandis=0; %g_meandis记录平均距离N=m*n;for x=1:cg_meandis=g_meandis+count(x)* meandis(x); % endg_meandis=g_meandis/N;%%%%%%%%%%%%8....决定是走向合并还是分裂%%%%%%%%%%%%sC=1.5; %sC为合并参数if w==max_gen-1 %如果这是最后一次迭代置合并参数为0 sC=0;enddisp(g_meandis);if c<k/2+1|mod(w,2)==1 %继续做步骤8 %%%%%%%%%%%%9...实际聚类中心数跟预期数相比太小要进行分裂%%%%%%%%%%%% %%%%%%%%%%%%对各个聚类求标准偏差%%%%%%%%%%%%%%%%%%%%%%%%std_err=zeros(1,c);for x=1:csum1=zeros(1,c);for i=1:mfor j=1:nif A(i,j)==J(x)sum1(x)=sum1(x)+((I(i,j)-J(x))*(I(i,j)-J(x)));endendendstd_err(x)=sqrt(1/count(x)*sum1(x)*1.0);end%%%%%%%%%%%%%10..求最大标准差分量..灰度图特征分量为1%%%%%%%%%%%% %%%%%%%%%%11..决定是否分裂%%%%%%%%%%%%%%%%%%%%t=0.6 ; % t为(0,1]之间的数保证样本仍在两个集合中r=zeros(1,c);J_rec=J;for x=1:cif std_err(x)> g_meandis&count(x)>2*(sN+1)r(x)=t*meandis(x);c=c+1; %实际类的数目加1J_rec(x)=J(x); %记录原中心点的灰度值J(x)=J(x)+r(x);J(c)=J(x)-r(x);for i=1:m %将分裂之后的像素重新安排所归属的类中心 for j=1:nif A(i,j)==J_rec(x)if abs(I(i,j)-J(c))<abs(I(i,j)-J(x))A(i,j)=J(c);count(c)=count(c)+1; %记录新增的类含样本的个数 elseA(i,j)=J(x);endendendendcount(x)=count(x)-count(c); %count(x)含样本的个数endend%%%%%%%%%%%%%%%%12...计算所有的聚类中心两两距离%%%%%%%%%%%elsebetwen_dis=zeros(c,c);for i=1:cfor j=1:ibetwen_dis(i,j)=abs(J(i)-J(j));betwen_dis(j,i)=betwen_dis(i,j); % 这个矩阵为一对称矩阵endend%%%%%%%%%%%%%%%%%13..将小于最小合并参数的 betwen_dis(i,j)%%%%%%%%sL=2; %每次迭代允许的最大聚类对的数目line=zeros(1,c*c)-1;s=1;for i=1:cfor j=1:iif betwen_dis(i,j)<sCline(s)=betwen_dis(i,j);s=s+1;endendendif s>1for i=1:s-1temp1=i;for j=i+1:sif line(j)<line(temp1) %选择排序法对line进行排序temp1=j;endif temp1~=itemp2=line(temp1);line(temp1)=line(i);line(i)=temp2;endendendendif s>sL % 当s超过最大合并对数时将s的值变为允许的最大聚类对的数目 s=sL;end%%%%%%%%%%%%%%14...从最小的进行合并%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%temp_c=c;for x=1:sfor i=1:temp_cfor j=1:temp_cJ_temp=J;if betwen_dis(i,j)==line(x)&i>j %矩阵为一对称矩阵.....只看下三角c=c-1;J(j)=round(1.0/(count(i)+count(j)))*(count(i)*J(i)+count(j)*J(j));count(j)=count(i)+count(j); %合并后聚类中新含有新样本的个数for g=1:m %将合并之后的像素重新安排所归属的类中心for h=1:nif A(g,h)==J_temp(i)|A(g,h)==J_temp(j)A(g,h)=J(j);endendendif i==temp_ccount(i)=0;elsefor g=i:c-1J(g)=J(g+1); %将记录后面类中心像素值前移count(g)=count(g+1);endendendendendend%%%%%%%%%%%%%%%%%15....计数器加1进行迭代直到结束endw=w+1; %进行下一次迭代A=round(A);isodata=mat2gray(A);close;附录一:MATLAB的GUI操作界面代码function varargout = sztxfx_mssb_zsy(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', sztxfx_mssb_zsy_OpeningFcn, ...'gui_OutputFcn', sztxfx_mssb_zsy_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before sztxfx_mssb_zsy is made visible.function sztxfx_mssb_zsy_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for sztxfx_mssb_zsyhandles.output = hObject;% Update handles structureguidata(hObject, handles);% --- Outputs from this function are returned to the command line.function varargout = sztxfx_mssb_zsy_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;% --- Executes during object creation, after setting all properties. function axes1_CreateFcn(hObject, eventdata, handles)set(hObject,'xTick',[]);set(hObject,'ytick',[]);set(hObject,'box','on');% Hint: place code in OpeningFcn to populate axes1% --- Executes during object creation, after setting all properties.function axes2_CreateFcn(hObject, eventdata, handles)set(hObject,'xTick',[]);set(hObject,'ytick',[]);set(hObject,'box','on');% Hint: place code in OpeningFcn to populate axes2% --- Executes on button press in togglebutton1.function togglebutton1_Callback(hObject, eventdata, handles)global imgage% global info[filename,pathname]=uigetfile({'*.bmp';'*.tif';'*.jpg';'*.gif';'*.*'},'选择图片');if pathname == 0return;endstr=[pathname filename];% info=imfinfo(str);imgage=imread(str);axes(handles.axes1);imshow(imgage);% Hint: get(hObject,'Value') returns toggle state of togglebutton1% --- Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)global valuevalue = get(hObject,'Value');switch valuecase 1cla;end% --- Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in togglebutton2.function togglebutton2_Callback(hObject, eventdata, handles) global imgageglobal value[m n]=size(imgage);axes(handles.axes2);switch valuecase 1cla;case 2h = waitbar(0.1,'正在处理,请稍候...');IMG=jiaozheng(imgage);% waitbar(1,h,'ok!');pause(0.6);% delete(h);imshow(IMG);case 3h = waitbar(0.1,'正在处理,请稍候...');isodata=isodata_zsy(imgage);waitbar(1,h,'ok!');pause(0.6);delete(h);imshow(isodata);%figure ,imshow(B);title('hough变换后的图像');%xlabel('\theta'), ylabel('\rho');%axis on, axis normal, hold on;endclear;% Hint: get(hObject,'Value') returns toggle state of togglebutton2% --- Executes on button press in togglebutton3.function togglebutton3_Callback(hObject, eventdata, handles)clc;clear;close(gcbf);% Hint: get(hObject,'Value') returns toggle state of togglebutton3毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

相关文档
最新文档