基于VC一维条形码识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统综合设计
题目:基于VC的一维条形码
识别
学号: 20124830248____
姓名:张文天______ 班级:12计科A2_____ 专业:计算机科学与技术
指导教师:侯东良______
日期: 2015 年12 月20日
基于VC的一维条形码识别
摘要
条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。
本系统采用Micosoft Visual C++6.0作为系统软件的编程语言和编译环境。设计研究主要分为两部分:一维条形码的预处理和一维条形码图像的特征提取和识别。第一部分首先对采集的EAN-13条码图像进行预处理,图像的预处理主要是条形码灰度图像的二值化处理,良好的图像处理将对后面实现正确译码有至关重要的作用。第二部分就是对预处理后的条码图像进行特征提取和是识别,我们根据条形码的纹理特点和规则,对其进行特征提取和识别。得到条码所表示的文本信息。
关键词:图像处理、条形码识别、EAN-13、二值化、VC6.0
目录
1 绪论 (3)
1.1 条码技术概述 (3)
1.2 Visual C++数字图像处理基础 (4)
1.3 文本研究意义及内容 (5)
1.3.1 研究意义 (5)
1.3.2 研究内容 (6)
2 一维条形码技术 (6)
2.1 一维条形码简介 (6)
2.2 EAN-13码简述 (7)
2.2.1 EAN-13码的构造 (7)
2.2.2 EAN-13码的编码规则 (8)
2.2.3 EAN-13编码的校验方法 (10)
3 一维条形码的识别 (10)
3.1 图像的预处理 (10)
3.1.1 图像的二值化处理 (10)
3.1.2 条码图像的提取 (12)
3.2条码图像的字符识别 (12)
4 结论 (13)
参考文献 (1)
1 绪论
1.1 条码技术概述
条码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,条码应用技术就是应用条码系统进行的信息处理技术。条码技术的研究始于20世纪中期,是继计算机技术应用和发展应运而生的。随着70年代微处理器的问世,标志着“信息化社会”的到来,它要求人们对社会上各个领域的信息、数据实施正确、有效、及时的采集、传递和管理。因此如何代替人的视觉、人的手工操作、或者在复杂的环境中正确、迅速地获取信息并加以识别,成为人们普遍关心和有关人员精心研究的课题。
通俗的说条形码是指在浅色衬底上印有深色矩形的线条(也称条码)排列而
成的编码,其码条和空白条的数量和宽度按一定的规则(标准)排列。条形码是由一组规则排列的条、空、相应的数字组成。这种用条、空组成的数据编码可以供机器识读,而且很容易译成二进制数和十进制数。这些条和空可以有各种不同的组合方法,构成不同的图形符号,即各种符号体系,适用于不同的应用场合。条码系统是由条码符号设计、制作及扫描阅读组成的自动识别系统。微电子技术和激光技术的发展使得条码识别系统越来越受到人们的关注。条码是迄今为止最经济、实用的一种自动识别技术。条码技术具有以下几个方面的优点:
●可靠准确。
●数据输入速度快。
●经济便宜。
●灵活、实用。
●自由度大。
●设备简单。
●易于制作,可印刷,称作为“可印刷的计算机语言”。
正因为条码具有上述迅速,准确,廉价,使用方便,适应性强等优点,克服了其他输入方法的不足,所以他在各个行业中的发展可谓突飞猛进,最初应用于物流管理,最引人注目的是pos系统,它使商店的定货管理,盘点,库存管理,库存查询,验货管理,收款等各项工作效率得到极大地提高。目前已经应用到计
算机自动化的各个领域,包括质量跟踪,仓储管理,物资管理,票证管理,人流物流管理,图书文献检索,医疗卫生,邮电系统,安全检查等领域。
1.2 Visual C++数字图像处理基础
BMP文件是Windows操作系统所推荐和支持的图像文件格式,是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式,所以称为位图(bitmap)文件,因其文件扩展名位BMP,故称为BMP文件格式,简称BMP文件。
BMP位图文件由四个部分组成:位图头文件(Bitmap-file Header)、位图信息头(Bitmap-information-Header)、调色板(Palette)和像素数据(Image Data)。
●位图头文件:
包含文件类型、文件大小和存放信息等信息,结构如下:
typedef struct tagBITMAPFILEHEADER {
WORD bfType; //类型名,必须是0x424D,即字符串“BM”,
DWORD bfSize; //文件大小
WORD bfReserved1; //保留字,不考虑
WORD bfReserved2; //保留字,同上
DWORD bfOffBits; //实际位图数据的偏移字节数,即前三个部分长度之和 } BITMAPFILEHEADER;
●位图信息头:
包含位图大小、压缩类型和颜色格式等信息,结构如下:
typedef struct tagBITMAPINFOHEADER {
DWORD biSize; //指定此结构体的长度,为40
LONG biWidth; //位图宽
LONG biHeight; //位图高
WORD biPlanes; //平面数,为1
WORD biBitCount //采用颜色位数,可以是1,4,8,24
DWORD biCompression; //压缩方式,0为不压缩
DWORD biSizeImage; //实际位图数据占用的字节数