车牌图像定位与识别
车牌识别原理

车牌识别原理
车牌识别是指通过图像处理和模式识别技术,对车辆的车牌进行自动识别和文字提取的过程。
其原理可以概括为以下几个步骤:
1. 图像预处理:从摄像头获取的图像需要进行预处理,包括去噪、灰度化、二值化等操作。
去噪主要是为了减少图像中的干扰信息,而灰度化和二值化则是将图像转换为黑白二值图,方便后续处理。
2. 车牌定位:在经过预处理后的图像中,需要找到车牌所在的位置。
常用的方法有基于边缘检测、颜色分析和形状匹配等。
边缘检测可以提取图像中的边缘信息,颜色分析可以根据车牌的颜色特性进行筛选,形状匹配可以通过匹配车牌的形状特征来定位。
3. 字符分割:在定位到车牌后,需要将车牌上的字符进行分割。
常见的方法有基于边缘投影和垂直投影的字符分割算法。
边缘投影是通过检测字符边缘的变化情况来实现分割,垂直投影则是通过统计字符列中像素的数量来实现分割。
4. 字符识别:分割后得到的单个字符需要进行识别。
字符识别主要是通过模式识别技术,例如用神经网络、SVM等算法进
行训练和匹配。
训练集中包含了各种不同字符的样本,识别时将样本与待识别字符进行比对,找到最匹配的字符。
5. 结果输出:识别出的字符需要进行校验和整理,确保识别准
确无误。
最后将识别结果输出为文字或数字,用于后续的车辆管理和系统应用。
综上所述,车牌识别主要通过图像预处理、车牌定位、字符分割、字符识别和结果输出等步骤实现对车牌的自动识别和文字提取。
通过不同的算法和技术优化,可以提高识别的准确率和实时性,提升车牌识别系统的性能和可靠性。
车牌图像定位与识别

专业综合实验报告----数字图像处理专业:电子信息工程班级:姓名:学号:指导教师:2014年7月18日车牌图像定位与识别一、设计目的利用matlab实现车牌识别系统,熟悉matlab应用软件的基础知识,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。
同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论基础,有助于自身综合能力的提高。
二、设计内容和要求车牌识别系统应包含图像获取、图像处理、图像分割、字符识别、数据库管理等几个部分,能够完成复杂背景下汽车牌照的定位分割以及牌照字符的自动识别。
这里,只要求对给定的彩色车牌图像变换成灰度图像,用阈值化技术进行字符与背景的分离,再提取牌照图像。
三、设计步骤1.打开计算机,启动MATLAB程序;2.调入给定的车牌图像,并按要求进行图像处理;3.记录和整理设计报告四、设计所需设备及软件计算机一台;移动式存储器;MATLAB软件。
五、设计过程车辆牌照识别整个系统主要是由车牌定位和字符分割识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。
(一)对图像进行图像转换、图像增强和边缘检测等1.载入车牌图像:原图2.将彩图转换为灰度图并绘制直方图:灰度图灰度直方图3.用roberts 算子进行边缘检测:图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。
正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。
边缘提取是较经典的算法,此处边缘的提取采用的是Roberts 算子。
roberts 边缘检测图4.图像实施腐蚀操作:腐蚀后图5.平滑图像:对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低通滤波器来滤除噪声,但实际中为了简化算法也可以直接在空域中用求邻域平均值的方法来削弱噪声的影响,这种方法称为图象平滑处理。
汽车车牌定位识别概述

汽车车牌定位识别概述汽车车牌定位识别技术的发展得益于计算机视觉技术的进步和硬件设备的不断更新。
自从20世纪80年代末期开始,随着计算机技术的发展,人们开始研究如何利用计算机自动识别车牌。
最初的方法是通过车牌字符的特征提取和模式匹配来实现,但是这种方法在实际应用中存在一些问题,比如对于光照条件、角度和车辆速度的不同会导致识别结果的准确度下降。
随着深度学习技术的兴起,特别是卷积神经网络(Convolutional Neural Network,CNN)的发展,汽车车牌定位识别技术得到了显著的进步。
CNN可以通过学习大量的车牌图像来自动提取图像特征,并通过训练模型来识别不同类型的车牌。
这种方法不仅可以提高识别的准确性,还可以适应不同的光照和角度条件。
汽车车牌定位识别技术的应用非常广泛。
首先,在交通安全领域,汽车车牌定位识别可以帮助交警自动检测和记录违反交通规则的车辆,比如闯红灯、超速等。
这种技术可以大大提高交通管理的效率和准确性,减少人为差错。
其次,在停车场管理中,汽车车牌定位识别可以帮助自动识别道闸前的车牌信息,实现自动出入场的管理。
这不仅方便了车辆的出入,还可以提高停车场的管理效率。
另外,在安防领域,汽车车牌定位识别可以帮助监控系统自动追踪和识别特定车辆的位置和行动轨迹,有助于犯罪侦查和预防。
汽车车牌定位识别技术通常包括以下几个步骤。
首先,对车辆图像进行预处理,包括图像去噪、图像增强等。
然后,利用目标检测算法来定位车牌的位置,常用的方法包括边缘检测、颜色分割等。
接下来,对定位到的车牌进行字符分割,将车牌中的字符单独分离出来。
最后,利用字符识别算法对分割后的字符进行识别,常见的方法包括模板匹配、字符特征提取等。
虽然汽车车牌定位识别技术已经取得了很大的进展,但是在实际应用中仍然存在一些挑战。
首先,不同车牌的形状和颜色差异较大,车牌的角度和光照条件也会导致识别的准确性下降。
其次,特定地区的车牌字符种类较多,字符的形状和位置也有差异,这对识别算法提出了更高的要求。
停车场系统识别车牌识别原理

停车场系统识别车牌识别原理
停车场系统的车牌识别原理主要包括以下几个步骤:
1. 图像采集:通过安装在停车场入口或出口处的摄像头,对车辆进出的图像进行实时采集。
2. 图像预处理:对采集到的图像进行处理,包括图像的旋转、裁剪、去噪等操作,以便提高后续车牌字符的识别准确率。
3. 车牌定位:通过图像处理技术,识别图像中的车牌位置,并将车牌区域进行标记或框出。
4. 字符分割:对车牌区域进行字符分割,将每个字符分隔开来,便于后续的字符识别。
5. 字符识别:将分割好的字符送入字符识别引擎中,进行字符识别。
常用的识别方法有基于模板匹配、神经网络、支持向量机等。
6. 车牌识别:将识别出的字符组合起来,得到完整的车牌号码。
需要注意的是,车牌识别的准确率受到诸多因素的影响,如光照条件、天气情况、车牌遮挡等。
为提高准确率,还可以采用一些增强技术,如多通道图像融合、自适应阈值等。
基于图像的车标定位与识别

基于图像的车标定位与识别随着汽车工业的快速发展,车辆的数量也在不断增加。
在交通管理、智能驾驶等领域,准确地识别车辆和车辆上的标识成为了一个重要的问题。
其中,车标的定位和识别是车辆识别的关键一步。
车标是车辆上的一个重要标识,它通常包含了车辆制造商的标志和标识。
通过识别车标,可以对车辆进行分类和追踪,为交通管理提供便利,同时也为智能驾驶系统的自主决策提供重要信息。
基于图像的车标定位与识别是一种常见的方法。
首先,需要对车辆图像进行预处理,包括图像的去噪、增强和尺度归一化等。
然后,使用图像处理技术,如边缘检测、特征提取等,来定位车标的位置。
通过在车辆图像中检测出车标的位置,可以对车辆进行更精确的识别。
在车标识别的过程中,特征提取是一个关键步骤。
可以使用传统的特征提取算法,如颜色直方图、纹理特征等,也可以使用深度学习算法来提取高级特征。
通过对车标图像进行特征提取,可以得到一组数字化的表示,用于车标的识别。
然后,可以使用机器学习算法,如支持向量机、神经网络等,来对车标进行分类。
在实际应用中,基于图像的车标定位与识别面临一些挑战。
首先,车辆图像的质量可能会受到环境光线、遮挡等因素的影响,导致车标的定位和识别的准确性下降。
其次,不同的车标形状、颜色等特征差异较大,对算法的鲁棒性提出了要求。
此外,大规模的车辆数据集的构建和标注也是一项繁琐的工作。
总的来说,基于图像的车标定位与识别是一个重要的研究方向。
通过应用图像处理和机器学习算法,可以实现对车辆上车标的准确定位和识别。
这对于交通管理、智能驾驶等领域具有重要意义,有助于提升交通安全和智能交通系统的效率。
未来,随着图像处理和人工智能技术的不断发展,基于图像的车标定位与识别将会得到更广泛的应用和进一步的研究。
车牌识别系统的工作原理

车牌识别系统的工作原理车牌识别系统是一种基于计算机视觉技术的系统,通过对车辆车牌图像进行处理和分析,实现对车牌信息的自动识别和提取。
在实际应用中,车牌识别系统可以用于交通监控、智能停车场管理、电子收费系统等领域。
车牌识别系统的工作原理主要包括图像获取、图像预处理、特征提取与车牌定位、字符分割和字符识别等步骤。
下面将详细介绍这些步骤的原理和方法。
首先,车牌识别系统需要获取车辆的车牌图像。
图像获取方式可以有多种,如使用摄像机对车辆进行拍摄,或者使用网络爬虫从网络上获取车辆图片。
获取到的车牌图像需要经过预处理才能进行后续的处理和分析。
图像预处理是车牌识别系统的第一步,其目的是对车牌图像进行去噪、增强和提取关键信息等操作,以便更好地进行后续的特征提取和定位。
常用的图像预处理方法包括灰度化、图像平滑和边缘检测等。
灰度化操作将彩色车牌图像转化为灰度图像,使得车牌中的文字和背景之间的对比更加明显。
图像平滑操作通过模糊图像来减少噪声的影响,常用的方法包括中值滤波和高斯滤波。
边缘检测是指通过检测车牌图像中的边缘信息,以提取车牌的边界信息。
常用的边缘检测算法有Sobel算子、Canny算子和Roberts算子等。
特征提取与车牌定位是车牌识别系统的核心步骤之一,其目的是通过识别车牌图像中的特征信息,准确定位车牌区域。
车牌图像中有很多不同的特征,如颜色、形状、纹理等。
常用的特征提取方法有基于颜色特征的方法、基于形状特征的方法和基于纹理特征的方法等。
基于颜色特征的方法是指通过分析车牌图像中的颜色信息,来判断前景文字和背景之间的对比度,从而确定车牌的位置。
通常,车牌的背景颜色是单一且比较鲜艳的,而文字的颜色通常是白色或黑色。
因此,我们可以通过阈值分割和颜色模型的比较来提取车牌的颜色特征。
基于形状特征的方法是指通过分析车牌图像中的形状信息,如车牌的长宽比、倾斜程度等,来判断车牌的位置。
通常,车牌的长宽比在一定范围内,且边缘线平行于图像的边缘。
智能交通系统中的车牌识别技术的使用技巧与注意事项

智能交通系统中的车牌识别技术的使用技巧与注意事项智能交通系统是现代城市交通管理的重要组成部分,其中车牌识别技术作为关键技术之一,被广泛应用于车辆检测、车辆管理、交通安全等方面。
本文旨在介绍智能交通系统中车牌识别技术的使用技巧与注意事项,以帮助读者更好地理解和应用该技术。
一、车牌识别技术的基本原理在智能交通系统中,车牌识别技术主要通过图像处理和模式识别的方法来完成。
其基本原理可以分为以下几个步骤:1. 图像获取:利用摄像机或其他图像采集设备获取车辆行驶图像。
2. 图像预处理:对获取到的图像进行预处理,包括灰度化、二值化、噪声去除等操作,以提高后续算法的准确度。
3. 特征提取:对预处理后的图像进行特征提取,通常采用图像处理算法来提取图像的纹理、形态等特征。
4. 车牌定位:通过特征提取得到的特征进行车牌定位,确定车牌在图像中的位置。
5. 字符分割:将定位到的车牌图像中的字符进行分割,以便后续的字符识别。
6. 字符识别:对分割得到的字符进行识别,通常采用模式识别算法来实现。
7. 结果输出:将识别出的车牌信息输出,并进行相关的处理和存储。
二、车牌识别技术的使用技巧1. 视频流图像处理:在智能交通系统中,车辆行驶速度较快,因此需要对视频流图像进行实时处理。
为了提高处理的速度,可以采用并行处理、图像压缩等技术来降低计算量和传输带宽。
2. 车牌定位算法选择:车牌在图像中的位置常常受到光照、遮挡等因素的影响,因此车牌定位算法的鲁棒性非常重要。
可根据实际情况选择合适的车牌定位算法,如基于颜色特征的算法、形态学处理算法等。
3. 字符分割算法优化:字符分割是车牌识别的关键步骤,其准确度直接影响整个识别系统的性能。
可以采用基于形态学处理的方法、基于统计分析的方法等来优化字符分割的效果。
4. 字符识别算法改进:字符识别是车牌识别的最后一步,常常受到字符形变、光照变化等因素的影响。
可以采用深度学习算法、支持向量机等方法来提高字符识别的精度和稳定性。
车牌识别(一)-车牌定位

车牌识别(⼀)-车牌定位在对车牌识别过程中,常⽤的⽅法有:基于形状、基于⾊调、基于纹理、基于⽂字特征等⽅法。
⾸先基于形状,在车牌中因为车牌为形状规格的矩形,所以⽬的转化为寻找矩形特征,常常是利⽤车牌长宽⽐例特征、占据图像的⽐例等。
基于⾊调,国内的车牌往往是蓝底⽩字,可以采⽤图像的⾊调或者饱和度特征,进⼊⽣成⼆值图,定位车牌位置。
基于纹理特征⾃⼰还没有基础到。
基于⽂字特征往往是根据⽂字轮廓特征进⾏识别,原理是基于相邻⽂字轮廓特征、⽐例进⾏定位车牌位置。
⼀、图像⼆值化正如前⾯⽂章所⾔,⾸先进⾏获取图像⼆值化特征,本⽂采取了根据图像亮度特征,提⾼对⽐度,进⾏可以清晰获取⽂字的图像,为下⼀步的⽂字轮廓识别打好基础。
1.1 算法流程伪代码1、图像转化为HSV图像,获取V通道图像2、提⾼对⽐度3、V图像⾼斯滤波,去除噪声4、图像⼆值化程序源码:def get_colorvalue(image):height, width, shape = image.shapeimage_hsv = np.zeros((height,width), np.uint8)image_hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)image_hue, image_saturation, image_value = cv2.split(image_hsv)return image_valuedef enhance_contrast(image):kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))img_tophat = cv2.morphologyEx(image, cv2.MORPH_TOPHAT,kernel)img_blackhat = cv2.morphologyEx(image, cv2.MORPH_BLACKHAT, kernel)image_plus_tophat = cv2.add(image, img_tophat)image_plus_blackhat_minus_blackhat = cv2.subtract(image_plus_tophat, img_blackhat)return image_plus_blackhat_minus_blackhatdef preprocess(srcimage):image_value = get_colorvalue(srcimage)image_enhance = enhance_contrast(image_value)image_blur = cv2.GaussianBlur(image_enhance, (5,5), 0)# _, image_binary = cv2.threshold(image_blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)_, image_binary = cv2.threshold(image_blur, 100, 255, cv2.THRESH_BINARY )cv2.imwrite('image_binary.png',image_binary)return image_binary1.2 算法分析在实验中在获取通道图像时,发现可以利⽤图像饱和度图像进⾏定位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业综合实验报告----数字图像处理专业:电子信息工程班级::学号:指导教师:2014年7月18日车牌图像定位与识别一、设计目的利用matlab实现车牌识别系统,熟悉matlab应用软件的基础知识,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。
同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论基础,有助于自身综合能力的提高。
二、设计内容和要求车牌识别系统应包含图像获取、图像处理、图像分割、字符识别、数据库管理等几个部分,能够完成复杂背景下汽车牌照的定位分割以及牌照字符的自动识别。
这里,只要求对给定的彩色车牌图像变换成灰度图像,用阈值化技术进行字符与背景的分离,再提取牌照图像。
三、设计步骤1.打开计算机,启动MATLAB程序;2.调入给定的车牌图像,并按要求进行图像处理;3.记录和整理设计报告四、设计所需设备及软件计算机一台;移动式存储器;MATLAB软件。
五、设计过程车辆牌照识别整个系统主要是由车牌定位和字符分割识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。
(一)对图像进行图像转换、图像增强和边缘检测等1.载入车牌图像:原图2.将彩图转换为灰度图并绘制直方图:灰度图灰度直方图3.用roberts 算子进行边缘检测:图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。
正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。
边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。
roberts边缘检测图4.图像实施腐蚀操作:腐蚀后图5.平滑图像:对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低通滤波器来滤除噪声,但实际中为了简化算法也可以直接在空域中用求邻域平均值的方法来削弱噪声的影响,这种方法称为图象平滑处理。
平滑图像6.删除二值图像的小对象去除小对象(二)车牌定位:从预处理后的汽车图像中分割出车牌图像。
即在一幅车辆图像中找到车牌所在的位置。
行方向车牌区域定位后车牌区域(三)字符分割与识别1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。
车牌灰度图像before filtering binary licence plateafter average licence plate expansion or corrosion the licence plate1582.字符分割在汽车牌照自动识别过程中,字符分割有承前启后的作用。
它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。
字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割。
在此只进行了归一化处理,然后进行后期处理。
12345671234567六.总结根据车牌特点,一般采用的车牌定位算法有:1.边缘检测定位算法;2.利用哈夫变换进行车牌定位;3.色彩分割提取车牌等。
这里我采用的是边缘检测的方法实现定位的。
字符分割的方法也有多种:1. 基于聚类分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。
最常用的是投影分割,主要是针对在车牌定位,图像预处理后比较规则的车牌图像。
优点是程序逻辑设计简单,循环执行功能单一,便于设计和操作,程序执行时间短。
对现实事物的设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。
通过这次设计使我明白了自己原来知识还比较欠缺。
这个设计让我学到了很多东西,涉及到方方面面的知识,在这整个过程中我们查阅了大量的资料,得到了老师和同学的帮助,我在此对他们表示谢意。
七.源代码:(1)主程序:I=imread('car.jpg');figure(1),imshow(I);title('原图');I1=rgb2gray(I);figure(2),subplot(1,2,1),imshow(I1);title('灰度图');figure(2),subplot(1,2,2),imhist(I1);title('灰度直方图');I2=edge(I1,'roberts',0.18,'both');figure(3),imshow(I2);title('roberts边缘检测图');se=[1;1;1];I3=imerode(I2,se);figure(4),imshow(I3);title('腐蚀后图');se=strel('rectangle',[25,25]);I4=imclose(I3,se);figure(5),imshow(I4);title('平滑图像');I5=bwareaopen(I4,2000);figure(6),imshow(I5);title('去除小对象');[y,x,z]=size(I5);myI=double(I5);ticBlue_y=zeros(y,1);for i=1:yfor j=1:xif(myI(i,j,1)==1)Blue_y(i,1)=Blue_y(i,1)+1;endendend[temp MaxY]=max(Blue_y);PY1=MaxY;while((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);Blue_x=zeros(1,x);for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)=Blue_x(1,j)+1;endendendPX1=1;while((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向车牌区域');figure(7),subplot(1,2,2),imshow(dw),title('定位后车牌区域');imwrite(dw,'dw.jpg');a=imread('dw.jpg');b=rgb2gray(a);imwrite(b,'gray licence plate.jpg');figure(8);subplot(3,2,1),imshow(b),title('车牌灰度图像');g_max=double(max(max(b)));g_min=double(min(min(b)));T=round(g_max-(g_max-g_min)/3);[m,n]=size(b);d=(double(b)>=T);imwrite(d,'binary licence plate.jpg');subplot(3,2,2),imshow(d),title('before filtering binary licence plate');h=fspecial('average',3);d=im2bw(round(filter2(h,d)));imwrite(d,'after average licence plate.jpg');subplot(3,2,3),imshow(d),title('after average licence plate');se=eye(2);[m,n]=size(d);if bwarea(d)/m/n>=0.365d=imerode(d,se);elseif bwarea(d)/m/n<=0.235d=imdilate(d,se);endimwrite(d,'expansion or corrosion the licence plate.jpg');subplot(3,2,4),imshow(d),title('expansion or corrosion the licence plate'); d=qiege(d);[m,n]=size(d);subplot(3,2,5),imshow(d),title(n);k1=1;k2=1;s=sum(d);j=1;while j~=nwhile s(j)==0j=j+1;endk1=j;while s(j)~=0&&j<=n-1j=j+1;endk2=j-1;if k2-k1>=round(n/6.5)[val,num]=min(sum(d(:,[k1+5:k2-5])));d(:,k1+num+5)=0;endendd=qiege(d);y1=10;y2=0.25;flag=0;word1=[];while flag==0[m,n]=size(d);left=1;wide=0;while sum(d(:,wide+1))~=0wide=wide+1;endif wide<y1d(:,[1:wide])=0;d=qiege(d);elsetemp=qiege(imcrop(d,[1 1 wide m]));[m,n]=size(temp);all=sum(sum(temp));two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));if two_thirds/all>y2flag=1;word1=temp;endd(:,[1:wide])=0;d=qiege(d);endend[word2,d]=getword(d);[word3,d]=getword(d);[word4,d]=getword(d);[word5,d]=getword(d);[word6,d]=getword(d);[word7,d]=getword(d);figure(9);subplot(2,7,1),imshow(word1),title('1'); subplot(2,7,2),imshow(word2),title('2'); subplot(2,7,3),imshow(word3),title('3'); subplot(2,7,4),imshow(word4),title('4'); subplot(2,7,5),imshow(word5),title('5'); subplot(2,7,6),imshow(word6),title('6'); subplot(2,7,7),imshow(word7),title('7'); [m,n]=size(word1);word1=imresize(word1,[40 20]);word2=imresize(word2,[40 20]);word3=imresize(word3,[40 20]);word4=imresize(word4,[40 20]);word5=imresize(word5,[40 20]);word6=imresize(word6,[40 20]);word7=imresize(word7,[40 20]); subplot(2,7,8),imshow(word1),title('1'); subplot(2,7,9),imshow(word2),title('2'); subplot(2,7,10),imshow(word3),title('3'); subplot(2,7,11),imshow(word4),title('4'); subplot(2,7,12),imshow(word5),title('5'); subplot(2,7,13),imshow(word6),title('6'); subplot(2,7,14),imshow(word7),title('7'); imwrite(word1,'1.jpg');imwrite(word2,'2.jpg');imwrite(word3,'3.jpg');imwrite(word4,'4.jpg');imwrite(word5,'5.jpg');imwrite(word6,'6.jpg');imwrite(word7,'7.jpg');(2)子程序:(getword子程序)function [word,result]=getword(d)word=[];flag=0;y1=8;y2=0.5;while flag==0[m,n]=size(d);wide=0;while sum(d(:,wide+1))~=0 && wide<=n-2wide=wide+1;endtemp=qiege(imcrop(d,[1 1 wide m]));[m1,n1]=size(temp);if wide<y1 && n1/m1>y2d(:,[1:wide])=0;if sum(sum(d))~=0d=qiege(d); % 切割出最小范围else word=[];flag=1;endelseword=qiege(imcrop(d,[1 1 wide m]));d(:,[1:wide])=0;if sum(sum(d))~=0;d=qiege(d);flag=1;else d=[];endendendresult=d;子程序:(qiege子程序)function e=qiege(d)[m,n]=size(d);top=1;bottom=m;left=1;right=n;while sum(d(top,:))==0 && top<=mtop=top+1;endwhile sum(d(bottom,:))==0 && bottom>1bottom=bottom-1;endwhile sum(d(:,left))==0 && left<nleft=left+1;endwhile sum(d(:,right))==0 && right>=1 right=right-1;enddd=right-left;hh=bottom-top;e=imcrop(d,[left top dd hh]);。